diff --git a/src/pages/settings/components/ThemeModal.tsx b/src/pages/settings/components/ThemeModal.tsx index 39a7be3..941b874 100644 --- a/src/pages/settings/components/ThemeModal.tsx +++ b/src/pages/settings/components/ThemeModal.tsx @@ -39,14 +39,23 @@ function ThemeModal({ const filtered = backgroundList.filter((item: any) => item.toLowerCase().includes(query.toLowerCase()), ); + const re = /(?:\.([^.]+))?$/; const items = filtered.map((item: any, index: any) => ( setSelectedTheme({ ...selectedTheme, @@ -54,13 +63,43 @@ function ThemeModal({ }) } > - {item} + + + {item.replace(/\.[^/.]+$/, '')} + + {item !== 'None' && ( + + {re.exec(item.toUpperCase())?.[1]} + + )} + )); useEffect(() => { if (selectedTheme) { - setQuery(selectedTheme?.backgroundImage || ''); + if (selectedTheme?.backgroundImage === 'none') { + setQuery(''); + } else { + setQuery(selectedTheme?.backgroundImage || ''); + } } }, [selectedTheme]); @@ -273,44 +312,65 @@ function ThemeModal({ )} - { - setQuery(event.currentTarget.value); - setHovered(-1); - }} - onKeyDown={(event) => { - if (event.key === 'ArrowDown') { - event.preventDefault(); - setHovered((current) => { - const nextIndex = - current + 1 >= filtered.length ? current : current + 1; - viewportRef.current - ?.querySelectorAll('[data-list-item]') - ?.[nextIndex]?.scrollIntoView({ block: 'nearest' }); - return nextIndex; - }); + + Search: + { + setQuery(''); + }} + /> } + onChange={(event) => { + setQuery(event.currentTarget.value); + setHovered(-1); + }} + onKeyDown={(event) => { + if (event.key === 'ArrowDown') { + event.preventDefault(); + setHovered((current) => { + const nextIndex = + current + 1 >= filtered.length ? current : current + 1; + viewportRef.current + ?.querySelectorAll('[data-list-item]') + ?.[nextIndex]?.scrollIntoView({ block: 'nearest' }); + return nextIndex; + }); + } - if (event.key === 'ArrowUp') { - event.preventDefault(); - setHovered((current) => { - const nextIndex = current - 1 < 0 ? current : current - 1; - viewportRef.current - ?.querySelectorAll('[data-list-item]') - ?.[nextIndex]?.scrollIntoView({ block: 'nearest' }); - return nextIndex; - }); - } + if (event.key === 'ArrowUp') { + event.preventDefault(); + setHovered((current) => { + const nextIndex = current - 1 < 0 ? current : current - 1; + viewportRef.current + ?.querySelectorAll('[data-list-item]') + ?.[nextIndex]?.scrollIntoView({ block: 'nearest' }); + return nextIndex; + }); + } + }} + /> + + - - + > + {items} - +