diff --git a/src/routes/(app)/crew/create/+page.svelte b/src/routes/(app)/crew/create/+page.svelte
index 8a43a2db..d2ac668d 100644
--- a/src/routes/(app)/crew/create/+page.svelte
+++ b/src/routes/(app)/crew/create/+page.svelte
@@ -90,7 +90,7 @@
diff --git a/src/routes/(app)/crew/events/[eventNumber]/+page.svelte b/src/routes/(app)/crew/events/[eventNumber]/+page.svelte
index 3f356e83..dd6707ac 100644
--- a/src/routes/(app)/crew/events/[eventNumber]/+page.svelte
+++ b/src/routes/(app)/crew/events/[eventNumber]/+page.svelte
@@ -8,6 +8,8 @@
import { crewStore } from '$lib/stores/crew.store.svelte'
import Button from '$lib/components/ui/Button.svelte'
import Dialog from '$lib/components/ui/Dialog.svelte'
+ import DropdownMenu from '$lib/components/ui/DropdownMenu.svelte'
+ import { DropdownMenu as DropdownMenuBase } from 'bits-ui'
import ModalHeader from '$lib/components/ui/ModalHeader.svelte'
import ModalBody from '$lib/components/ui/ModalBody.svelte'
import ModalFooter from '$lib/components/ui/ModalFooter.svelte'
@@ -15,7 +17,8 @@
import Select from '$lib/components/ui/Select.svelte'
import Checkbox from '$lib/components/ui/checkbox/Checkbox.svelte'
import CrewHeader from '$lib/components/crew/CrewHeader.svelte'
- import { GW_ROUND_LABELS, type GwRound } from '$lib/types/api/gw'
+ import EditScoreModal from '$lib/components/crew/EditScoreModal.svelte'
+ import { GW_ROUND_LABELS, type GwRound, type GwIndividualScore } from '$lib/types/api/gw'
import type { PageData } from './$types'
interface Props {
@@ -69,6 +72,7 @@
type: 'member' | 'phantom'
totalScore: number
isRetired?: boolean
+ scores: GwIndividualScore[] // Individual score records for this player
}
const playerScores = $derived.by(() => {
@@ -82,7 +86,8 @@
name: member.user.username,
type: 'member',
totalScore: 0,
- isRetired: member.retired
+ isRetired: member.retired,
+ scores: []
})
}
}
@@ -95,6 +100,7 @@
if (existing) {
existing.totalScore += score.score
+ existing.scores.push(score)
} else {
// Phantom player or member not in membersDuringEvent
scoreMap.set(playerId, {
@@ -102,7 +108,8 @@
name: score.playerName,
type: score.playerType,
totalScore: score.score,
- isRetired: score.member?.retired
+ isRetired: score.member?.retired,
+ scores: [score]
})
}
}
@@ -309,10 +316,19 @@
isSubmitting = false
}
}
+
+ // ==================== Edit Score Modal ====================
+ let showEditScoreModal = $state(false)
+ let editingPlayer = $state
(null)
+
+ function openEditScoreModal(player: PlayerScore) {
+ editingPlayer = player
+ showEditScoreModal = true
+ }
- GW #{eventNumber} | Crew | Hensei
+ GW #{eventNumber} / granblue.team
@@ -391,6 +407,27 @@
Phantom
{/if}
{formatScore(player.totalScore)}
+ {#if crewStore.isOfficer && player.scores.length > 0}
+
+ {#snippet trigger({ props })}
+
+ {/snippet}
+ {#snippet menu()}
+
+ {/snippet}
+
+ {/if}
{/each}
diff --git a/src/routes/(app)/crew/join/+page.svelte b/src/routes/(app)/crew/join/+page.svelte
index 7e75a93a..43b355a6 100644
--- a/src/routes/(app)/crew/join/+page.svelte
+++ b/src/routes/(app)/crew/join/+page.svelte
@@ -77,7 +77,7 @@
- Join Crew | Hensei
+ Join Crew / granblue.team
diff --git a/src/routes/(app)/crew/members/+page.svelte b/src/routes/(app)/crew/members/+page.svelte
index b3f48b39..32c187ff 100644
--- a/src/routes/(app)/crew/members/+page.svelte
+++ b/src/routes/(app)/crew/members/+page.svelte
@@ -314,7 +314,7 @@
- Crew Members | Hensei
+ Crew Members / granblue.team
diff --git a/src/routes/(app)/crew/settings/+page.svelte b/src/routes/(app)/crew/settings/+page.svelte
index 14fce1b1..6649be70 100644
--- a/src/routes/(app)/crew/settings/+page.svelte
+++ b/src/routes/(app)/crew/settings/+page.svelte
@@ -142,7 +142,7 @@
- Crew Settings | Hensei
+ Crew Settings / granblue.team