@@ -185,7 +185,7 @@ export default function RecentTips({ addToast }) {
185185 < div className = "flex items-center gap-2" >
186186 < h2 className = "text-xl font-bold text-gray-900 dark:text-white" > Live Feed</ h2 >
187187 < span className = "flex items-center gap-1 px-2 py-0.5 bg-green-100 dark:bg-green-900/30 text-green-700 dark:text-green-400 rounded-full text-[10px] font-bold uppercase tracking-wider" >
188- < span className = "h-1.5 w-1.5 bg-green-500 rounded-full animate-pulse" /> Live
188+ < span className = "h-1.5 w-1.5 bg-green-500 rounded-full animate-pulse" aria-hidden = "true" /> Live
189189 </ span >
190190 { messagesLoading && (
191191 < span className = "text-[10px] text-gray-400 dark:text-gray-500 font-medium" > Loading messages...</ span >
@@ -202,7 +202,8 @@ export default function RecentTips({ addToast }) {
202202 < div className = "flex gap-2" >
203203 < div className = "relative flex-1" >
204204 < Search className = "absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400" aria-hidden = "true" />
205- < input type = "text" value = { searchQuery } onChange = { ( e ) => { setSearchQuery ( e . target . value ) ; setOffset ( 0 ) ; } }
205+ < label htmlFor = "feed-search" className = "sr-only" > Search tips</ label >
206+ < input id = "feed-search" type = "text" value = { searchQuery } onChange = { ( e ) => { setSearchQuery ( e . target . value ) ; setOffset ( 0 ) ; } }
206207 className = "w-full pl-10 pr-4 py-2 bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-700 rounded-xl text-sm text-gray-900 dark:text-white focus:ring-2 focus:ring-amber-500 focus:border-transparent outline-none placeholder-gray-400 dark:placeholder-gray-500"
207208 placeholder = "Search by address or message..." />
208209 </ div >
@@ -214,16 +215,19 @@ export default function RecentTips({ addToast }) {
214215 </ div >
215216 { showFilters && (
216217 < div className = "flex flex-wrap gap-3 p-4 bg-gray-50 dark:bg-gray-800/50 rounded-xl border border-gray-100 dark:border-gray-700" >
217- { [ [ 'Min STX' , minAmount , setMinAmount , '0' ] , [ 'Max STX' , maxAmount , setMaxAmount , 'any' ] ] . map ( ( [ label , val , setter , ph ] ) => (
218- < div key = { label } className = "flex items-center gap-2" >
219- < label className = "text-xs font-medium text-gray-500 dark:text-gray-400" > { label } </ label >
220- < input type = "number" value = { val } onChange = { ( e ) => { setter ( e . target . value ) ; setOffset ( 0 ) ; } }
221- className = "w-24 px-3 py-1.5 bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-700 rounded-lg text-sm text-gray-900 dark:text-white outline-none focus:ring-2 focus:ring-amber-500" placeholder = { ph } step = "0.001" min = "0" />
222- </ div >
223- ) ) }
224218 < div className = "flex items-center gap-2" >
225- < label className = "text-xs font-medium text-gray-500 dark:text-gray-400" > Sort</ label >
226- < select value = { sortBy } onChange = { ( e ) => { setSortBy ( e . target . value ) ; setOffset ( 0 ) ; } }
219+ < label htmlFor = "feed-filter-min" className = "text-xs font-medium text-gray-500 dark:text-gray-400" > Min STX</ label >
220+ < input id = "feed-filter-min" type = "number" value = { minAmount } onChange = { ( e ) => { setMinAmount ( e . target . value ) ; setOffset ( 0 ) ; } }
221+ className = "w-24 px-3 py-1.5 bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-700 rounded-lg text-sm text-gray-900 dark:text-white outline-none focus:ring-2 focus:ring-amber-500" placeholder = "0" step = "0.001" min = "0" />
222+ </ div >
223+ < div className = "flex items-center gap-2" >
224+ < label htmlFor = "feed-filter-max" className = "text-xs font-medium text-gray-500 dark:text-gray-400" > Max STX</ label >
225+ < input id = "feed-filter-max" type = "number" value = { maxAmount } onChange = { ( e ) => { setMaxAmount ( e . target . value ) ; setOffset ( 0 ) ; } }
226+ className = "w-24 px-3 py-1.5 bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-700 rounded-lg text-sm text-gray-900 dark:text-white outline-none focus:ring-2 focus:ring-amber-500" placeholder = "any" step = "0.001" min = "0" />
227+ </ div >
228+ < div className = "flex items-center gap-2" >
229+ < label htmlFor = "feed-sort" className = "text-xs font-medium text-gray-500 dark:text-gray-400" > Sort</ label >
230+ < select id = "feed-sort" value = { sortBy } onChange = { ( e ) => { setSortBy ( e . target . value ) ; setOffset ( 0 ) ; } }
227231 className = "px-3 py-1.5 bg-white dark:bg-gray-900 border border-gray-200 dark:border-gray-700 rounded-lg text-sm text-gray-900 dark:text-white outline-none focus:ring-2 focus:ring-amber-500" >
228232 < option value = "newest" > Newest first</ option > < option value = "oldest" > Oldest first</ option >
229233 < option value = "amount-high" > Highest amount</ option > < option value = "amount-low" > Lowest amount</ option >
0 commit comments