fix: LOW priority — GPU hints, CSRF cleanup, redundant query removal, mobile perf

- Add will-change to .hero-glow-orb (filter, transform) and .team-card-glitter::before (background-position)
- Clear CSRF cookie on logout alongside auth cookie
- Add max array length (100) validation on team reorder endpoint
- Remove redundant isOpenDayClassBookedByPhone pre-check (DB UNIQUE constraint handles it)
- Extract Schedule grid layout calculation into useMemo
- Reduce HeroLogo sparkle animations on mobile (15 → 8 via hidden sm:block)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-19 14:28:35 +03:00
parent 5cd23473c8
commit 9e0aa5b5dc
6 changed files with 27 additions and 13 deletions

View File

@@ -96,10 +96,10 @@ export function HeroLogo({ className = "", size = 220 }: HeroLogoProps) {
d={FULL_PATH}
/>
{/* Glitter sparkles on heart surface */}
{/* Glitter sparkles on heart surface — odd-indexed hidden on mobile via CSS class */}
<g clipPath="url(#heart-clip)" filter="url(#sparkle-glow)">
{SPARKLES.map((s, i) => (
<circle key={`sparkle-${i}`} cx={s.x} cy={s.y} r="1.8" fill="#d4b87a">
<circle key={`sparkle-${i}`} cx={s.x} cy={s.y} r="1.8" fill="#d4b87a" className={i % 2 ? "hidden sm:block" : ""}>
<animate
attributeName="opacity"
values="0;0;0.9;1;0.9;0;0"