diff options
| author | Armand Philippot <git@armandphilippot.com> | 2022-02-25 19:29:44 +0100 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2022-02-25 19:29:44 +0100 |
| commit | 99ae0a9d3a923ca1e998dc9b504dad607fdfd768 (patch) | |
| tree | 70ec0c29d003d462de6926f1faa09354e3ff6d90 /src/components/Form/Select | |
| parent | 774d5b4c538d93889bf743b6cd7d01a85f8715e6 (diff) | |
| parent | e26d821f738525477472e631d170d9ed218c1603 (diff) | |
refactor: split form styles and combine components
I think it is better to keep styles close to the
corresponding components. So I splitted the unique
stylesheet.
I also combine select, textarea and input components
into a single one since they share the same logic and
the same styles.
Diffstat (limited to 'src/components/Form/Select')
| -rw-r--r-- | src/components/Form/Select/Select.module.scss | 23 | ||||
| -rw-r--r-- | src/components/Form/Select/Select.tsx | 56 |
2 files changed, 0 insertions, 79 deletions
diff --git a/src/components/Form/Select/Select.module.scss b/src/components/Form/Select/Select.module.scss deleted file mode 100644 index d4a40eb..0000000 --- a/src/components/Form/Select/Select.module.scss +++ /dev/null @@ -1,23 +0,0 @@ -@use "@styles/abstracts/functions" as fun; - -.wrapper { - padding: fun.convert-px(3) var(--spacing-xs); - background: var(--color-bg-tertiary); - border: fun.convert-px(2) solid var(--color-border); - box-shadow: fun.convert-px(3) fun.convert-px(3) 0 0 var(--color-shadow); - cursor: pointer; - transition: all 0.3s ease-in-out 0s; - - &:hover { - box-shadow: fun.convert-px(4) fun.convert-px(4) 0 fun.convert-px(1) - var(--color-shadow); - transform: translate(#{fun.convert-px(-2)}, #{fun.convert-px(-2)}); - } - - &:focus { - background: var(--color-bg); - border-color: var(--color-primary); - box-shadow: 0 0 0 0 var(--color-shadow); - transform: translate(#{fun.convert-px(3)}, #{fun.convert-px(3)}); - } -} diff --git a/src/components/Form/Select/Select.tsx b/src/components/Form/Select/Select.tsx deleted file mode 100644 index feab991..0000000 --- a/src/components/Form/Select/Select.tsx +++ /dev/null @@ -1,56 +0,0 @@ -import { ChangeEvent, ReactElement, SetStateAction } from 'react'; -import styles from './Select.module.scss'; - -type SelectOptions = { - id: string; - name: string; - value: string; -}; - -const Select = ({ - options, - id, - name, - value, - setValue, - required = false, - label, -}: { - options: SelectOptions[]; - id: string; - name: string; - value: string; - setValue: (value: SetStateAction<string>) => void; - required?: boolean; - label?: ReactElement; -}) => { - const getOptions = () => { - return options.map((option) => ( - <option key={option.id} value={option.value}> - {option.name} - </option> - )); - }; - - const handleChange = (event: ChangeEvent<HTMLSelectElement>) => { - setValue(event.target.value); - }; - - return ( - <> - {label} - <select - name={name} - id={id} - value={value} - onChange={handleChange} - required={required} - className={styles.wrapper} - > - {getOptions()} - </select> - </> - ); -}; - -export default Select; |
