diff --git a/src/components/importBar/freesr.tsx b/src/components/importBar/freesr.tsx index 303c219..2f0c5b5 100644 --- a/src/components/importBar/freesr.tsx +++ b/src/components/importBar/freesr.tsx @@ -59,6 +59,7 @@ export default function FreeSRImport() { const handlerReadFile = (event: React.ChangeEvent) => { setIsLoading(true) const file = event.target.files?.[0]; + console.log(event.target.files) if (!file) { setSelectedCharacters([]) setFreeSRData(null) @@ -104,10 +105,11 @@ export default function FreeSRImport() { })) ?? [], } as CharacterInfoCardType })); - } catch { + } catch (e) { + console.log(e) setSelectedCharacters([]) setFreeSRData(null) - setError(transI18n("fileIsNotAValidFreeSRJsonFile")) + setError(transI18n("fileMustBeAValidJsonFile")) } }; reader.readAsText(file); diff --git a/src/types/srtools.ts b/src/types/srtools.ts index fa9ccbc..84f1faa 100644 --- a/src/types/srtools.ts +++ b/src/types/srtools.ts @@ -28,7 +28,7 @@ export interface AvatarData { } export interface AvatarJson { - owner_uid: number; + owner_uid?: number; avatar_id: number; data: AvatarData; level: number; @@ -64,12 +64,18 @@ export interface BattleConfigJson { path_resonance_id: number; monsters: MonsterJson[][]; } - +type LoadoutJson = { + name: string + avatar_id: number + relic_list: string[] +} export interface FreeSRJson { + key?: string; lightcones: LightconeJson[]; relics: RelicJson[]; avatars: { [key: string]: AvatarJson }; battle_config: BattleConfigJson; + loadout?: LoadoutJson[]; } export interface PSResponse { diff --git a/src/zod/srtools.zod.ts b/src/zod/srtools.zod.ts index 8753408..848f5e3 100644 --- a/src/zod/srtools.zod.ts +++ b/src/zod/srtools.zod.ts @@ -32,7 +32,7 @@ export const avatarDataSchema = z.object({ }); export const avatarJsonSchema = z.object({ - owner_uid: z.number(), + owner_uid: z.number().optional(), avatar_id: z.number(), data: avatarDataSchema, level: z.number(), @@ -69,11 +69,19 @@ export const battleConfigJsonSchema = z.object({ monsters: z.array(z.array(monsterJsonSchema)), }); +export const loadoutJsonSchema = z.object({ + name: z.string(), + avatar_id: z.number(), + relic_list: z.array(z.string()), +}); + export const freeSRJsonSchema = z.object({ + key: z.string().optional(), lightcones: z.array(lightconeJsonSchema), relics: z.array(relicJsonSchema), avatars: z.record(avatarJsonSchema), battle_config: battleConfigJsonSchema, + loadout: z.array(loadoutJsonSchema).optional(), }); export const pSResponseSchema = z.object({