mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2026-01-11 08:19:01 +08:00
feat(selection): add builtin action item type and update default items
Add new SelectionBuiltinActionItem type to better type builtin actions Update defaultActionItems to use new type with const assertion
This commit is contained in:
parent
0045bf6c9c
commit
913238c991
@ -38,6 +38,14 @@ export type SelectionActionItem = {
|
|||||||
searchEngine?: string
|
searchEngine?: string
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export type BuiltinActionItemId = 'translate' | 'explain' | 'summary' | 'search' | 'copy' | 'refine' | 'quote'
|
||||||
|
|
||||||
|
export interface SelectionBuiltinActionItem extends SelectionActionItem {
|
||||||
|
id: BuiltinActionItemId
|
||||||
|
isBuiltIn: true
|
||||||
|
assistantId?: never
|
||||||
|
}
|
||||||
|
|
||||||
export enum ThemeMode {
|
export enum ThemeMode {
|
||||||
light = 'light',
|
light = 'light',
|
||||||
dark = 'dark',
|
dark = 'dark',
|
||||||
|
|||||||
@ -3,7 +3,7 @@
|
|||||||
*/
|
*/
|
||||||
import type { PayloadAction } from '@reduxjs/toolkit'
|
import type { PayloadAction } from '@reduxjs/toolkit'
|
||||||
import { createSlice } from '@reduxjs/toolkit'
|
import { createSlice } from '@reduxjs/toolkit'
|
||||||
import type { SelectionActionItem } from '@shared/data/preference/preferenceTypes'
|
import type { SelectionActionItem, SelectionBuiltinActionItem } from '@shared/data/preference/preferenceTypes'
|
||||||
import { SelectionFilterMode, SelectionTriggerMode } from '@shared/data/preference/preferenceTypes'
|
import { SelectionFilterMode, SelectionTriggerMode } from '@shared/data/preference/preferenceTypes'
|
||||||
|
|
||||||
export interface SelectionState {
|
export interface SelectionState {
|
||||||
@ -20,7 +20,7 @@ export interface SelectionState {
|
|||||||
actionItems: SelectionActionItem[]
|
actionItems: SelectionActionItem[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export const defaultActionItems: SelectionActionItem[] = [
|
export const defaultActionItems = [
|
||||||
{ id: 'translate', name: 'selection.action.builtin.translate', enabled: true, isBuiltIn: true, icon: 'languages' },
|
{ 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: '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: 'summary', name: 'selection.action.builtin.summary', enabled: true, isBuiltIn: true, icon: 'scan-text' },
|
||||||
@ -35,7 +35,7 @@ export const defaultActionItems: SelectionActionItem[] = [
|
|||||||
{ id: 'copy', name: 'selection.action.builtin.copy', enabled: true, isBuiltIn: true, icon: 'clipboard-copy' },
|
{ 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: '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' }
|
{ id: 'quote', name: 'selection.action.builtin.quote', enabled: false, isBuiltIn: true, icon: 'quote' }
|
||||||
]
|
] as const satisfies SelectionBuiltinActionItem[]
|
||||||
|
|
||||||
export const initialState: SelectionState = {
|
export const initialState: SelectionState = {
|
||||||
selectionEnabled: false,
|
selectionEnabled: false,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user