Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
dd13698
refactor: solid leaderboards (@fehmer)
fehmer Jan 31, 2026
49c92d3
using collections, not the best
fehmer Feb 1, 2026
5b8d530
fetch dynamic leaderboard from server configuration
fehmer Feb 2, 2026
9e5cbc4
replace db with query
fehmer Feb 2, 2026
dfb7fb3
fix friends not filtered
fehmer Feb 2, 2026
018aebc
hide columns depending on screen size, typing speed in lb
fehmer Feb 2, 2026
e1047f3
wip
fehmer Feb 3, 2026
9fec8bb
wip
fehmer Feb 3, 2026
feac67c
don't preload if not visible
fehmer Feb 3, 2026
77af738
wip
fehmer Feb 4, 2026
800bcfd
cleanup
fehmer Feb 4, 2026
82eafe4
wip
fehmer Feb 6, 2026
94d85db
refactor
fehmer Feb 6, 2026
e3517aa
move stuff around
fehmer Feb 6, 2026
2389d80
add rank query, scroll to user
fehmer Feb 6, 2026
d216579
loading indicator on rank
fehmer Feb 7, 2026
d147b93
add rank info
fehmer Feb 8, 2026
9353de8
simplify rank table
fehmer Feb 8, 2026
6ba3635
lb memory, not the bestg
fehmer Feb 8, 2026
2f29d7e
move server-configuration query
fehmer Feb 9, 2026
15d5b44
add url params
fehmer Feb 9, 2026
2faf95b
use serverConfigurationQuery, pass validModeRule to sidebar
fehmer Feb 10, 2026
b48175d
add minTyping, banned, optOut to UserRank
fehmer Feb 10, 2026
3fa0e22
add (skeleton) page back to the page file, simplifies url parameter h…
fehmer Feb 10, 2026
82228ff
xp header
fehmer Feb 10, 2026
471ed1a
fix missing rank when data query is not complete
fehmer Feb 10, 2026
b3a4f22
remove resource from AyncContent, add multi query
fehmer Feb 11, 2026
2c17328
xp lb combined columns
fehmer Feb 11, 2026
68d91df
cleanup
fehmer Feb 11, 2026
997a425
add gotoPage modal, fix format now working in legacy code
fehmer Feb 12, 2026
1bd9cbd
table styles
fehmer Feb 12, 2026
6ca7735
remove old page/css/html
fehmer Feb 12, 2026
58c73e4
Merge branch 'master' into feature/solid-leaderboards
fehmer Feb 14, 2026
12019b7
cleanup
fehmer Feb 14, 2026
489830f
add full user to table, highlight on select
fehmer Feb 14, 2026
dc9dfcb
cleanup
fehmer Feb 16, 2026
a0c62fc
copilot
fehmer Feb 16, 2026
a0d2f24
styles
fehmer Feb 20, 2026
edf4b06
Merge branch 'master' into feature/solid-leaderboards
fehmer Feb 20, 2026
94f1e74
rename type wpm to speed, inline getLbMemoryDifference
fehmer Feb 20, 2026
326cfa7
more rename wpm to speed
fehmer Feb 20, 2026
ef71d6b
fix styles
fehmer Feb 22, 2026
def445d
use username instead of uid for profile links
fehmer Feb 22, 2026
ed050dc
Merge branch 'master' into feature/solid-leaderboards
fehmer Feb 24, 2026
2517e77
fix lint issues
fehmer Feb 24, 2026
dc8dce1
remove return types from helper functions
fehmer Feb 24, 2026
fa61773
Merge branch 'master' into feature/solid-leaderboards
Miodec Feb 27, 2026
1fe27ab
Merge branch 'master' into feature/solid-leaderboards
fehmer Feb 28, 2026
976b774
adapt to new lint rules
fehmer Feb 28, 2026
dc6688b
padding
Miodec Feb 28, 2026
9ff7cd6
styles
Miodec Feb 28, 2026
482aa0f
add headerClass to meta
fehmer Feb 28, 2026
e813231
styles
Miodec Feb 28, 2026
8fbc5a6
restructure
Miodec Feb 28, 2026
6afc8cf
pointless div
Miodec Feb 28, 2026
6559b44
fix loading
Miodec Feb 28, 2026
84567eb
loading styles
Miodec Feb 28, 2026
2a728e2
color prop
Miodec Feb 28, 2026
d06529c
use new color prop
Miodec Feb 28, 2026
5d64359
remove
Miodec Feb 28, 2026
e0733cd
dont show friends if connections are disabled
Miodec Feb 28, 2026
33831ed
reorder
Miodec Feb 28, 2026
2884009
remove signals from page, remove skeletonPage from page
fehmer Feb 28, 2026
3cbc262
no data
Miodec Feb 28, 2026
d06df02
fix
fehmer Feb 28, 2026
ac1be55
DataTable: don't use child selectors
fehmer Mar 1, 2026
dfaf873
DataTable: render all columns, hide based on breakpoint
fehmer Mar 1, 2026
20d0207
fix shrinking sidebar
fehmer Mar 1, 2026
569ce37
das nicht gut ja
fehmer Mar 1, 2026
588c9a4
🚨 Tailwind does not generate CSS for dynamically constructed class na…
fehmer Mar 1, 2026
552706f
tests
fehmer Mar 1, 2026
ea92040
fix 2xl naming
fehmer Mar 1, 2026
6265891
fix: xp bar background
Miodec Mar 1, 2026
9c9cfd8
refactor: solid dev options modal (@miodec) (#7561)
Miodec Mar 2, 2026
e642ad2
style
Miodec Mar 2, 2026
0bf07e9
hide goToPage navigation if only one page
fehmer Mar 2, 2026
53a441e
move rank error message inside the rank box, don't use placeholderData
fehmer Mar 2, 2026
23c38bd
auto-navigate to last page, move stuff around to avoid cycle
fehmer Mar 2, 2026
788c618
Merge branch 'master' into feature/solid-leaderboards
fehmer Mar 3, 2026
16fcccf
cleanup
fehmer Mar 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 9 additions & 2 deletions frontend/__tests__/components/common/AsyncContent.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,13 @@ describe("AsyncContent", () => {
});

it("renders on resolve", async () => {
renderWithQuery({ result: "Test Data" });
const { container } = renderWithQuery({ result: "Test Data" });

await waitFor(() => {
expect(screen.getByTestId("content")).toHaveTextContent("Test Data");
});
const preloader = container.querySelector(".preloader");
expect(preloader).not.toBeInTheDocument();
});

it("renders default error message on fail", async () => {
Expand Down Expand Up @@ -205,14 +207,19 @@ describe("AsyncContent", () => {
});

it("renders on resolve", async () => {
renderWithQuery({ first: "First Data", second: "Second Data" });
const { container } = renderWithQuery({
first: "First Data",
second: "Second Data",
});

await waitFor(() => {
expect(screen.getByTestId("first")).toHaveTextContent("First Data");
});
await waitFor(() => {
expect(screen.getByTestId("second")).toHaveTextContent("Second Data");
});
const preloader = container.querySelector(".preloader");
expect(preloader).not.toBeInTheDocument();
});

it("renders default error message on fail", async () => {
Expand Down
15 changes: 11 additions & 4 deletions frontend/__tests__/components/ui/table/DataTable.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,14 @@ type Person = {

const columns = [
{
id: "name",
accessorKey: "name",
header: "Name",
cell: (info: any) => info.getValue(),
meta: { breakpoint: "xxs" },
meta: { maxBreakpoint: "sm" },
},
{
id: "age",
accessorKey: "age",
header: "Age",
cell: (info: any) => info.getValue(),
Expand Down Expand Up @@ -144,8 +146,13 @@ describe("DataTable", () => {
});

render(() => <DataTable id="breakpoints" columns={columns} data={data} />);

expect(screen.getByText("Name")).toBeInTheDocument();
expect(screen.queryByText("Age")).not.toBeInTheDocument();
const nameHeader = screen.getByRole("button", {
name: "Name",
}).parentElement;
const ageHeader = screen.getByRole("button", { name: "Age" }).parentElement;

expect(nameHeader).not.toHaveClass("hidden");
expect(nameHeader).toHaveClass("sm:hidden");
expect(ageHeader).toHaveClass("hidden sm:table-cell");
});
});
262 changes: 0 additions & 262 deletions frontend/src/html/pages/leaderboards.html

This file was deleted.

4 changes: 3 additions & 1 deletion frontend/src/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,9 @@
<load src="html/pages/404.html" />
<load src="html/pages/account-settings.html" />
<load src="html/pages/friends.html" />
<load src="html/pages/leaderboards.html" />
<div class="page pageLeaderboards hidden" id="pageLeaderboards">
<mount data-component="leaderboardpage"></mount>
</div>
</main>
<mount data-component="footer"></mount>
<div
Expand Down
2 changes: 1 addition & 1 deletion frontend/src/styles/index.scss
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
@import "buttons", "404", "ads", "account", "animations", "caret",
"commandline", "core", "fonts", "inputs", "keymap", "login", "monkey",
"nav", "notifications", "popups", "scroll", "settings", "account-settings",
"leaderboards", "test", "loading", "friends", "media-queries";
"test", "loading", "friends", "media-queries";

.chartCanvas {
width: 100% !important;
Expand Down
Loading