diff --git a/src/lib/api/adapters/grid.adapter.ts b/src/lib/api/adapters/grid.adapter.ts index 3302a780..041ebd2f 100644 --- a/src/lib/api/adapters/grid.adapter.ts +++ b/src/lib/api/adapters/grid.adapter.ts @@ -21,28 +21,28 @@ export interface CreateGridWeaponParams { partyId: string weaponId: string position: number - mainhand?: boolean - uncapLevel?: number - transcendenceStep?: number + mainhand?: boolean | undefined + uncapLevel?: number | undefined + transcendenceStep?: number | undefined } export interface CreateGridCharacterParams { partyId: string characterId: string position: number - uncapLevel?: number - transcendenceStep?: number + uncapLevel?: number | undefined + transcendenceStep?: number | undefined } export interface CreateGridSummonParams { partyId: string summonId: string position: number - main?: boolean - friend?: boolean - quickSummon?: boolean - uncapLevel?: number - transcendenceStep?: number + main?: boolean | undefined + friend?: boolean | undefined + quickSummon?: boolean | undefined + uncapLevel?: number | undefined + transcendenceStep?: number | undefined } /** diff --git a/src/lib/api/adapters/party.adapter.ts b/src/lib/api/adapters/party.adapter.ts index 864f4d03..8d798186 100644 --- a/src/lib/api/adapters/party.adapter.ts +++ b/src/lib/api/adapters/party.adapter.ts @@ -17,13 +17,13 @@ import type { Party, GridWeapon, GridCharacter, GridSummon } from '$lib/types/ap * Parameters for creating a new party */ export interface CreatePartyParams { - name?: string - description?: string - visibility?: 'public' | 'private' | 'unlisted' - jobId?: string - raidId?: string - guidebookId?: string - extras?: Record + name?: string | undefined + description?: string | undefined + visibility?: 'public' | 'private' | 'unlisted' | undefined + jobId?: string | undefined + raidId?: string | undefined + guidebookId?: string | undefined + extras?: Record | undefined } /** diff --git a/src/lib/api/resources/users.ts b/src/lib/api/resources/users.ts index d66fbf66..f5e45284 100644 --- a/src/lib/api/resources/users.ts +++ b/src/lib/api/resources/users.ts @@ -26,7 +26,25 @@ export const users = { * Update user settings */ update: async (userId: string, params: UserUpdateParams): Promise => { - const result = await userAdapter.updateProfile(params) + // Transform flat params to nested UserInfo structure + const updates: Partial<{ + gender: number | undefined + language: string | undefined + theme: string | undefined + avatar: { picture?: string | undefined; element?: string | undefined } + }> = {} + + if (params.gender !== undefined) updates.gender = params.gender + if (params.language !== undefined) updates.language = params.language + if (params.theme !== undefined) updates.theme = params.theme + + if (params.picture !== undefined || params.element !== undefined) { + updates.avatar = {} + if (params.picture !== undefined) updates.avatar.picture = params.picture + if (params.element !== undefined) updates.avatar.element = params.element + } + + const result = await userAdapter.updateProfile(updates) return { id: result.id, username: result.username, diff --git a/src/lib/components/sidebar/details/TeamView.svelte b/src/lib/components/sidebar/details/TeamView.svelte index bb5d25e5..fd7797d8 100644 --- a/src/lib/components/sidebar/details/TeamView.svelte +++ b/src/lib/components/sidebar/details/TeamView.svelte @@ -48,7 +48,11 @@ {#if modificationStatus.hasAwakening} - + {/if} diff --git a/src/lib/services/grid.service.ts b/src/lib/services/grid.service.ts index 644637ec..03175b46 100644 --- a/src/lib/services/grid.service.ts +++ b/src/lib/services/grid.service.ts @@ -39,13 +39,13 @@ export class GridService { ): Promise { try { // Note: The backend computes the correct uncap level based on the weapon's FLB/ULB/transcendence flags - const gridWeapon = await gridAdapter.createWeapon(optionalProps({ + const gridWeapon = await gridAdapter.createWeapon({ partyId, weaponId, position, mainhand: options?.mainhand, transcendenceStep: 0 - }), this.buildHeaders(editKey)) + }, this.buildHeaders(editKey)) console.log('[GridService] Created grid weapon:', gridWeapon) @@ -208,14 +208,14 @@ export class GridService { options?: { main?: boolean; friend?: boolean; shortcode?: string } ): Promise { // Note: The backend computes the correct uncap level based on the summon's FLB/ULB/transcendence flags - const gridSummon = await gridAdapter.createSummon(optionalProps({ + const gridSummon = await gridAdapter.createSummon({ partyId, summonId, position, main: options?.main, friend: options?.friend, transcendenceStep: 0 - }), this.buildHeaders(editKey)) + }, this.buildHeaders(editKey)) console.log('[GridService] Created grid summon:', gridSummon) diff --git a/src/lib/services/party.service.ts b/src/lib/services/party.service.ts index 27c40ec4..436addcb 100644 --- a/src/lib/services/party.service.ts +++ b/src/lib/services/party.service.ts @@ -67,7 +67,7 @@ export class PartyService { party: Party editKey?: string }> { - const apiPayload = optionalProps(this.mapToApiPayload(payload)) + const apiPayload = this.mapToApiPayload(payload) const party = await partyAdapter.create(apiPayload) // Note: Edit key handling may need to be adjusted based on how the API returns it @@ -78,7 +78,7 @@ export class PartyService { * Update party details */ async update(id: string, payload: PartyUpdatePayload, editKey?: string): Promise { - const apiPayload = optionalProps(this.mapToApiPayload(payload)) + const apiPayload = this.mapToApiPayload(payload) return partyAdapter.update({ shortcode: id, ...apiPayload }) }