summaryrefslogtreecommitdiffstats
path: root/src/components/organisms/toolbar/search.tsx
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-06-01 22:37:56 +0200
committerGitHub <noreply@github.com>2022-06-01 22:37:56 +0200
commit0a33a4658d848fe056715c6da053763407845b2a (patch)
tree7c679e54ba4bbadaf0a59bbde780f5742e3b875d /src/components/organisms/toolbar/search.tsx
parent97031a86ca38890e60ecec79828498b7bb13cbfa (diff)
parent6be20422494e3806fba3d1c5ad5c3e98bd6e67e5 (diff)
chore(a11y): improve website settings accessibility (#17)
The previous switch buttons (using checkbox) was not a11y compliant. So I change my approach to use radio buttons and to clearly separate the two different states. I also convert the Ackee select setting to improve consistency between settings.
Diffstat (limited to 'src/components/organisms/toolbar/search.tsx')
-rw-r--r--src/components/organisms/toolbar/search.tsx18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/components/organisms/toolbar/search.tsx b/src/components/organisms/toolbar/search.tsx
index 6a8af26..2d4b6b5 100644
--- a/src/components/organisms/toolbar/search.tsx
+++ b/src/components/organisms/toolbar/search.tsx
@@ -1,4 +1,6 @@
-import Checkbox, { type CheckboxProps } from '@components/atoms/forms/checkbox';
+import BooleanField, {
+ type BooleanFieldProps,
+} from '@components/atoms/forms/boolean-field';
import MagnifyingGlass from '@components/atoms/icons/magnifying-glass';
import FlippingLabel from '@components/molecules/forms/flipping-label';
import useInputAutofocus from '@utils/hooks/use-input-autofocus';
@@ -16,7 +18,7 @@ export type SearchProps = {
/**
* The button state.
*/
- isActive: CheckboxProps['value'];
+ isActive: BooleanFieldProps['checked'];
/**
* A callback function to execute search.
*/
@@ -24,7 +26,7 @@ export type SearchProps = {
/**
* A callback function to handle button state.
*/
- setIsActive: CheckboxProps['setValue'];
+ setIsActive: BooleanFieldProps['onChange'];
};
const Search: ForwardRefRenderFunction<HTMLDivElement, SearchProps> = (
@@ -53,12 +55,14 @@ const Search: ForwardRefRenderFunction<HTMLDivElement, SearchProps> = (
return (
<div className={`${sharedStyles.item} ${searchStyles.item}`} ref={ref}>
- <Checkbox
+ <BooleanField
+ checked={isActive}
+ className={`${sharedStyles.checkbox} ${searchStyles.checkbox}`}
id="search-button"
name="search-button"
- value={isActive}
- setValue={setIsActive}
- className={`${sharedStyles.checkbox} ${searchStyles.checkbox}`}
+ onChange={setIsActive}
+ type="checkbox"
+ value="open"
/>
<FlippingLabel
className={sharedStyles.label}