fix: 🐛

This commit is contained in:
codytseng
2025-09-11 10:09:32 +08:00
parent 1a58e54ed0
commit 8655fd1840
2 changed files with 12 additions and 6 deletions

View File

@@ -168,18 +168,18 @@ const SearchBar = forwardRef<
}, [input, debouncedInput, profiles]) }, [input, debouncedInput, profiles])
useEffect(() => { useEffect(() => {
if (list) { setDisplayList(searching && !!input)
}, [searching, input])
useEffect(() => {
if (displayList && list) {
modalManager.register(id, () => { modalManager.register(id, () => {
setDisplayList(false) setDisplayList(false)
}) })
} else { } else {
modalManager.unregister(id) modalManager.unregister(id)
} }
}, [list]) }, [displayList, list])
useEffect(() => {
setDisplayList(searching && !!input)
}, [searching, input])
const handleKeyDown = useCallback( const handleKeyDown = useCallback(
(e: React.KeyboardEvent) => { (e: React.KeyboardEvent) => {

View File

@@ -11,6 +11,12 @@ class ModalManagerService {
} }
register(id: string, cb: () => void) { register(id: string, cb: () => void) {
const modal = this.modals.find((m) => m.id === id)
if (modal) {
// already registered, update callback
modal.cb = cb
return
}
this.modals.push({ id, cb }) this.modals.push({ id, cb })
} }