diff --git a/packages/client-web/src/components/modals/config/server/saves-config.tsx b/packages/client-web/src/components/modals/config/server/saves-config.tsx index 5ff43fe0..56c3b88a 100644 --- a/packages/client-web/src/components/modals/config/server/saves-config.tsx +++ b/packages/client-web/src/components/modals/config/server/saves-config.tsx @@ -13,6 +13,7 @@ import { TabsContent } from "@retrom/ui/components/tabs"; import { SavesConfigSchema, ServerConfig, + SaveDirStructure, } from "@retrom/codegen/retrom/server/config_pb"; import { useUpdateServerConfig } from "@/mutations/useUpdateServerConfig"; import { zodResolver } from "@hookform/resolvers/zod"; @@ -31,6 +32,7 @@ type SavesConfigShape = Record< const savesSchema = z.object({ maxSaveFilesBackups: z.coerce.number().default(5), maxSaveStatesBackups: z.coerce.number().default(5), + saveDirStructure: z.nativeEnum(SaveDirStructure).default(SaveDirStructure.EMULATOR_GAME), }) satisfies z.ZodObject; export function SavesConfig(props: { @@ -41,9 +43,10 @@ export function SavesConfig(props: { const form = useForm>({ resolver: zodResolver(savesSchema), - defaultValues: props.currentConfig.saves ?? { - maxSaveFilesBackups: 5, - maxSaveStatesBackups: 5, + defaultValues: { + maxSaveFilesBackups: props.currentConfig.saves?.maxSaveFilesBackups ?? 5, + maxSaveStatesBackups: props.currentConfig.saves?.maxSaveStatesBackups ?? 5, + saveDirStructure: props.currentConfig.saves?.saveDirStructure ?? SaveDirStructure.EMULATOR_GAME, }, }); @@ -110,6 +113,27 @@ export function SavesConfig(props: { )} /> + ( + + Save File Directory Structure + + + + + + )} + /> +