Debounce hiding side panel to avoid toggling visibility when cycling through records

This commit is contained in:
Andrew Kingston 2022-12-06 09:55:42 +00:00
parent e56b5cde90
commit bcc0fe71da
1 changed files with 11 additions and 4 deletions

View File

@ -11,18 +11,25 @@ export const createSidePanelStore = () => {
open: $store.contentId != null, open: $store.contentId != null,
} }
}) })
let timeout
const open = id => { const open = id => {
clearTimeout(timeout)
store.update(state => { store.update(state => {
state.contentId = id state.contentId = id
return state return state
}) })
} }
// Delay closing by 50ms to avoid toggling visibility when cycling though
// records
const close = () => { const close = () => {
store.update(state => { timeout = setTimeout(() => {
state.contentId = null store.update(state => {
return state state.contentId = null
}) return state
})
}, 50)
} }
return { return {