Skip to content

Commit 8b2b4da

Browse files
committed
fix dropdown styling in selectField
1 parent ee9c684 commit 8b2b4da

File tree

2 files changed

+23
-7
lines changed

2 files changed

+23
-7
lines changed

demo/site/src/common/components/form/SelectField.module.scss

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
.selectField {
2121
display: flex;
22-
height: 48px;
22+
height: 40px;
2323
padding: 0 var(--spacing-s300);
2424
align-items: center;
2525
justify-content: space-between;
@@ -84,10 +84,17 @@
8484
font-size: 16px;
8585
color: var(--contact-form-text-input-text);
8686
box-sizing: border-box;
87-
border-radius: 4px;
8887

8988
&:hover {
90-
background-color: var(--Contact-Form-dropdown-bg-hover, #f5f5f5);
89+
background-color: var(--contact-form-dropdown-bg-hover);
90+
}
91+
92+
&--selected {
93+
background-color: var(--contact-form-dropdown-bg-selected);
94+
95+
&:hover {
96+
background-color: var(--contact-form-dropdown-bg-selected-hover);
97+
}
9198
}
9299
}
93100

demo/site/src/common/components/form/SelectField.tsx

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,11 @@ interface SelectFieldProps {
1313
placeholder?: string;
1414
}
1515

16+
type SelectedOption = {
17+
value: string;
18+
label: string;
19+
} | null;
20+
1621
export function SelectField({
1722
label,
1823
optional = false,
@@ -25,14 +30,14 @@ export function SelectField({
2530
placeholder = "Select an option",
2631
}: SelectFieldProps): React.ReactElement {
2732
const [isOpen, setIsOpen] = useState(false);
28-
const [selectedOption, setSelectedOption] = useState<string | null>(null);
33+
const [selectedOption, setSelectedOption] = useState<SelectedOption | null>(null);
2934

3035
const handleToggle = () => {
3136
setIsOpen(!isOpen);
3237
};
3338

3439
const handleSelectOption = (value: string, label: string) => {
35-
setSelectedOption(label);
40+
setSelectedOption({ value, label });
3641
setIsOpen(false);
3742
};
3843

@@ -46,7 +51,7 @@ export function SelectField({
4651
</div>
4752
<div className={styles.selectWrapper}>
4853
<button type="button" className={styles.selectField} onClick={handleToggle}>
49-
<span className={selectedOption ? styles.selectedText : styles.placeholderText}>{selectedOption || placeholder}</span>
54+
<span className={selectedOption ? styles.selectedText : styles.placeholderText}>{selectedOption?.label || placeholder}</span>
5055
<SvgUse
5156
href="/assets/icons/chevron-down.svg#root"
5257
className={clsx(styles.chevron, isOpen && styles["chevron--expanded"])}
@@ -57,7 +62,11 @@ export function SelectField({
5762
{isOpen && (
5863
<div className={styles.dropdown}>
5964
{options.map((option) => (
60-
<div key={option.value} className={styles.dropdownOption} onClick={() => handleSelectOption(option.value, option.label)}>
65+
<div
66+
key={option.value}
67+
className={clsx(styles.dropdownOption, selectedOption?.value === option.value && styles["dropdownOption--selected"])}
68+
onClick={() => handleSelectOption(option.value, option.label)}
69+
>
6170
{option.label}
6271
</div>
6372
))}

0 commit comments

Comments
 (0)