Sync source to CNB / Sync Git ref (push) Skipped
移植 Axolotl 的拖拽式实例分组界面到 Starlight,接入阶段1的规范化分组后端: - 新增 helpers/analytics.ts(trackEvent 遥测桩) - 补全 helpers/instance-groups.ts(6 个 invoke 包装) - 新增 composables/useInstanceGroups.ts(分组状态 + 事件监听) - 升级 composables/useGridGrouping.ts(排序方向 isSortAscending/toggleSortDirection) - helpers/events.js 补 instance_groups_listener(对接 instance_groups_changed 事件) - 新增 components/ui/library/DraggableInstanceCard.vue - 新增 components/ui/library/InstanceGroup.vue(并补 group-drag-handle 修复组拖拽重排) - 新增 components/ui/modal/InstanceGroupModal.vue - GridDisplay.vue 替换为 Axolotl 拖拽版(DragDropProvider + vuedraggable) - 补 en-US/zh-CN i18n 键各 39 条
46 lines
1.2 KiB
TypeScript
46 lines
1.2 KiB
TypeScript
import { invoke } from '@tauri-apps/api/core'
|
|
|
|
export const MAX_INSTANCE_GROUP_NAME_LENGTH = 256
|
|
|
|
export type InstanceGroupDefinition = {
|
|
id: string
|
|
name: string
|
|
}
|
|
|
|
export type InstanceGroupMembershipUpdate = {
|
|
instance_id: string
|
|
group_ids: string[]
|
|
}
|
|
|
|
export async function list_groups(): Promise<InstanceGroupDefinition[]> {
|
|
return await invoke('plugin:instance|instance_list_groups')
|
|
}
|
|
|
|
export async function create_group(name: string): Promise<InstanceGroupDefinition> {
|
|
return await invoke('plugin:instance|instance_create_group', { name })
|
|
}
|
|
|
|
export async function rename_group(id: string, newName: string): Promise<InstanceGroupDefinition> {
|
|
return await invoke('plugin:instance|instance_rename_group', {
|
|
id,
|
|
newName,
|
|
})
|
|
}
|
|
|
|
export async function delete_group(id: string): Promise<void> {
|
|
return await invoke('plugin:instance|instance_delete_group', { id })
|
|
}
|
|
|
|
export async function set_group_order(group_ids: string[]): Promise<void> {
|
|
return await invoke('plugin:instance|instance_set_group_order', {
|
|
groupIds: group_ids,
|
|
})
|
|
}
|
|
|
|
export async function set_group_memberships(
|
|
updates: InstanceGroupMembershipUpdate[],
|
|
): Promise<void> {
|
|
return await invoke('plugin:instance|instance_set_group_memberships', {
|
|
updates,
|
|
})
|
|
} |