Commit Graph

6373 Commits

Author SHA1 Message Date
dependabot[bot]
4cb42e4cde
build(deps): bump the minor-and-patch group with 3 updates (#3028)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-02 15:55:35 +03:00
Name
59d70a71e9
badge: add badge for Solo Squid Showdown: Golden Edition (#3027) 2026-05-02 14:28:06 +03:00
Kalle
3f3c084910 Migrate addInitialSkill to Kysely 2026-05-02 14:24:21 +03:00
Kalle
8563a4956a Deprecate tournament team page DB call in favor of derived data 2026-05-02 14:06:45 +03:00
Kalle
1823c9881c Fix flaky SendouQ full group tier sort test 2026-05-02 13:53:18 +03:00
Kalle
80611ec4dc Add ITZ 50 badge 2026-05-02 13:47:36 +03:00
Kalle
23bfa19403 Allow TO to remove groups from LFG before registration ends
Closes #2948
2026-05-02 13:36:15 +03:00
Kalle
05aea47d32 Fix streamer not deduped when in tournament
Closes #3010
2026-05-02 13:18:02 +03:00
Kalle
10f3af3785 Fix user results page styling on mobile
Closes #3026
2026-05-02 12:47:27 +03:00
Kalle
bf0277479d User seasons page tournament result card style tweaks
Closes #3025
2026-05-02 12:41:48 +03:00
Kalle
0f2b03be3a Fix Swedish AM/PM markers leaking into time when YMD date format set 2026-05-02 12:29:28 +03:00
Kalle
d91d0568e1 Swap user page Date/Tournament column locations 2026-05-02 11:41:46 +03:00
Kalle
747a63edbc Show current route's chat in room list even when expired
Non-participants (e.g. tournament organizers) viewing a tournament
match chat could see the chat auto-open correctly, but clicking the
back arrow to the room list left the chat invisible — the only way
back was to leave the route and return.

The match chat appears in chatContext.rooms via the SUBSCRIBE
response, which (unlike the initial-payload path that participants
go through) does not check room expiry on the skalop side. So an
organizer viewing an old match ends up with an expired room in
their rooms list. ChatView already handles this gracefully with a
read-only banner, but RoomList was filtering on
expiresAt > Date.now() and dropping it.

Cleanup in useChatRouteSync removes the room from chatContext.rooms
on navigation, so exempting the current route's chatCode from the
expiry filter only affects the page that subscribed to it.
2026-05-02 11:36:56 +03:00
Kalle
5131fb7673 Fix widget edit crash when saving zero widgets
Some checks are pending
E2E Tests / e2e (push) Waiting to run
Tests and checks on push / run-checks-and-tests (push) Waiting to run
Updates translation progress / update-translation-progress-issue (push) Waiting to run
upsertWidgets ran an unconditional insertInto("UserWidget").values([])
when the submitted widgets array was empty. Kysely emits
`insert into "UserWidget" () values ()` for an empty values array,
which SQLite rejects with `near ")": syntax error`, rolling back the
preceding delete in the same transaction. Saving an empty widget list
was therefore impossible. Skip the insert when the array is empty.
2026-05-01 17:32:55 +03:00
Kalle
b011cd0940 Catch SendouQError in remaining sendouq actions
The /q (front page), /q/preparing, and /q/match/:id action handlers
were not wrapping their switch in try/catch the way /q/looking does.
When SQGroupRepository.createGroup, addMember, or createGroupFromPrevious
tripped the integrity check (member already in another non-INACTIVE
group, group too large, etc.) the SendouQError bubbled up unhandled
and React Router responded with 500 instead of letting the loaders
re-run with fresh state.

These errors are expected race conditions, e.g. a double-submit
where the second JOIN_QUEUE arrives after the first already created
the group. Returning null lets the client see the actual current
state instead of an error page, matching the behavior already in
q.looking.server.ts.
2026-05-01 17:15:38 +03:00
Kalle
b261600f0e Fix object damage calculator crash on invalid SPECIAL weapon ID
The SPECIAL branch of validatedAnyWeaponFromSearchParams only checked
nonDamagingSpecialWeaponIds membership, not whether the parsed id was
actually a valid SpecialWeaponId. A malformed URL like
?weapon=SPECIAL_9ap=0... made Number() return NaN, which fell through
to exampleMainWeaponIdWithSpecialWeaponId and hit assertUnreachable.
2026-05-01 16:04:35 +03:00
Kalle
8a773650fd Don't allow too old tournaments to contribute to already closed seasonal rankings 2026-05-01 15:51:40 +03:00
Kalle
609bb2de7a Count league divisions for the current season, not when it was started 2026-05-01 15:36:32 +03:00
Kalle
2d3bff6437 Fix tournament page crash on page load + add backend check against it
Error: Invariant failed: Empty placements not supported
I don't think it's possible for this to happen normally
but this fix provides more defense just in case
2026-05-01 15:30:01 +03:00
Kalle
b2de42b081 Fix builds page crash on lower case filters 2026-05-01 14:47:59 +03:00
dependabot[bot]
7d60fcc4d1
build(deps): bump the minor-and-patch group across 1 directory with 15 updates (#3022)
Some checks are pending
E2E Tests / e2e (push) Waiting to run
Tests and checks on push / run-checks-and-tests (push) Waiting to run
Updates translation progress / update-translation-progress-issue (push) Waiting to run
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-05-01 10:12:24 +03:00
Kalle
539da816bf
Make date time format apply everywhere (#3023) 2026-05-01 10:11:29 +03:00
Kalle
bfef81682e Filter out match-less sets in team set history
Some checks failed
E2E Tests / e2e (push) Has been cancelled
Tests and checks on push / run-checks-and-tests (push) Has been cancelled
Updates translation progress / update-translation-progress-issue (push) Has been cancelled
Regression introduced in b26f4ab2 (Migrate setHistoryByTeamId to
Kysely): the old raw SQL inner-joined through
TournamentMatchGameResultParticipant, which implicitly dropped
completed matches that had no game results (forfeits/walkovers).
The Kysely version fetches players via a jsonArrayFrom subquery,
so those matches leaked through and rendered as 0-0 on the team
page.
2026-04-28 21:20:56 +03:00
Kalle
a1491a189e Always use year: numeric if YMD date format preference 2026-04-28 21:15:03 +03:00
Kalle
06c2f637a3 Add "Date format" preference
Some checks are pending
E2E Tests / e2e (push) Waiting to run
Tests and checks on push / run-checks-and-tests (push) Waiting to run
Updates translation progress / update-translation-progress-issue (push) Waiting to run
2026-04-27 18:58:27 +03:00
Kalle
ec981d586e Fix team having many tournament level check-ins
Concrete bug it caused: wrong team count for tournament card on the front page
2026-04-27 18:05:49 +03:00
Kalle
1ef646a5c1 Add pagination to vods 2026-04-27 17:31:41 +03:00
Kalle
2e8ff8d034 Fix Global Search flashing "No results" when it's searching 2026-04-27 08:52:16 +03:00
Kalle
b26f4ab254 Migrate setHistoryByTeamId to Kysely 2026-04-27 08:43:30 +03:00
Kalle
53d7ca3813 Fix tag text color in light mode 2026-04-27 07:37:29 +03:00
Kalle
d91b8444b6 Clean up obsolete mode tags 2026-04-27 07:28:00 +03:00
Kalle
49e35fd4c2 Fix A/B round robin only tournament placements on front page
Some checks are pending
E2E Tests / e2e (push) Waiting to run
Tests and checks on push / run-checks-and-tests (push) Waiting to run
Updates translation progress / update-translation-progress-issue (push) Waiting to run
Closes #3009
2026-04-26 20:01:58 +03:00
Kalle
a8a42797e5 Exclude scripts from main typecheck
The dicts might or might not exist. The new command can be ran
when the dicts do exist.
2026-04-26 17:53:13 +03:00
Kalle
e1b9be7feb Update biome 2026-04-26 17:40:10 +03:00
Cafy
ea4ca19b0f
badge: add badge for Wings Up! (#3014) 2026-04-26 17:37:32 +03:00
BrushMommy
8580c82a4a
badge: add badge for Wellstring Propoganda: Top Cut (#3008) 2026-04-26 17:36:36 +03:00
Great-Hero-YELLOW
3e593f5e27
Rename sws26-recap-gg1-q2.md to na-league-2026-r1e3.md (#3015) 2026-04-26 17:36:04 +03:00
Great-Hero-YELLOW
e6d6fa89c6
Stronghold Article "SWS26 Recap GG1 Q2" (#3016) 2026-04-26 17:35:54 +03:00
Kalle
a848fc4f03 Improve art page mobile layout 2026-04-26 17:35:33 +03:00
Kalle
011b560c6b Tweak user page results table styles 2026-04-26 17:23:58 +03:00
Kalle
da481435a6 Remove ts-nocheck from utils.ts 2026-04-26 16:50:37 +03:00
Kalle
85d4a78ab2 Remove ts-nocheck from sync-weapon-params.ts 2026-04-26 16:49:09 +03:00
Kalle
51d3b8df2b Fix ts-nocheck in replace-weapon-names.ts 2026-04-26 16:40:20 +03:00
Kalle
b0acdae69c Fix ts-nocheck in create-object-dmg-json.ts 2026-04-26 16:33:29 +03:00
Kalle
2f9be8f96f Fix ts-nocheck in create-misc-json.ts 2026-04-26 16:22:47 +03:00
Kalle
f8926e1a8d Fix ts-nocheck in create-gear-json.ts 2026-04-26 16:16:03 +03:00
Kalle
5a54813a91 Fix ts-nocheck in create-analyzer-json.ts 2026-04-26 16:06:40 +03:00
Kalle
f9a594bf0c Fix admin cancels treated as score reports
This caused cancels that cause points lost/gained when it was by admin
2026-04-26 16:00:34 +03:00
Kalle
c8b61f163d Fix ts-nocheck TODO in crud.server.ts 2026-04-26 15:26:15 +03:00
Kalle
dc0bbaa271 Fix TODO about BracketsManager types mismatch 2026-04-26 15:02:56 +03:00