Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
b9f8c15
refactor(profile): migrate edit profile modal to SolidJS
AzureNightlock Apr 14, 2026
bee62e2
chore: add stylelint linter for css/scss (@nadalaba) (#7718)
nadalaba Apr 28, 2026
f13e4cf
chore: fix typos
Miodec Apr 27, 2026
07a25c4
chore(stylelint): ignore coverage folder
Miodec Apr 28, 2026
ddc0d2e
impr(quotes): add Hindi quotes (@Dhruv1249) (#7786)
Dhruv1249 Apr 28, 2026
a0627a5
chore: rename functions (to make upcoming pr diff easier to parse)
Miodec Apr 28, 2026
9735f20
fix: add @types/node to packages devDependencies (@nadalaba) (#7789)
nadalaba Apr 28, 2026
605a32d
fix(test-ui): word jumping to 3rd line (@nadalaba) (#7790)
nadalaba Apr 28, 2026
0767da4
fix(language): remove exclamation marks in french_10k (@lacunepoetiqu…
lacunepoetique Apr 29, 2026
74ae09e
chore(deps): bump nodemailer from 8.0.4 to 8.0.5 (#7794)
dependabot[bot] Apr 29, 2026
0ab6c73
chore: use explicit !== undefined check instead of truthy check (@enn…
ennajari Apr 29, 2026
2cfe7ba
fix(tests): handle unknown .jsx extension for TanStack solid dependen…
ennajari Apr 29, 2026
9b4547d
fix: highlight search quote button when active (@byseif21) (#7807)
byseif21 Apr 29, 2026
bb7affe
fix(test-timer): slow timer notification reappearing after new test (…
J-Karthikeyan Apr 29, 2026
1f7eb06
chore: fix release dev script (@nadalaba) (#7791)
nadalaba Apr 30, 2026
bf2a4c3
impr(theme): display custom theme names in indicator (@Sharann-del) (…
Sharann-del Apr 30, 2026
17581aa
chore(deps-dev): bump @vitest/coverage-v8 from 4.0.15 to 4.1.5 (#7809)
dependabot[bot] Apr 30, 2026
5cb569e
chore(deps-dev): bump @eslint/json from 1.0.1 to 1.2.0 (#7810)
dependabot[bot] Apr 30, 2026
3962e6e
chore(deps-dev): bump @commitlint/cli from 17.7.1 to 20.5.2 (#7811)
dependabot[bot] Apr 30, 2026
515caf0
fix: added z-index to theme button when hovered (@Ma3ert) (#7814)
Ma3ert Apr 30, 2026
7666c6b
chore(deps): bump uuid from 10.0.0 to 14.0.0 (#7812)
dependabot[bot] Apr 30, 2026
35e1f8a
impr(languages): add Bemba language (@kopachef) (#7819)
kopachef Apr 30, 2026
3678495
docs: add oxford comma to support section (@akshattkashyap) (#7820)
akshattkashyap Apr 30, 2026
36c5103
refactor using ts/form
AzureNightlock Apr 30, 2026
3789970
refactor: remove conditional and animeconditional (@miodec) (#7898)
Miodec May 2, 2026
2fad9eb
refactor
AzureNightlock May 3, 2026
c984a1b
style: fix testconfig shifting on some widths
Miodec May 3, 2026
e698a6f
impr: add appendTo prop to SlimSelect for flexible content positioning
Miodec May 3, 2026
a1efc6d
refactor: improve async content (@miodec) (#7899)
Miodec May 3, 2026
94b22a7
impr: enhance ChartJs component with theme handling and data updates
Miodec May 3, 2026
064d699
refactor(profile): migrate edit profile modal to SolidJS
AzureNightlock May 3, 2026
cd6cfec
refactor(profile): migrate edit profile modal to SolidJS
AzureNightlock May 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
20 changes: 15 additions & 5 deletions .github/workflows/monkey-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
should-build-be: ${{ steps.export-changes.outputs.should-build-be }}
should-build-fe: ${{ steps.export-changes.outputs.should-build-fe }}
should-build-pkg: ${{ steps.export-changes.outputs.should-build-pkg }}
assets-json: ${{ steps.export-changes.outputs.assets-json }}
assets-or-styles: ${{ steps.export-changes.outputs.assets-or-styles }}

steps:
- name: Full checkout
Expand All @@ -41,8 +41,9 @@ jobs:
id: filter
with:
filters: |
json:
assets-or-styles:
- 'frontend/static/**/*'
- '**/*.{scss,css}'
be-src:
- 'backend/**/*.{ts,js,json,lua,css,html}'
- 'backend/package.json'
Expand All @@ -64,13 +65,13 @@ jobs:
echo "should-build-pkg=${{ steps.filter.outputs.pkg-src }}" >> $GITHUB_OUTPUT
echo "should-build-be=${{ steps.filter.outputs.be-src }}" >> $GITHUB_OUTPUT
echo "should-build-fe=${{ steps.filter.outputs.fe-src }}" >> $GITHUB_OUTPUT
echo "assets-json=${{ steps.filter.outputs.json }}" >> $GITHUB_OUTPUT
echo "assets-or-styles=${{ steps.filter.outputs.assets-or-styles }}" >> $GITHUB_OUTPUT

prime-cache:
name: prime-cache
runs-on: ubuntu-latest
needs: [pre-ci]
if: needs.pre-ci.outputs.should-build-be == 'true' || needs.pre-ci.outputs.should-build-fe == 'true' || needs.pre-ci.outputs.should-build-pkg == 'true' || needs.pre-ci.outputs.assets-json == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci')
if: needs.pre-ci.outputs.should-build-be == 'true' || needs.pre-ci.outputs.should-build-fe == 'true' || needs.pre-ci.outputs.should-build-pkg == 'true' || needs.pre-ci.outputs.assets-or-styles == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci')
steps:
- name: Checkout pnpm-lock
uses: actions/checkout@v4
Expand Down Expand Up @@ -216,7 +217,7 @@ jobs:
name: ci-assets
needs: [pre-ci, prime-cache]
runs-on: ubuntu-latest
if: needs.pre-ci.outputs.assets-json == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci')
if: needs.pre-ci.outputs.assets-or-styles == 'true' || contains(github.event.pull_request.labels.*.name, 'force-full-ci')
steps:
- uses: actions/checkout@v4
with:
Expand All @@ -228,6 +229,10 @@ jobs:
id: filter
with:
filters: |
styles:
- '**/*.{scss,css}'
json:
- 'frontend/static/**/*.json'
languages:
- 'frontend/static/languages/**'
quotes:
Expand Down Expand Up @@ -265,7 +270,12 @@ jobs:
- name: Install dependencies
run: pnpm install

- name: Lint styles
if: steps.filter.outputs.styles == 'true'
run: npm run lint-styles

- name: Lint JSON
if: steps.filter.outputs.json == 'true'
run: npm run lint-json-assets

- name: Validate language assets
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -132,4 +132,4 @@ frontend/static/webfonts-preview
.turbo
frontend/.env.sentry-build-plugin
.claude/worktrees
1024MiB
1024MiB
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,4 +69,4 @@ All of the [contributors](https://github.com/monkeytypegame/monkeytype/graphs/co

# Support

If you wish to support further development and feel extra awesome, you can [donate](https://ko-fi.com/monkeytype), [become a Patron](https://www.patreon.com/monkeytype) or [buy a t-shirt](https://www.monkeytype.store/).
If you wish to support further development and feel extra awesome, you can [donate](https://ko-fi.com/monkeytype), [become a Patron](https://www.patreon.com/monkeytype), or [buy a t-shirt](https://www.monkeytype.store/).
6 changes: 3 additions & 3 deletions backend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,15 +45,15 @@
"mjml": "4.15.0",
"mongodb": "6.3.0",
"mustache": "4.2.0",
"nodemailer": "8.0.4",
"nodemailer": "8.0.5",
"object-hash": "3.0.0",
"prom-client": "15.1.3",
"rate-limiter-flexible": "5.0.3",
"simple-git": "3.32.3",
"string-similarity": "4.0.4",
"swagger-stats": "0.99.7",
"ua-parser-js": "0.7.33",
"uuid": "10.0.0",
"uuid": "14.0.0",
"winston": "3.6.0",
"zod": "3.23.8"
},
Expand All @@ -77,7 +77,7 @@
"@types/swagger-stats": "0.95.11",
"@types/ua-parser-js": "0.7.36",
"@types/uuid": "10.0.0",
"@vitest/coverage-v8": "4.0.15",
"@vitest/coverage-v8": "4.1.5",
"concurrently": "8.2.2",
"openapi3-ts": "2.0.2",
"oxlint": "1.60.0",
Expand Down
10 changes: 5 additions & 5 deletions backend/private/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ body {
bottom: 3rem;
background-color: var(--sub-alt-color);
color: var(--text-color);
font-style: bold;
font-weight: bold;
border-radius: 3px;
padding: 1rem 2rem;
cursor: pointer;
Expand Down Expand Up @@ -189,10 +189,6 @@ input[type="checkbox"] {
}
}

.tooltip:hover .tooltip-text {
display: block;
}

.tooltip-text {
display: none;
color: var(--text-color);
Expand All @@ -202,3 +198,7 @@ input[type="checkbox"] {
padding: 10px;
border-radius: var(--roundness);
}

.tooltip:hover .tooltip-text {
display: block;
}
35 changes: 20 additions & 15 deletions frontend/__tests__/components/common/AsyncContent.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ describe("AsyncContent", () => {
query: {
result: string | Error;
},
options?: Omit<Props<unknown>, "query" | "queries" | "children">,
options?: Omit<Props<{ result: string }>, "queries" | "children">,
): {
container: HTMLElement;
} {
Expand All @@ -160,12 +160,18 @@ describe("AsyncContent", () => {
}));

return (
<AsyncContent query={myQuery} {...(options as Props<string>)}>
{(data: string | undefined) => (
<AsyncContent
queries={{ result: myQuery }}
{...(options as Props<{ result: string | undefined }>)}
>
{({ resultData }) => (
<>
static content
<Show when={data !== undefined} fallback={<div>no data</div>}>
<div data-testid="content">{data}</div>
<Show
when={resultData() !== undefined}
fallback={<div>no data</div>}
>
<div data-testid="content">{resultData()}</div>
</Show>
</>
)}
Expand Down Expand Up @@ -318,7 +324,10 @@ describe("AsyncContent", () => {
first: string | Error | undefined;
second: string | Error | undefined;
},
options?: Omit<Props<unknown>, "query" | "queries" | "children">,
options?: Omit<
Props<{ first: string; second: string }>,
"queries" | "children"
>,
): {
container: HTMLElement;
} {
Expand Down Expand Up @@ -347,24 +356,20 @@ describe("AsyncContent", () => {
}));

type Q = { first: string | undefined; second: string | undefined };

return (
<AsyncContent
queries={{ first: firstQuery, second: secondQuery }}
{...(options as Props<Q>)}
>
{(results: {
first: string | undefined;
second: string | undefined;
}) => (
{({ firstData, secondData }) => (
<>
<Show
when={
results.first !== undefined && results.second !== undefined
}
when={firstData() !== undefined && secondData() !== undefined}
fallback={<div>no data</div>}
>
<div data-testid="first">{results.first}</div>
<div data-testid="second">{results.second}</div>
<div data-testid="first">{firstData()}</div>
<div data-testid="second">{secondData()}</div>
</Show>
</>
)}
Expand Down
Loading
Loading