Otevrena stranka sekala prehravani videa
Pri otevrenem portalu zacalo vedle nej sekat prehravani videa, po zavreni bylo hned dobre. Neslo o smycku v kodu: zivy prenos udalosti je SSE, jedno spojeni na celou aplikaci, a setTimeout je v nem jen na odstup pri znovupripojeni. Byly to tri veci. Rozmazavani plne barvy. `.glass`, podklad skoro kazdeho panelu, mel backdrop-filter blur(14px). Jenze pod kartami je plna barva (bg-ink-950 na dashboardu), takze se rozmazavala jednolita plocha: zadny rozdil videt nebyl a kazda karta si za to drzela vlastni rozmazanou vrstvu ve skladaci. V kodu je glass na 58 mistech, na jedne obrazovce jich je snadno dvacet. Rozmazani zustava na peti mistech, kde pod nim neco opravdu projizdi: lepici hlavicky, podklad modalu, prekryv menu na mobilu. Nekonecne animace nad velkymi rozmazanymi plochami. Prihlaseni a verejny web mely zare o velikosti 26 az 34 rem s blur(120px), kterym se donekonecna animovala pruhlednost - to znamena prepocitavat obrovskou vrstvu sedesatkrat za sekundu, i kdyz se na strance nic nedeje. Zare zustaly, animace zmizela. Pribylo prefers-reduced-motion. Kazda udalost prekreslila cely dashboard. EventStreamProvider mel v tomtez kontextu stav spojeni, odber i seznam poslednich udalosti. Seznam se meni pri kazde udalosti, takze se menila cela hodnota kontextu a prekreslil se kazdy, kdo si jen zaridil odber - tedy vsechny dotazy s refetchOn na strance, i kdyz o ten typ udalosti nestaly. Pri behu automatizace se cely dashboard prekresloval nekolikrat za sekundu, a s nim dvacet rozmazanych vrstev. Kontext je proto rozdeleny: useEventStream da stav a odber, useEventLog seznam udalosti. Filtr sekci nefiltroval. Seznam ticketu sklada adresu dotazu v useMemo, ale v zavislostech chybely groupId, typeId, tag a stage - adresa se po prepnuti sekce neprepocitala a data se nenacetla znovu. Driv to nevadilo, byly to filtry nastavitelne jen odkazem, ktere se po nacteni nemenily. Se zalozkou "Vsechny tickety" a jejim vyberem sekce je to chyba, ktera je videt. Overeno: groupId=grp_servicedesk vrati jeden ticket, groupId=none zbyle dva. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
9f4b8c0596
commit
0c405ea55a
@@ -144,3 +144,29 @@ zakaznika v ukazkovych datech a prejmenovat ho nema duvod.
|
||||
| Materialy mimo web | prezentace, obrazky pro socialni site |
|
||||
| Domena | `worknuke.cz` v `brand.ts`, ale nikde neni nasazena |
|
||||
| Prochazeni `accent-*` | 341 mist, ktera uz nemaji duvod pouzivat druhy klic |
|
||||
|
||||
## Rozmazani jen tam, kde neco prekryva
|
||||
|
||||
`.glass` je podklad skoro kazdeho panelu a **nema `backdrop-filter`**.
|
||||
|
||||
Puvodne mel `blur(14px)`, jenze pod kartami je plna barva (`bg-ink-950` na
|
||||
dashboardu): rozmazavala se jednolita plocha, zadny rozdil videt nebyl a kazda
|
||||
karta si za to drzela vlastni rozmazanou vrstvu ve skladaci. Pri dvaceti
|
||||
kartach na obrazovce to vytizilo GPU natolik, ze vedle portalu sekalo
|
||||
prehravani videa.
|
||||
|
||||
Rozmazani patri jen tam, kde pod nim neco opravdu projizdi:
|
||||
|
||||
| Kde | Trida |
|
||||
| -------------------------- | ----------------- |
|
||||
| lepici hlavicka dashboardu | `backdrop-blur-xl` |
|
||||
| lepici hlavicka webu | `backdrop-blur-xl` |
|
||||
| podklad modalu | `backdrop-blur-sm` |
|
||||
| prekryv menu na mobilu | `backdrop-blur-sm` |
|
||||
|
||||
**Zadna nekonecna animace nad velkou rozmazanou plochou.** Zare na prihlaseni
|
||||
a na webu jsou staticke: animovat pruhlednost objektu s `blur(120px)` znamena
|
||||
prepocitavat obrovskou vrstvu porad dokola, i kdyz se na strance nic nedeje.
|
||||
|
||||
Kdo ma v systemu vypnute animace (`prefers-reduced-motion`), nedostane ani
|
||||
ty zbyle.
|
||||
|
||||
@@ -2,6 +2,60 @@
|
||||
|
||||
Nejnovejsi nahore.
|
||||
|
||||
## 2026-09-08 - Otevrena stranka sekala prehravani videa
|
||||
|
||||
Pri otevrenem portalu zacalo vedle nej sekat prehravani videa, po zavreni
|
||||
stranky bylo hned dobre. Neslo o smycku v kodu: **zivy prenos udalosti je SSE,
|
||||
jedno spojeni na celou aplikaci**, a `setTimeout` je v nem jen na odstup pri
|
||||
znovupripojeni. Zdrzeni bylo jinde a byly to tri veci.
|
||||
|
||||
### Rozmazavani plne barvy
|
||||
|
||||
`.glass`, tedy podklad skoro kazdeho panelu, mel `backdrop-filter: blur(14px)`.
|
||||
Jenze **pod kartami je plna barva** (`bg-ink-950` na dashboardu), takze se
|
||||
rozmazavala jednolita plocha: zadny rozdil videt nebyl a kazda karta si za to
|
||||
drzela vlastni rozmazanou vrstvu ve skladaci. V kodu je `glass` na 58 mistech,
|
||||
na jedne obrazovce jich je snadno dvacet.
|
||||
|
||||
Rozmazani zustava tam, kde pod nim neco opravdu projizdi: lepici hlavicka
|
||||
dashboardu i webu, podklad modalu a prekryv menu na mobilu. To je pet mist,
|
||||
kazde se svym `backdrop-blur-*` primo u sebe.
|
||||
|
||||
### Nekonecne animace nad velkymi rozmazanymi plochami
|
||||
|
||||
Prihlaseni a verejny web meli zare o velikosti 26 az 34 rem s `blur(120px)`,
|
||||
kterym se **donekonecna animovala pruhlednost**. Animovat pruhlednost silne
|
||||
rozmazaneho objektu znamena prepocitavat obrovskou vrstvu sedesatkrat za
|
||||
sekundu, porad, i kdyz se na strance nic nedeje.
|
||||
|
||||
Zare zustaly, animace zmizela. Krome toho pribylo `prefers-reduced-motion`: kdo
|
||||
si v systemu animace vypnul, nema je dostat ani tady.
|
||||
|
||||
### Kazda udalost prekreslila cely dashboard
|
||||
|
||||
`EventStreamProvider` mel v tomtez kontextu **stav spojeni, odber i seznam
|
||||
poslednich udalosti**. Seznam se meni pri kazde udalosti, takze se menila cela
|
||||
hodnota kontextu - a prekreslil se kazdy, kdo si jen zaridil odber. To jsou
|
||||
vsechny dotazy s `refetchOn` na strance, i kdyz o ten typ udalosti nestaly.
|
||||
|
||||
Pri behu automatizace, ktera posila `automation.run` a `ticket.updated`, se tak
|
||||
cely dashboard prekresloval nekolikrat za sekundu - a s nim dvacet rozmazanych
|
||||
vrstev.
|
||||
|
||||
Kontext je proto rozdeleny: `useEventStream` da stav a odber, `useEventLog`
|
||||
seznam udalosti. Seznam si bere jen ten, kdo ho opravdu vypisuje, tedy toasty.
|
||||
|
||||
### Filtr sekci nefiltroval
|
||||
|
||||
Seznam ticketu sklada adresu dotazu v `useMemo`, ale v zavislostech chybely
|
||||
`groupId`, `typeId`, `tag` a `stage`. Adresa se tedy po prepnuti sekce
|
||||
neprepocitala a data se nenacetla znovu - filtr vypadal, ze nedela nic.
|
||||
|
||||
Driv to nevadilo: byly to filtry, ktere sly nastavit jen odkazem a po nacteni
|
||||
stranky se uz nemenily. Se zalozkou "Vsechny tickety" a jejim vyberem sekce se
|
||||
z toho stala chyba, ktera je videt.
|
||||
|
||||
Overeno: `groupId=grp_servicedesk` vrati jeden ticket, `groupId=none` zbyle dva.
|
||||
## 2026-09-07 - Podminka se muze ptat na vic veci naraz
|
||||
|
||||
Podminka byla **prave jedna otazka**. Slozitejsi vetveni se muselo skladat
|
||||
|
||||
Reference in New Issue
Block a user