fix: cleanup command when hot reload

This commit is contained in:
三咲智子 2022-12-01 21:52:40 +08:00
parent 17a15e2917
commit 335fc9f64b
No known key found for this signature in database
GPG key ID: 69992F2250DFD93E

View file

@ -175,9 +175,10 @@ export const useCommand = (cmd: CommandProvider) => {
registry.register(cmd) registry.register(cmd)
onDeactivated(() => { const cleanup = () => registry.remove(cmd)
registry.remove(cmd)
}) onDeactivated(cleanup)
tryOnScopeDispose(cleanup)
} }
export const useCommands = (cmds: () => CommandProvider[]) => { export const useCommands = (cmds: () => CommandProvider[]) => {
@ -192,9 +193,12 @@ export const useCommands = (cmds: () => CommandProvider[]) => {
registry.register(cmd) registry.register(cmd)
}, { deep: true, immediate: true }) }, { deep: true, immediate: true })
onDeactivated(() => { const cleanup = () => {
commands.value.forEach(cmd => registry.remove(cmd)) commands.value.forEach(cmd => registry.remove(cmd))
}) }
onDeactivated(cleanup)
tryOnScopeDispose(cleanup)
} }
export const provideGlobalCommands = () => { export const provideGlobalCommands = () => {