feat: 新增启动参数设置页面,区分 desktop 可编辑与 server 只读
This commit is contained in:
33
frontend/src/hooks/useSettings.ts
Normal file
33
frontend/src/hooks/useSettings.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query'
|
||||
import { MessagePlugin } from 'tdesign-react'
|
||||
import * as api from '@/api/settings'
|
||||
import type { SaveStartupSettingsInput, ApiError } from '@/types'
|
||||
|
||||
export const settingsKeys = {
|
||||
startup: ['settings', 'startup'] as const,
|
||||
}
|
||||
|
||||
export function useStartupSettings() {
|
||||
return useQuery({
|
||||
queryKey: settingsKeys.startup,
|
||||
queryFn: api.getStartupSettings,
|
||||
staleTime: 0,
|
||||
})
|
||||
}
|
||||
|
||||
export function useSaveStartupSettings() {
|
||||
const queryClient = useQueryClient()
|
||||
|
||||
return useMutation({
|
||||
mutationFn: (input: SaveStartupSettingsInput) => api.saveStartupSettings(input),
|
||||
onSuccess: (data) => {
|
||||
queryClient.invalidateQueries({ queryKey: settingsKeys.startup })
|
||||
if (data.mode === 'desktop') {
|
||||
MessagePlugin.success('配置已保存到配置文件。当前运行中的服务仍使用启动时配置,重启 Desktop 后生效')
|
||||
}
|
||||
},
|
||||
onError: (error: ApiError) => {
|
||||
MessagePlugin.error(error.message)
|
||||
},
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user