refactor(preferences): replace empty action items with default values and remove unused hook

- Updated the preferences configuration to use `defaultActionItems` instead of an empty array for `feature.selection.action_items`, enhancing default behavior.
- Removed the `useSelectionAssistant` hook as it was no longer needed, streamlining the codebase.
This commit is contained in:
fullex 2025-08-16 21:51:58 +08:00
parent 65c24a2f4b
commit 40fe381aa5
3 changed files with 24 additions and 64 deletions

View File

@ -0,0 +1,22 @@
/**
*
*/
import type { SelectionActionItem } from './types'
export const defaultActionItems: SelectionActionItem[] = [
{ id: 'translate', name: 'selection.action.builtin.translate', enabled: true, isBuiltIn: true, icon: 'languages' },
{ id: 'explain', name: 'selection.action.builtin.explain', enabled: true, isBuiltIn: true, icon: 'file-question' },
{ id: 'summary', name: 'selection.action.builtin.summary', enabled: true, isBuiltIn: true, icon: 'scan-text' },
{
id: 'search',
name: 'selection.action.builtin.search',
enabled: true,
isBuiltIn: true,
icon: 'search',
searchEngine: 'Google|https://www.google.com/search?q={{queryString}}'
},
{ id: 'copy', name: 'selection.action.builtin.copy', enabled: true, isBuiltIn: true, icon: 'clipboard-copy' },
{ id: 'refine', name: 'selection.action.builtin.refine', enabled: false, isBuiltIn: true, icon: 'wand-sparkles' },
{ id: 'quote', name: 'selection.action.builtin.quote', enabled: false, isBuiltIn: true, icon: 'quote' }
]

View File

@ -1,3 +1,4 @@
import { defaultActionItems } from './pending_default_values'
import type { SelectionActionItem, SelectionFilterMode, SelectionTriggerMode } from './types'
/**
@ -499,7 +500,7 @@ export const DefaultPreferences: PreferencesType = {
'feature.quick_assistant.click_tray_to_show': false,
'feature.quick_assistant.enabled': false,
'feature.quick_assistant.read_clipboard_at_startup': true,
'feature.selection.action_items': [],
'feature.selection.action_items': defaultActionItems,
'feature.selection.action_window_opacity': 100,
'feature.selection.auto_close': false,
'feature.selection.auto_pin': false,

View File

@ -1,63 +0,0 @@
import { useAppDispatch, useAppSelector } from '@renderer/store'
import {
setActionItems,
setActionWindowOpacity,
setFilterList,
setFilterMode,
setIsAutoClose,
setIsAutoPin,
setIsCompact,
setIsFollowToolbar,
setIsRemeberWinSize,
setSelectionEnabled,
setTriggerMode
} from '@renderer/store/selectionStore'
import { ActionItem, FilterMode, TriggerMode } from '@renderer/types/selectionTypes'
export function useSelectionAssistant() {
const dispatch = useAppDispatch()
const selectionStore = useAppSelector((state) => state.selectionStore)
return {
...selectionStore,
setSelectionEnabled: (enabled: boolean) => {
dispatch(setSelectionEnabled(enabled))
window.api.selection.setEnabled(enabled)
},
setTriggerMode: (mode: TriggerMode) => {
dispatch(setTriggerMode(mode))
window.api.selection.setTriggerMode(mode)
},
setIsCompact: (isCompact: boolean) => {
dispatch(setIsCompact(isCompact))
},
setIsAutoClose: (isAutoClose: boolean) => {
dispatch(setIsAutoClose(isAutoClose))
},
setIsAutoPin: (isAutoPin: boolean) => {
dispatch(setIsAutoPin(isAutoPin))
},
setIsFollowToolbar: (isFollowToolbar: boolean) => {
dispatch(setIsFollowToolbar(isFollowToolbar))
window.api.selection.setFollowToolbar(isFollowToolbar)
},
setIsRemeberWinSize: (isRemeberWinSize: boolean) => {
dispatch(setIsRemeberWinSize(isRemeberWinSize))
window.api.selection.setRemeberWinSize(isRemeberWinSize)
},
setFilterMode: (mode: FilterMode) => {
dispatch(setFilterMode(mode))
window.api.selection.setFilterMode(mode)
},
setFilterList: (list: string[]) => {
dispatch(setFilterList(list))
window.api.selection.setFilterList(list)
},
setActionWindowOpacity: (opacity: number) => {
dispatch(setActionWindowOpacity(opacity))
},
setActionItems: (items: ActionItem[]) => {
dispatch(setActionItems(items))
}
}
}