@@ -5,13 +5,7 @@ import styles from './ActivityList.module.css';
55import { mockActivities } from './mockActivities' ;
66
77function ActivityList ( ) {
8- let darkMode = false ;
9-
10- try {
11- darkMode = useSelector ( state => state . theme ?. darkMode ) ;
12- } catch ( error ) {
13- darkMode = false ;
14- }
8+ const darkMode = useSelector ( state => state . theme ?. darkMode ?? false ) ;
159
1610 const [ activities , setActivities ] = useState ( [ ] ) ;
1711 const [ loading , setLoading ] = useState ( true ) ;
@@ -42,7 +36,6 @@ function ActivityList() {
4236 try {
4337 setLoading ( true ) ;
4438 setError ( null ) ;
45-
4639 throw new Error ( 'API not implemented yet' ) ;
4740 } catch ( err ) {
4841 console . warn ( 'Failed to fetch activities from API, using mock data:' , err . message ) ;
@@ -62,9 +55,7 @@ function ActivityList() {
6255 const uniqueLocations = [ ...new Set ( activities . map ( a => a . location ) ) ] ;
6356 const lowerInput = input . toLowerCase ( ) ;
6457
65- return uniqueLocations
66- . filter ( loc => loc . toLowerCase ( ) . startsWith ( lowerInput ) )
67- . slice ( 0 , 10 ) ;
58+ return uniqueLocations . filter ( loc => loc . toLowerCase ( ) . startsWith ( lowerInput ) ) . slice ( 0 , 10 ) ;
6859 } ;
6960
7061 const handleFilterChange = e => {
@@ -115,9 +106,7 @@ function ActivityList() {
115106
116107 return (
117108 < div className = { `${ styles . activityListContainer } ${ darkMode ? 'bg-oxford-blue' : '' } ` } >
118- < h1 className = { `${ styles . heading } ${ darkMode ? 'text-light' : '' } ` } >
119- Activity List
120- </ h1 >
109+ < h1 className = { `${ styles . heading } ${ darkMode ? 'text-light' : '' } ` } > Activity List</ h1 >
121110
122111 < div className = { `${ styles . filters } ${ darkMode ? styles . darkModeFilters : '' } ` } >
123112 < label className = { darkMode ? 'text-light' : '' } >
@@ -177,19 +166,23 @@ function ActivityList() {
177166 />
178167
179168 { showSuggestions && locationSuggestions . length > 0 && (
180- < div
181- className = { `${ styles . suggestions } ${
182- darkMode ? styles . darkSuggestions : ''
183- } `}
184- >
169+ < div className = { `${ styles . suggestions } ${ darkMode ? styles . darkSuggestions : '' } ` } >
185170 { locationSuggestions . map ( ( location , index ) => (
186171 < div
187172 key = { index }
173+ role = "button"
174+ tabIndex = { 0 }
188175 className = { styles . suggestionItem }
189176 onMouseDown = { e => {
190177 e . preventDefault ( ) ;
191178 handleSuggestionClick ( location ) ;
192179 } }
180+ onKeyDown = { e => {
181+ if ( e . key === 'Enter' || e . key === ' ' ) {
182+ e . preventDefault ( ) ;
183+ handleSuggestionClick ( location ) ;
184+ }
185+ } }
193186 >
194187 { location }
195188 </ div >
@@ -219,9 +212,7 @@ function ActivityList() {
219212 { filteredActivities . map ( activity => (
220213 < li
221214 key = { activity . id }
222- className = { `${ styles . activityItem } ${
223- darkMode ? styles . darkModeItem : ''
224- } `}
215+ className = { `${ styles . activityItem } ${ darkMode ? styles . darkModeItem : '' } ` }
225216 >
226217 < strong > { activity . name } </ strong >
227218 < span >
@@ -238,4 +229,4 @@ function ActivityList() {
238229 ) ;
239230}
240231
241- export default ActivityList ;
232+ export default ActivityList ;
0 commit comments