mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-03-01 06:22:44 -08:00
refactor(core): consolidate services and remove runtime wrappers
This commit is contained in:
@@ -16,6 +16,13 @@ export interface OverlayShortcutHandlers {
|
||||
openJimaku: () => void;
|
||||
}
|
||||
|
||||
export interface OverlayShortcutLifecycleDeps {
|
||||
getConfiguredShortcuts: () => ConfiguredShortcuts;
|
||||
getOverlayHandlers: () => OverlayShortcutHandlers;
|
||||
cancelPendingMultiCopy: () => void;
|
||||
cancelPendingMineSentenceMultiple: () => void;
|
||||
}
|
||||
|
||||
export function registerOverlayShortcutsService(
|
||||
shortcuts: ConfiguredShortcuts,
|
||||
handlers: OverlayShortcutHandlers,
|
||||
@@ -167,3 +174,46 @@ export function unregisterOverlayShortcutsService(
|
||||
globalShortcut.unregister(shortcuts.openJimaku);
|
||||
}
|
||||
}
|
||||
|
||||
export function registerOverlayShortcutsRuntimeService(
|
||||
deps: OverlayShortcutLifecycleDeps,
|
||||
): boolean {
|
||||
return registerOverlayShortcutsService(
|
||||
deps.getConfiguredShortcuts(),
|
||||
deps.getOverlayHandlers(),
|
||||
);
|
||||
}
|
||||
|
||||
export function unregisterOverlayShortcutsRuntimeService(
|
||||
shortcutsRegistered: boolean,
|
||||
deps: OverlayShortcutLifecycleDeps,
|
||||
): boolean {
|
||||
if (!shortcutsRegistered) return shortcutsRegistered;
|
||||
deps.cancelPendingMultiCopy();
|
||||
deps.cancelPendingMineSentenceMultiple();
|
||||
unregisterOverlayShortcutsService(deps.getConfiguredShortcuts());
|
||||
return false;
|
||||
}
|
||||
|
||||
export function syncOverlayShortcutsRuntimeService(
|
||||
shouldBeActive: boolean,
|
||||
shortcutsRegistered: boolean,
|
||||
deps: OverlayShortcutLifecycleDeps,
|
||||
): boolean {
|
||||
if (shouldBeActive) {
|
||||
return registerOverlayShortcutsRuntimeService(deps);
|
||||
}
|
||||
return unregisterOverlayShortcutsRuntimeService(shortcutsRegistered, deps);
|
||||
}
|
||||
|
||||
export function refreshOverlayShortcutsRuntimeService(
|
||||
shouldBeActive: boolean,
|
||||
shortcutsRegistered: boolean,
|
||||
deps: OverlayShortcutLifecycleDeps,
|
||||
): boolean {
|
||||
const cleared = unregisterOverlayShortcutsRuntimeService(
|
||||
shortcutsRegistered,
|
||||
deps,
|
||||
);
|
||||
return syncOverlayShortcutsRuntimeService(shouldBeActive, cleared, deps);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user