add retired date field to edit player dialog

This commit is contained in:
Justin Edmund 2025-12-18 00:36:04 -08:00
parent 4d84a7f915
commit cefcdfef07
2 changed files with 22 additions and 2 deletions

View file

@ -117,10 +117,12 @@ export interface UpdatePhantomPlayerInput {
notes?: string notes?: string
joinedAt?: string joinedAt?: string
retired?: boolean retired?: boolean
retiredAt?: string
} }
export interface UpdateMembershipInput { export interface UpdateMembershipInput {
role?: CrewRole role?: CrewRole
joinedAt?: string joinedAt?: string
retired?: boolean retired?: boolean
retiredAt?: string
} }

View file

@ -128,6 +128,7 @@
let editingPhantom = $state<PhantomPlayer | null>(null) let editingPhantom = $state<PhantomPlayer | null>(null)
let editJoinDate = $state('') let editJoinDate = $state('')
let editRetired = $state(false) let editRetired = $state(false)
let editRetiredAt = $state('')
// Dialog state for scout modal // Dialog state for scout modal
let scoutModalOpen = $state(false) let scoutModalOpen = $state(false)
@ -204,6 +205,7 @@
// Format date for input // Format date for input
editJoinDate = member.joinedAt ? (member.joinedAt.split('T')[0] ?? '') : '' editJoinDate = member.joinedAt ? (member.joinedAt.split('T')[0] ?? '') : ''
editRetired = member.retired editRetired = member.retired
editRetiredAt = member.retiredAt ? (member.retiredAt.split('T')[0] ?? '') : ''
editDialogOpen = true editDialogOpen = true
} }
@ -212,6 +214,7 @@
editingMember = null editingMember = null
editJoinDate = phantom.joinedAt ? (phantom.joinedAt.split('T')[0] ?? '') : '' editJoinDate = phantom.joinedAt ? (phantom.joinedAt.split('T')[0] ?? '') : ''
editRetired = phantom.retired editRetired = phantom.retired
editRetiredAt = phantom.retiredAt ? (phantom.retiredAt.split('T')[0] ?? '') : ''
editDialogOpen = true editDialogOpen = true
} }
@ -223,13 +226,18 @@
await updateMembershipMutation.mutateAsync({ await updateMembershipMutation.mutateAsync({
crewId: crewStore.crew.id, crewId: crewStore.crew.id,
membershipId: editingMember.id, membershipId: editingMember.id,
input: { joinedAt: editJoinDate, retired: editRetired } input: {
joinedAt: editJoinDate,
retired: editRetired,
retiredAt: editRetired ? editRetiredAt || undefined : undefined
}
}) })
} else if (editingPhantom) { } else if (editingPhantom) {
// Call the phantom update directly through the adapter // Call the phantom update directly through the adapter
await crewAdapter.updatePhantom(crewStore.crew.id, editingPhantom.id, { await crewAdapter.updatePhantom(crewStore.crew.id, editingPhantom.id, {
joinedAt: editJoinDate, joinedAt: editJoinDate,
retired: editRetired retired: editRetired,
retiredAt: editRetired ? editRetiredAt || undefined : undefined
}) })
// Invalidate members query // Invalidate members query
membersQuery.refetch() membersQuery.refetch()
@ -245,6 +253,7 @@
editingPhantom = null editingPhantom = null
editJoinDate = '' editJoinDate = ''
editRetired = false editRetired = false
editRetiredAt = ''
} }
function openDeletePhantomDialog(phantom: PhantomPlayer) { function openDeletePhantomDialog(phantom: PhantomPlayer) {
@ -555,6 +564,15 @@
<Switch bind:checked={editRetired} name="retired" /> <Switch bind:checked={editRetired} name="retired" />
{/snippet} {/snippet}
</SettingsRow> </SettingsRow>
{#if editRetired}
<div class="form-field">
<label for="retiredAt">Retired date</label>
<input id="retiredAt" type="date" bind:value={editRetiredAt} class="date-input" />
</div>
<p class="help-text">
This date is used to determine which events a retired player was active for.
</p>
{/if}
</div> </div>
</div> </div>
</ModalBody> </ModalBody>