From a07112aafdd65c407e19ea68e2a7312e90174830 Mon Sep 17 00:00:00 2001 From: Alexander Drozdov Date: Wed, 17 Apr 2024 13:33:18 +0300 Subject: [PATCH] small stash-search refactoring --- renderer/src/web/Config.ts | 9 +++-- renderer/src/web/overlay/widgets.ts | 11 ------ .../web/stash-search/WidgetStashSearch.vue | 39 ++++++++++++++++--- .../web/stash-search/stash-search-editor.vue | 2 +- renderer/src/web/stash-search/widget.ts | 12 ++++++ 5 files changed, 51 insertions(+), 22 deletions(-) create mode 100644 renderer/src/web/stash-search/widget.ts diff --git a/renderer/src/web/Config.ts b/renderer/src/web/Config.ts index db954c25..80e35ee0 100644 --- a/renderer/src/web/Config.ts +++ b/renderer/src/web/Config.ts @@ -3,6 +3,7 @@ import isDeepEqual from 'fast-deep-equal' import { Host } from '@/web/background/IPC' import { HostConfig, ShortcutAction } from '@ipc/types' import type * as widget from './overlay/widgets' +import type { StashSearchWidget } from './stash-search/widget' const _config = shallowRef(null) let _lastSavedConfig: Config | null = null @@ -280,7 +281,7 @@ export const defaultConfig = (): Config => ({ { id: 3, name: '', text: '"Cannot Leech Life"', hotkey: null }, { id: 4, name: '', text: '"Cannot Leech Mana"', hotkey: null } ] - } as widget.StashSearchWidget, + } as StashSearchWidget, { wmId: 102, wmType: 'stash-search', @@ -301,7 +302,7 @@ export const defaultConfig = (): Config => ({ { id: 5, name: '', text: '"Map Device" "Rarity: Normal"', hotkey: null }, { id: 6, name: '', text: 'Tane Laboratory', hotkey: null } ] - } as widget.StashSearchWidget, + } as StashSearchWidget, { wmId: 103, wmType: 'image-strip', @@ -540,7 +541,7 @@ function upgradeConfig (_config: Config): Config { for (const widget of config.widgets) { if (widget.wmType === 'stash-search') { - (widget as widget.StashSearchWidget).enableHotkeys ??= true + (widget as StashSearchWidget).enableHotkeys ??= true } } @@ -619,7 +620,7 @@ function getConfigForHost (): HostConfig { } for (const widget of config.widgets) { if (widget.wmType === 'stash-search') { - const stashSearch = widget as widget.StashSearchWidget + const stashSearch = widget as StashSearchWidget if (!stashSearch.enableHotkeys) continue for (const entry of stashSearch.entries) { diff --git a/renderer/src/web/overlay/widgets.ts b/renderer/src/web/overlay/widgets.ts index fff1e9dd..b7672287 100644 --- a/renderer/src/web/overlay/widgets.ts +++ b/renderer/src/web/overlay/widgets.ts @@ -71,17 +71,6 @@ export interface DelveGridWidget extends Widget { toggleKey: string | null } -export interface StashSearchWidget extends Widget { - anchor: Anchor - enableHotkeys: boolean - entries: Array<{ - id: number - name: string - text: string - hotkey: string | null - }> -} - export interface ImageStripWidget extends Widget { anchor: Anchor images: Array<{ diff --git a/renderer/src/web/stash-search/WidgetStashSearch.vue b/renderer/src/web/stash-search/WidgetStashSearch.vue index f0e29c2b..db35c5e5 100644 --- a/renderer/src/web/stash-search/WidgetStashSearch.vue +++ b/renderer/src/web/stash-search/WidgetStashSearch.vue @@ -7,11 +7,11 @@ v-model="config.enableHotkeys">{{ t('stash_search.enable_keys') }}
-
@@ -23,7 +23,8 @@ import { inject, computed, watch } from 'vue' import { useI18n } from 'vue-i18n' import { MainProcess } from '@/web/background/IPC' import { pushHostConfig } from '@/web/Config' -import type { WidgetManager, StashSearchWidget } from '../overlay/interfaces.js' +import type { WidgetManager } from '../overlay/interfaces.js' +import type { StashSearchWidget } from './widget.js' import Widget from '../overlay/Widget.vue' @@ -63,3 +64,29 @@ watch(() => props.config.enableHotkeys, () => { const { t } = useI18n() + + diff --git a/renderer/src/web/stash-search/stash-search-editor.vue b/renderer/src/web/stash-search/stash-search-editor.vue index c44f2b82..955a1073 100644 --- a/renderer/src/web/stash-search/stash-search-editor.vue +++ b/renderer/src/web/stash-search/stash-search-editor.vue @@ -35,7 +35,7 @@ import { useI18n } from 'vue-i18n' import DndContainer from 'vuedraggable' import HotkeyInput from '../settings/HotkeyInput.vue' import { configProp, configModelValue } from '../settings/utils.js' -import type { StashSearchWidget } from '@/web/overlay/interfaces' +import type { StashSearchWidget } from './widget.js' export default defineComponent({ name: 'stash_search.name', diff --git a/renderer/src/web/stash-search/widget.ts b/renderer/src/web/stash-search/widget.ts new file mode 100644 index 00000000..7960d440 --- /dev/null +++ b/renderer/src/web/stash-search/widget.ts @@ -0,0 +1,12 @@ +import type { Widget, Anchor } from '../overlay/widgets.js' + +export interface StashSearchWidget extends Widget { + anchor: Anchor + enableHotkeys: boolean + entries: Array<{ + id: number + name: string + text: string + hotkey: string | null + }> +}