Samme "bla i eksisterende spillere"-fiks i lag-turneringers roster (ADR-070-tillegg)
AddPlayerControl i tournament-detail.tsx hadde samme begrensning som AddParticipantControl hadde før dagens fiks: matches var kun avledet ved ikke-tomt søk. Samme "available"-fallback-mønster lagt til her -- spillere på det andre laget forblir synlige (nedgradert), kun de på DETTE laget ekskluderes. Ren frontend-endring, ingen migrasjon. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
a8a2c602ce
commit
467cbd1ec2
3 changed files with 57 additions and 23 deletions
|
|
@ -6989,11 +6989,23 @@ lagret korrekt. Ingen kodeendring nødvendig; kun automatiserings-
|
|||
verktøyets begrensning med native dato-inputs, ikke en reell
|
||||
applikasjonsbug.
|
||||
|
||||
**Bevisst UTENFOR omfang:** den strukturelt identiske "bla i eksisterende
|
||||
spillere"-begrensningen finnes trolig også i lag-turneringers roster-
|
||||
tillegg (`tournament-detail.tsx`, samme `pool`/`matches`/`exactMatch`-
|
||||
mønster) -- IKKE rørt i denne runden, brukerens skjermbilder gjaldt
|
||||
spesifikt den org-individuelle skjermen. Kjent, ikke glemt.
|
||||
**Tillegg samme dag:** bruker ba om samme fiks i lag-turneringers
|
||||
roster-tillegg (`tournament-detail.tsx`, `AddPlayerControl`) etter å ha
|
||||
fått påpekt den strukturelt identiske begrensningen der. Samme
|
||||
"available"-fallback-mønster (utledet av `matches`, ikke en egen
|
||||
tilstand) lagt til -- spillere allerede rostret på det ANDRE laget
|
||||
forblir i listen, nedgradert/deaktivert med "allerede på {lag}", kun
|
||||
spillere på DETTE laget ekskluderes fra `matches`. Tom-tilstand-teksten
|
||||
splittet på samme måte (pool tomt / alle allerede lagt til / søk uten
|
||||
treff). Ingen migrasjon -- ren frontend-endring. `tsc --noEmit` rent +
|
||||
45/45 vitest. Egen scratch-database + scratch `teecup_api`-container
|
||||
(port 18004, live-mountet kode) + lokal `next dev` (port 13004): to
|
||||
lag, tre poolspillere (én allerede rostret på det andre laget) --
|
||||
bekreftet at kontrollen viser alle tre direkte ved tomt søk (riktig
|
||||
nedgradert for den som er opptatt), søk smalner riktig inn, og
|
||||
"Legg til"-flyten for en eksisterende spiller fungerer uendret. Lys+mørk
|
||||
bekreftet. Scratch-stacken revet ned -- ekte `teecup_db`/`teecup_api`/
|
||||
`teecup_frontend` urørt (ingen migrasjon å rulle ut for dette tillegget).
|
||||
|
||||
**Rullet ut 2026-08-14** -- migrasjon 074 kjørt mot ekte `teecup_db`
|
||||
som `teeoff_admin` (4 eksisterende spillere backfillet), etter
|
||||
|
|
|
|||
19
CHANGELOG.md
19
CHANGELOG.md
|
|
@ -11336,12 +11336,21 @@ Neste steg:
|
|||
korrekt. Kun et automatiseringsverktøy-kvirk med native dato-inputs,
|
||||
ingen kodeendring nødvendig.
|
||||
|
||||
**Bevisst UTENFOR omfang:** samme "bla i eksisterende"-begrensning
|
||||
finnes trolig også i lag-turneringers roster-tillegg
|
||||
(`tournament-detail.tsx`, strukturelt identisk mønster) -- ikke rørt,
|
||||
brukerens skjermbilder gjaldt spesifikt den org-individuelle skjermen.
|
||||
|
||||
**Rullet ut 2026-08-14** -- migrasjon 074 kjørt mot ekte `teecup_db`
|
||||
som `teeoff_admin` (4 eksisterende spillere backfillet), etter
|
||||
eksplisitt bekreftelse fra bruker. `docker compose build teecup_api
|
||||
teecup_frontend && up -d` -- begge containere startet rent.
|
||||
|
||||
**Tillegg samme dag:** flagget den strukturelt identiske "bla i
|
||||
eksisterende"-begrensningen i lag-turneringers roster-tillegg
|
||||
(`tournament-detail.tsx`) som bevisst utenfor omfang -- bruker ba om
|
||||
samme fiks der. Samme "available"-fallback-mønster lagt til
|
||||
`AddPlayerControl` (spillere på DET ANDRE laget forblir synlige,
|
||||
nedgradert/deaktivert -- kun de på DETTE laget ekskluderes). Ren
|
||||
frontend-endring, ingen migrasjon. `tsc --noEmit` rent + 45/45
|
||||
vitest. Scratch-database + scratch `teecup_api` (port 18004) +
|
||||
lokal `next dev` (port 13004): to lag, tre poolspillere (én allerede
|
||||
rostret på det andre laget) -- bekreftet browsing, søk-innsnevring
|
||||
og eksisterende-spiller-tillegg alle fungerer, lys+mørk. Ingen
|
||||
migrasjon å rulle ut -- fikset direkte i `teecup_frontend` sammen
|
||||
med neste ordinære build/deploy.
|
||||
|
|
|
|||
|
|
@ -948,11 +948,13 @@ function AddPlayerControl({
|
|||
|
||||
const trimmed = query.trim()
|
||||
|
||||
const matches = useMemo(() => {
|
||||
if (!trimmed) return []
|
||||
const q = trimmed.toLowerCase()
|
||||
// Alle poolspillere som ikke allerede er rostret på DETTE laget (spillere
|
||||
// på det andre laget blir værende med, vist nedgraderte -- se onOtherTeam
|
||||
// under). Skilt ut fra `matches` slik at "bla i eksisterende"-listen kan
|
||||
// vises uavhengig av om søkefeltet er tomt (samme fiks som
|
||||
// AddParticipantControl i individual-tournament-detail.tsx, ADR-070).
|
||||
const availableForThisTeam = useMemo(() => {
|
||||
return pool
|
||||
.filter((p) => p.display_name.toLowerCase().includes(q))
|
||||
.map((p) => {
|
||||
const onTeam = findPlayerTeam(p.id)
|
||||
return {
|
||||
|
|
@ -962,7 +964,13 @@ function AddPlayerControl({
|
|||
}
|
||||
})
|
||||
.filter((m) => !m.onThisTeam)
|
||||
}, [pool, trimmed, findPlayerTeam, team.id])
|
||||
}, [pool, findPlayerTeam, team.id])
|
||||
|
||||
const matches = useMemo(() => {
|
||||
if (!trimmed) return availableForThisTeam
|
||||
const q = trimmed.toLowerCase()
|
||||
return availableForThisTeam.filter((m) => m.player.display_name.toLowerCase().includes(q))
|
||||
}, [availableForThisTeam, trimmed])
|
||||
|
||||
const exactMatch = useMemo(
|
||||
() => pool.some((p) => p.display_name.toLowerCase() === trimmed.toLowerCase()),
|
||||
|
|
@ -1038,7 +1046,6 @@ function AddPlayerControl({
|
|||
</Button>
|
||||
</div>
|
||||
|
||||
{trimmed.length > 0 && (
|
||||
<div className="overflow-hidden rounded-2xl border border-border bg-background">
|
||||
<ul className="flex max-h-64 flex-col overflow-auto">
|
||||
{matches.map(({ player, onOtherTeam }) => {
|
||||
|
|
@ -1080,9 +1087,16 @@ function AddPlayerControl({
|
|||
)
|
||||
})}
|
||||
|
||||
{matches.length === 0 && !showCreate && (
|
||||
{matches.length === 0 && availableForThisTeam.length === 0 && (
|
||||
<li className="px-4 py-3 text-center text-sm text-muted-foreground">
|
||||
Ingen treff.
|
||||
{pool.length === 0
|
||||
? "Ingen spillere i organisasjonen ennå -- opprett den første under."
|
||||
: "Alle spillere i organisasjonen er allerede lagt til dette laget."}
|
||||
</li>
|
||||
)}
|
||||
{matches.length === 0 && availableForThisTeam.length > 0 && trimmed.length > 0 && (
|
||||
<li className="px-4 py-3 text-center text-sm text-muted-foreground">
|
||||
Ingen treff blant eksisterende spillere.
|
||||
</li>
|
||||
)}
|
||||
|
||||
|
|
@ -1137,7 +1151,6 @@ function AddPlayerControl({
|
|||
)}
|
||||
</ul>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue