diff --git a/src/lib/api/adapters/resources/job.resource.svelte.ts b/src/lib/api/adapters/resources/job.resource.svelte.ts index 7bcff0e1..ed3d6dac 100644 --- a/src/lib/api/adapters/resources/job.resource.svelte.ts +++ b/src/lib/api/adapters/resources/job.resource.svelte.ts @@ -25,10 +25,10 @@ export interface JobResourceOptions { * State for job data */ interface JobState { - data?: T + data: T | undefined loading: boolean - error?: AdapterError - lastFetch?: number + error: AdapterError | undefined + lastFetch: number | undefined } /** @@ -65,11 +65,11 @@ export class JobResource { private cacheDuration: number // Reactive state for job data - jobs = $state>({ loading: false }) - currentJob = $state>({ loading: false }) - jobSkills = $state>({ loading: false }) - jobAccessories = $state>({ loading: false }) - allSkills = $state>({ loading: false }) + jobs = $state>({ loading: false, data: undefined, error: undefined, lastFetch: undefined }) + currentJob = $state>({ loading: false, data: undefined, error: undefined, lastFetch: undefined }) + jobSkills = $state>({ loading: false, data: undefined, error: undefined, lastFetch: undefined }) + jobAccessories = $state>({ loading: false, data: undefined, error: undefined, lastFetch: undefined }) + allSkills = $state>({ loading: false, data: undefined, error: undefined, lastFetch: undefined }) // Track active requests private activeRequests = new Map() @@ -108,7 +108,7 @@ export class JobResource { try { const data = await this.adapter.getAll() - this.jobs = { data, loading: false, lastFetch: Date.now() } + this.jobs = { data, loading: false, lastFetch: Date.now(), error: undefined } return data } catch (error: any) { if (error.code !== 'CANCELLED') { @@ -145,7 +145,7 @@ export class JobResource { try { const data = await this.adapter.getById(id) - this.currentJob = { data, loading: false, lastFetch: Date.now() } + this.currentJob = { data, loading: false, lastFetch: Date.now(), error: undefined } return data } catch (error: any) { if (error.code !== 'CANCELLED') { @@ -177,7 +177,7 @@ export class JobResource { try { const data = await this.adapter.getSkills(jobId) - this.jobSkills = { data, loading: false, lastFetch: Date.now() } + this.jobSkills = { data, loading: false, lastFetch: Date.now(), error: undefined } return data } catch (error: any) { if (error.code !== 'CANCELLED') { @@ -209,7 +209,7 @@ export class JobResource { try { const data = await this.adapter.getAccessories(jobId) - this.jobAccessories = { data, loading: false, lastFetch: Date.now() } + this.jobAccessories = { data, loading: false, lastFetch: Date.now(), error: undefined } return data } catch (error: any) { if (error.code !== 'CANCELLED') { @@ -246,7 +246,7 @@ export class JobResource { try { const data = await this.adapter.getAllSkills() - this.allSkills = { data, loading: false, lastFetch: Date.now() } + this.allSkills = { data, loading: false, lastFetch: Date.now(), error: undefined } return data } catch (error: any) { if (error.code !== 'CANCELLED') { @@ -309,11 +309,11 @@ export class JobResource { * Clear cached data */ clearCache() { - this.jobs = { loading: false } - this.currentJob = { loading: false } - this.jobSkills = { loading: false } - this.jobAccessories = { loading: false } - this.allSkills = { loading: false } + this.jobs = { loading: false, data: undefined, error: undefined, lastFetch: undefined } + this.currentJob = { loading: false, data: undefined, error: undefined, lastFetch: undefined } + this.jobSkills = { loading: false, data: undefined, error: undefined, lastFetch: undefined } + this.jobAccessories = { loading: false, data: undefined, error: undefined, lastFetch: undefined } + this.allSkills = { loading: false, data: undefined, error: undefined, lastFetch: undefined } } } @@ -340,14 +340,16 @@ export function groupJobsByTier(jobs: Job[]): Record { for (const job of jobs) { const tier = job.row.toString().toLowerCase() - if (tier in tiers) { + if (tier in tiers && tiers[tier]) { tiers[tier].push(job) } } // Sort jobs within each tier by order for (const tier in tiers) { - tiers[tier].sort((a, b) => a.order - b.order) + if (tiers[tier]) { + tiers[tier].sort((a, b) => a.order - b.order) + } } return tiers @@ -367,4 +369,4 @@ export function getTierDisplayName(tier: string): string { 'ex2': 'Extra II' } return tierNames[tier] || tier -} \ No newline at end of file +} diff --git a/src/lib/components/party/Party.svelte b/src/lib/components/party/Party.svelte index e32fcdcb..3ef4d5ab 100644 --- a/src/lib/components/party/Party.svelte +++ b/src/lib/components/party/Party.svelte @@ -16,7 +16,7 @@ import Button from '$lib/components/ui/Button.svelte' import Icon from '$lib/components/Icon.svelte' import DescriptionRenderer from '$lib/components/DescriptionRenderer.svelte' - import { openDescriptionSidebar } from '$lib/features/description/openDescriptionSidebar.svelte.ts' + import { openDescriptionSidebar } from '$lib/features/description/openDescriptionSidebar.svelte' import { DropdownMenu } from 'bits-ui' import DropdownItem from '$lib/components/ui/dropdown/DropdownItem.svelte' import JobSection from '$lib/components/job/JobSection.svelte' @@ -57,7 +57,7 @@ // Services const partyService = new PartyService() const gridService = new GridService() - const conflictService = new ConflictService(fetch) + const conflictService = new ConflictService() // Create drag-drop context const dragContext = createDragDropContext({ diff --git a/src/lib/components/ui/Button.svelte b/src/lib/components/ui/Button.svelte index 00123578..0864eaee 100644 --- a/src/lib/components/ui/Button.svelte +++ b/src/lib/components/ui/Button.svelte @@ -118,11 +118,11 @@ {@render leftAccessory()} - {:else if hasLeftIcon && !iconOnly} - - - - {/if} + {:else if hasLeftIcon && !iconOnly && icon} + + + + {/if} {#if children && !iconOnly} @@ -136,11 +136,11 @@ {@render rightAccessory()} - {:else if hasRightIcon && !iconOnly} - - - - {/if} + {:else if hasRightIcon && !iconOnly && icon} + + + + {/if} \ No newline at end of file + diff --git a/src/lib/components/ui/switch/Switch.svelte b/src/lib/components/ui/switch/Switch.svelte index a03c3a75..cc21d489 100644 --- a/src/lib/components/ui/switch/Switch.svelte +++ b/src/lib/components/ui/switch/Switch.svelte @@ -2,9 +2,8 @@