Skip to content
This repository was archived by the owner on Feb 21, 2025. It is now read-only.

Commit faaa18f

Browse files
committed
Added placeholders on dropdown for accessibility
1 parent f593344 commit faaa18f

File tree

4 files changed

+19
-13
lines changed

4 files changed

+19
-13
lines changed

src/components/ui/Dropdown.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ interface DropdownProps {
44
options: string[];
55
onSelect: (value: string) => void;
66
includeAll?: boolean;
7+
placeholder?: string;
78
}
89

910
const Dropdown: React.FC<DropdownProps> = ({
1011
label,
1112
options,
1213
onSelect,
1314
includeAll = false,
15+
placeholder,
1416
}) => {
1517
const displayedOptions = includeAll ? ['All', ...options] : options;
1618

@@ -24,7 +26,13 @@ const Dropdown: React.FC<DropdownProps> = ({
2426
<select
2527
className='w-full p-2 border bg-gray-200 rounded-md focus:outline-none focus:ring-2 focus:ring-blue-500 text-black'
2628
onChange={(e) => onSelect(e.target.value)}
29+
defaultValue=''
2730
>
31+
{placeholder && (
32+
<option value='' disabled>
33+
{placeholder}
34+
</option>
35+
)}
2836
{displayedOptions.map((option) => (
2937
<option key={option} value={option}>
3038
{option}

src/components/ui/SubjectDropdown.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,14 @@ interface SubjectDropdownProps {
55
subject: string;
66
descriptors: string[];
77
onSelect: (value: string) => void;
8+
placeholder?: string;
89
}
910

1011
const SubjectDropdown: React.FC<SubjectDropdownProps> = ({
1112
subject,
1213
descriptors,
1314
onSelect,
15+
placeholder,
1416
}) => {
1517
// Build the final options array:
1618
// ["Bob", "Bob's social media presence", "Bob's coffee addiction", ...]
@@ -19,7 +21,13 @@ const SubjectDropdown: React.FC<SubjectDropdownProps> = ({
1921
...descriptors.map((desc) => `${subject}'s ${desc}`),
2022
];
2123

22-
return <Dropdown options={dropdownOptions} onSelect={onSelect} />;
24+
return (
25+
<Dropdown
26+
options={dropdownOptions}
27+
onSelect={onSelect}
28+
placeholder={placeholder}
29+
/>
30+
);
2331
};
2432

2533
export default SubjectDropdown;

src/pages/employees/EmployeesDetails.tsx

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -85,19 +85,8 @@ const EmployeesDetails: React.FC = () => {
8585
<Dropdown
8686
options={employers.map((employer) => employer.company)}
8787
onSelect={(value) => setEmployer(value)}
88+
placeholder='Select Employer'
8889
/>
89-
{/* <select
90-
value={employer}
91-
onChange={(e) => setEmployer(e.target.value)}
92-
className='w-full border border-gray-400 rounded px-2 py-1 bg-gray-900 text-white'
93-
>
94-
<option value=''>-- Choose an employer --</option>
95-
{employers.map((employer) => (
96-
<option key={employer.company} value={employer.company}>
97-
{employer.company}
98-
</option>
99-
))}
100-
</select> */}
10190
</div>
10291

10392
{/* Next Button */}

src/pages/employees/SentenceBuilder.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ const SentenceBuilderPage: React.FC = () => {
7373
subject: value,
7474
}));
7575
}}
76+
placeholder='Choose Subject'
7677
/>
7778
{/* <SentenceButton
7879
defaultValue='Choose Subject'

0 commit comments

Comments
 (0)