Sync source to CNB / Sync Git ref (push) Has been cancelled
新增同步 helpers(synced-options / synced-packs / game-options),在 instance helper 中补充同步类型与 API。新增实例设置「同步」标签页(SyncSettings)及 SyncSource / SyncedPacks / servers / command-history 四个弹窗,并把 CheckCircleButton、TeleportOverflowMenu 从 ui 包导出。同步相关的 en-US / zh-CN 文案已补齐(各 62 条)。game-settings-modal 留待下一轮。
62 lines
1.6 KiB
TypeScript
62 lines
1.6 KiB
TypeScript
import { queryOptions } from '@tanstack/vue-query'
|
|
|
|
import { list_game_options_sync_sources } from './game-options'
|
|
import {
|
|
get_command_history,
|
|
get_global_synced_options,
|
|
get_initialized_synced_options,
|
|
list_synced_servers,
|
|
} from './instance'
|
|
import type { GameInstance } from './types'
|
|
|
|
export const syncedOptionsKeys = {
|
|
global: ['global-synced-options'] as const,
|
|
initialized: ['initialized-synced-options'] as const,
|
|
gameSources: ['game-options-sync-sources'] as const,
|
|
set: ['global-synced-options', 'set'] as const,
|
|
servers: ['synced-servers', 'list'] as const,
|
|
commandHistory: ['synced-options', 'command-history'] as const,
|
|
}
|
|
|
|
export function globalSyncedOptionsQueryOptions() {
|
|
return queryOptions({
|
|
queryKey: syncedOptionsKeys.global,
|
|
queryFn: get_global_synced_options,
|
|
})
|
|
}
|
|
|
|
export function initializedSyncedOptionsQueryOptions() {
|
|
return queryOptions({
|
|
queryKey: syncedOptionsKeys.initialized,
|
|
queryFn: get_initialized_synced_options,
|
|
})
|
|
}
|
|
|
|
export function gameOptionsSyncSourcesQueryOptions() {
|
|
return queryOptions({
|
|
queryKey: syncedOptionsKeys.gameSources,
|
|
queryFn: list_game_options_sync_sources,
|
|
staleTime: 0,
|
|
})
|
|
}
|
|
|
|
export function syncedServersQueryOptions() {
|
|
return queryOptions({
|
|
queryKey: syncedOptionsKeys.servers,
|
|
queryFn: list_synced_servers,
|
|
})
|
|
}
|
|
|
|
export function commandHistoryQueryOptions() {
|
|
return queryOptions({
|
|
queryKey: syncedOptionsKeys.commandHistory,
|
|
queryFn: get_command_history,
|
|
})
|
|
}
|
|
|
|
export function canSourceMultiplayerServers(instance: GameInstance): boolean {
|
|
return !['server_project', 'server_project_modpack', 'modrinth_hosting'].includes(
|
|
instance.link?.type ?? '',
|
|
)
|
|
}
|