From 232df0d13d2e114a4b98fc5ff736ba4905eb0736 Mon Sep 17 00:00:00 2001 From: Igor Barcik Date: Thu, 26 Oct 2023 14:50:32 +0200 Subject: [PATCH] Refactored code, make 2 components, cleanup and clean style --- src/components/Select.tsx | 22 ++++ src/components/Slider.tsx | 40 +++++++ src/features/Home/HomePage.tsx | 192 ++++++++------------------------- src/main.css | 6 +- 4 files changed, 113 insertions(+), 147 deletions(-) create mode 100644 src/components/Select.tsx create mode 100644 src/components/Slider.tsx diff --git a/src/components/Select.tsx b/src/components/Select.tsx new file mode 100644 index 0000000..9d9ae96 --- /dev/null +++ b/src/components/Select.tsx @@ -0,0 +1,22 @@ +import { ChangeEvent } from "react"; + +interface SelectProps { + value: string | number; + onChange: (event: ChangeEvent) => void; + options: string[]; + label: string; + disabledLabel: string; +} + +const Select = ({ value, onChange, options, disabledLabel }: SelectProps) => ( + +); + +export default Select; diff --git a/src/components/Slider.tsx b/src/components/Slider.tsx new file mode 100644 index 0000000..5c1e698 --- /dev/null +++ b/src/components/Slider.tsx @@ -0,0 +1,40 @@ +import { ChangeEvent } from "react"; + +interface SliderProps { + range: { min: number; max: number }; + value: number; + onChange: (e?: ChangeEvent) => unknown; + step?: number; + suffix?: string; +} + +const Slider = (props: SliderProps) => { + return ( +
+ +
+ + {props.suffix} +
+
+ ); +}; + +export default Slider; diff --git a/src/features/Home/HomePage.tsx b/src/features/Home/HomePage.tsx index 53ca2a9..e06a798 100644 --- a/src/features/Home/HomePage.tsx +++ b/src/features/Home/HomePage.tsx @@ -10,26 +10,8 @@ const listsLabels = { rodzajObrobki: "Rodzaj Obróbki", material: "Material", }; -import { ChangeEvent } from "react"; - -interface SelectProps { - value: string | number; - onChange: (event: ChangeEvent) => void; - options: string[]; - label: string; - disabledLabel: string; -} - -const Select = ({ value, onChange, options, disabledLabel }: SelectProps) => ( - -); +import Slider from "../../components/Slider"; +import Select from "../../components/Select"; const HomePage = () => { const [state, setState] = useState({ @@ -53,7 +35,7 @@ const HomePage = () => {

Wybór parametrów

{Object.keys(lists).map((key) => ( -
+
@@ -70,113 +52,46 @@ const HomePage = () => {
-
- { - setState((prev) => ({ ...prev, glebokoscSkrawania: Number(e.target.value) })); - }} - /> -
- { - setState((prev) => ({ ...prev, glebokoscSkrawania: Number(e.target.value) })); - }} - className="input input-secondary w-20" - type="number" - min={1} - max={50} - /> - mm -
-
+ { + setState((prev) => ({ ...prev, glebokoscSkrawania: Number(e!.target.value) })); + }} + suffix="mm" + /> + -
- { - setState((prev) => ({ ...prev, szerokoscSkrawania: Number(e.target.value) })); - }} - /> -
- { - setState((prev) => ({ ...prev, szerokoscSkrawania: Number(e.target.value) })); - }} - className="input input-secondary w-20" - type="number" - min={1} - max={30} - /> - mm -
-
+ { + setState((prev) => ({ ...prev, szerokoscSkrawania: Number(e!.target.value) })); + }} + suffix="mm" + /> + -
- { - setState((prev) => ({ ...prev, tolerancja: Number(e.target.value) })); - }} - step={0.01} - /> -
- { - setState((prev) => ({ ...prev, tolerancja: Number(e.target.value) })); - }} - className="input input-secondary w-20" - type="number" - min={0.1} - max={5} - step={0.01} - /> - mm -
-
+ { + setState((prev) => ({ ...prev, tolerancja: Number(e!.target.value) })); + }} + suffix="mm" + step={0.01} + /> + -
- { - setState((prev) => ({ ...prev, chropowatosc: Number(e.target.value) })); - }} - step={0.01} - /> -
- { - setState((prev) => ({ ...prev, chropowatosc: Number(e.target.value) })); - }} - className="input input-secondary w-20" - type="number" - min={0.1} - max={5} - step={0.01} - /> - mm -
-
+ { + setState((prev) => ({ ...prev, chropowatosc: Number(e!.target.value) })); + }} + suffix="mm" + step={0.01} + />
+

Wyniki

- - rodzajFrezowania: {state.rodzajFrezowania} - - - rodzajObrobki: {state.rodzajObrobki} - - - material: {state.material} - - - glebokoscSkrawania: {state.glebokoscSkrawania} - - - szerokoscSkrawania: {state.szerokoscSkrawania} - - - tolerancja: {state.tolerancja} - - - chropowatość: {state.chropowatosc} - + {Object.keys(state).map((key) => ( + + {key}: {state[key as keyof typeof state]} + + ))}
diff --git a/src/main.css b/src/main.css index bd6213e..ef5230d 100644 --- a/src/main.css +++ b/src/main.css @@ -1,3 +1,7 @@ @tailwind base; @tailwind components; -@tailwind utilities; \ No newline at end of file +@tailwind utilities; + +.grow-width { + width: fit-content; +}