From 274835355c86d9981dc288aeba6c81c135b05367 Mon Sep 17 00:00:00 2001
From: Gabriel Clark <>
Date: Sat, 4 Sep 2021 12:58:56 -0500
Subject: [PATCH] Fixed commit blocking error. Added redux features to unit
 selector.

---
 unit-conversion/package.json                  |  2 +-
 unit-conversion/src/app.js                    |  4 +-
 .../endingNumberOutput.js                     |  2 +-
 .../number-input-field/numberInputField.js    |  8 +++-
 .../features/unit-selector/unitSelector.js    | 41 +++++++++++++++----
 .../unit-selector/unitSelectorSlice.js        | 25 +++++++++++
 6 files changed, 70 insertions(+), 12 deletions(-)
 create mode 100644 unit-conversion/src/features/unit-selector/unitSelectorSlice.js

diff --git a/unit-conversion/package.json b/unit-conversion/package.json
index 3fcb54a..2bdc31d 100644
--- a/unit-conversion/package.json
+++ b/unit-conversion/package.json
@@ -5,7 +5,7 @@
   "private": true,
   "license": "UNLICENSED",
   "scripts": {
-    "lint:css": "stylelint '**/*.css' '**/*.module.css' '!coverage/**'",
+    "lint:css": "stylelint \"**/*.css\" \"**/*.module.css\" \"!coverage/**\"",
     "lint:js": "eslint --max-warnings 0 ./src",
     "lint": "run-s --continue-on-error lint:**",
     "test-once": "react-scripts test --watchAll=false --coverage",
diff --git a/unit-conversion/src/app.js b/unit-conversion/src/app.js
index d547b71..c2a9529 100644
--- a/unit-conversion/src/app.js
+++ b/unit-conversion/src/app.js
@@ -5,10 +5,10 @@ import { UnitSelector } from './features/unit-selector/unitSelector.js';
 export function App() {
   return (
     <>
-      <UnitSelector />
+      <UnitSelector id="inputUnitSelector"/>
       <NumberInputField />
       <h1>Ouput Section</h1>
-      <UnitSelector />
+      <UnitSelector id="outputUnitSelector"/>
       <EndingNumberOutput />
     </>
   );
diff --git a/unit-conversion/src/features/ending-number-output/endingNumberOutput.js b/unit-conversion/src/features/ending-number-output/endingNumberOutput.js
index d3af421..de16f06 100644
--- a/unit-conversion/src/features/ending-number-output/endingNumberOutput.js
+++ b/unit-conversion/src/features/ending-number-output/endingNumberOutput.js
@@ -4,4 +4,4 @@ export function EndingNumberOutput() {
       <h1>Number Output Text</h1>
     </div>
   );
-}
\ No newline at end of file
+}
diff --git a/unit-conversion/src/features/number-input-field/numberInputField.js b/unit-conversion/src/features/number-input-field/numberInputField.js
index a72db64..3599709 100644
--- a/unit-conversion/src/features/number-input-field/numberInputField.js
+++ b/unit-conversion/src/features/number-input-field/numberInputField.js
@@ -1,8 +1,14 @@
+import { UnitSelector } from '../unit-selector/unitSelector';
+
 export function NumberInputField() {
+  const unitSelectorName = UnitSelector.name;
+  const inputUnits = document.getElementById('inputUnitSelector').UnitSelector;
+  const placeHolderString = `Enter # of ${inputUnits}`;
   return (
     <div>
       <h1>NumberInputField</h1>
-      <input required type="text" placeholder="Enter # of {unitSelectorUnit}"></input>
+      <p>{ unitSelectorName }</p>
+      <input required type="text" placeholder={ placeHolderString }></input>
     </div>
   );
 }
diff --git a/unit-conversion/src/features/unit-selector/unitSelector.js b/unit-conversion/src/features/unit-selector/unitSelector.js
index 087deda..ead13b8 100644
--- a/unit-conversion/src/features/unit-selector/unitSelector.js
+++ b/unit-conversion/src/features/unit-selector/unitSelector.js
@@ -1,13 +1,40 @@
-export function UnitSelector() {
+export function UnitSelector(props) {
+  const unitSelectorOptions = [
+    {
+      label: 'Km',
+      value: 'km',
+    },
+    {
+      label: 'M',
+      value: 'm',
+    },
+    {
+      label: 'Cm',
+      value: 'cm',
+    },
+    {
+      label: 'Cm',
+      value: 'cm',
+    },
+    {
+      label: 'Ft',
+      value: 'ft',
+    },
+    {
+      label: 'In',
+      value: 'in',
+    },
+  ];
+
   return (
     <div>
       <h1>Unit Selector</h1>
-      <select name="units">
-          <option value="km">km</option>
-          <option value="m">m</option>
-          <option value="ft">ft</option>
-          <option value="in">in</option>
-      </select>
+      <div className="select-container">
+        <select name="units">
+          {unitSelectorOptions.map((option) =>
+            <option value={option.value}>{option.label}</option>)}
+        </select>
+      </div>
     </div>
   );
 }
diff --git a/unit-conversion/src/features/unit-selector/unitSelectorSlice.js b/unit-conversion/src/features/unit-selector/unitSelectorSlice.js
new file mode 100644
index 0000000..a7d9cab
--- /dev/null
+++ b/unit-conversion/src/features/unit-selector/unitSelectorSlice.js
@@ -0,0 +1,25 @@
+import { createSlice } from '@reduxjs/toolkit';
+
+const unitSelectorSlice = createSlice({
+  name: 'unitSelector',
+  initialState: {
+    selectedInputUnit: '',
+  },
+  reducers: {
+    setCurrentInputUnit: (state, action) => {
+      const {
+        value,
+      } = action.payload;
+      state.value = value;
+    },
+  },
+});
+export default unitSelectorSlice;
+
+export const {
+  setCurrentInputUnit,
+} = unitSelectorSlice.actions;
+
+export function selectCurrentInputUnit(state) {
+  return state.state.value;
+}
-- 
GitLab