Skip to content

Commit b19b6a9

Browse files
authored
chore: Update frontend deps (#61)
React had a critical update so I did that, but also just updated everything else. There was one breaking change to an eslint plugin, but got that working. Also fixes the disallowed host/CSRF issues caused by nginx not forwarding host header.
1 parent b7bc569 commit b19b6a9

11 files changed

Lines changed: 203 additions & 188 deletions

File tree

frontend/bun.lock

Lines changed: 153 additions & 142 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/eslint.config.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ export default tseslint.config([
1313
extends: [
1414
js.configs.recommended,
1515
tseslint.configs.recommended,
16-
reactHooks.configs['recommended-latest'],
16+
reactHooks.configs.flat.recommended,
1717
reactRefresh.configs.vite,
1818
eslintPluginTailwindCSS.configs['flat/recommended'],
1919
],
@@ -29,5 +29,8 @@ export default tseslint.config([
2929
ecmaVersion: 2020,
3030
globals: globals.browser,
3131
},
32+
rules: {
33+
'tailwindcss/no-custom-classname': 'off',
34+
},
3235
},
3336
]);

frontend/package.json

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -14,45 +14,44 @@
1414
"preview": "vite preview"
1515
},
1616
"dependencies": {
17-
"@sentry/react": "^10.17.0",
17+
"@sentry/react": "^10.28.0",
1818
"@t3-oss/env-core": "^0.13.8",
19-
"@tanstack/react-query": "^5.89.0",
20-
"@tanstack/react-router": "^1.131.44",
21-
"@tanstack/zod-adapter": "^1.131.44",
19+
"@tanstack/react-query": "^5.90.12",
20+
"@tanstack/react-router": "^1.139.14",
21+
"@tanstack/zod-adapter": "^1.139.14",
2222
"class-variance-authority": "^0.7.1",
2323
"classnames": "^2.5.1",
24-
"lucide-react": "^0.552.0",
25-
"react": "^19.1.1",
26-
"react-dom": "^19.1.1",
27-
"tailwind-merge": "^3.3.1",
28-
"tailwindcss": "^4.1.13",
29-
"zod": "^4.1.9"
24+
"lucide-react": "^0.555.0",
25+
"react": "^19.2.1",
26+
"react-dom": "^19.2.1",
27+
"tailwind-merge": "^3.4.0",
28+
"tailwindcss": "^4.1.17",
29+
"zod": "^4.1.13"
3030
},
3131
"devDependencies": {
32-
"@eslint/js": "^9.35.0",
33-
"@happy-dom/global-registrator": "^20.0.0",
32+
"@eslint/js": "^9.39.1",
33+
"@happy-dom/global-registrator": "^20.0.11",
3434
"@ianvs/prettier-plugin-sort-imports": "^4.7.0",
35-
"@prettier/plugin-oxc": "^0.0.4",
36-
"@tailwindcss/vite": "^4.1.13",
37-
"@tanstack/react-router-devtools": "^1.131.44",
38-
"@tanstack/router-plugin": "^1.131.44",
35+
"@tailwindcss/vite": "^4.1.17",
36+
"@tanstack/react-router-devtools": "^1.139.14",
37+
"@tanstack/router-plugin": "^1.139.14",
3938
"@testing-library/dom": "^10.4.1",
40-
"@testing-library/jest-dom": "^6.8.0",
39+
"@testing-library/jest-dom": "^6.9.1",
4140
"@testing-library/react": "^16.3.0",
4241
"@testing-library/user-event": "^14.6.1",
43-
"@types/bun": "^1.2.22",
44-
"@types/react": "^19.1.13",
45-
"@types/react-dom": "^19.1.9",
46-
"@vitejs/plugin-react-swc": "^4.0.1",
47-
"eslint": "^9.35.0",
48-
"eslint-plugin-react-hooks": "^5.2.0",
49-
"eslint-plugin-react-refresh": "^0.4.20",
42+
"@types/bun": "^1.3.3",
43+
"@types/react": "^19.2.7",
44+
"@types/react-dom": "^19.2.3",
45+
"@vitejs/plugin-react-swc": "^4.2.2",
46+
"eslint": "^9.39.1",
47+
"eslint-plugin-react-hooks": "^7.0.1",
48+
"eslint-plugin-react-refresh": "^0.4.24",
5049
"eslint-plugin-tailwindcss": "^4.0.0-beta.0",
51-
"globals": "^16.4.0",
52-
"prettier": "^3.6.2",
53-
"typescript": "~5.8.3",
54-
"typescript-eslint": "^8.43.0",
55-
"vite": "^7.1.5"
50+
"globals": "^16.5.0",
51+
"prettier": "^3.7.4",
52+
"typescript": "~5.9.3",
53+
"typescript-eslint": "^8.48.1",
54+
"vite": "^7.2.6"
5655
},
5756
"trustedDependencies": [
5857
"@swc/core"

frontend/prettier.config.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
* @type {import("prettier").Config}
33
*/
44
const config = {
5-
plugins: ['@prettier/plugin-oxc', '@ianvs/prettier-plugin-sort-imports'],
5+
plugins: ['@ianvs/prettier-plugin-sort-imports'],
66
importOrder: [
77
// Node.js builtins.
88
'<BUILTIN_MODULES>',

frontend/src/api.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,9 @@ interface FetchArgs<ResponseSchemaT extends z.ZodType> {
3636
responseSchema: ResponseSchemaT;
3737
}
3838

39-
interface FetchArgsWithMethod<ResponseSchemaT extends z.ZodType>
40-
extends FetchArgs<ResponseSchemaT> {
39+
interface FetchArgsWithMethod<
40+
ResponseSchemaT extends z.ZodType,
41+
> extends FetchArgs<ResponseSchemaT> {
4142
method: string;
4243
}
4344

frontend/src/components/Card.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@ const card = cva([
1010
]);
1111

1212
interface CardProps
13-
extends React.HTMLAttributes<HTMLDivElement>,
14-
VariantProps<typeof card> {
13+
extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof card> {
1514
ref?: React.Ref<HTMLDivElement>;
1615
}
1716

@@ -35,8 +34,7 @@ const title = cva(['text-lg', 'font-semibold', 'mb-space-xl', 'text-content-head
3534
});
3635

3736
interface TitleProps
38-
extends React.HTMLAttributes<HTMLHeadingElement>,
39-
VariantProps<typeof title> {
37+
extends React.HTMLAttributes<HTMLHeadingElement>, VariantProps<typeof title> {
4038
ref?: React.Ref<HTMLHeadingElement>;
4139
}
4240

frontend/src/components/Pill.test.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ describe('Pill', () => {
3333

3434
it('accepts custom className', () => {
3535
render(
36-
// eslint-disable-next-line tailwindcss/no-custom-classname
3736
<Pill className="custom-class" data-testid="pill">
3837
Custom
3938
</Pill>

frontend/src/components/Pill.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@ const pill = cva(
4646
);
4747

4848
interface PillProps
49-
extends React.HTMLAttributes<HTMLDivElement>,
50-
VariantProps<typeof pill> {
49+
extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof pill> {
5150
ref?: React.Ref<HTMLDivElement>;
5251
}
5352

frontend/src/components/Tag.test.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ describe('Tag', () => {
2323

2424
it('accepts custom className', () => {
2525
render(
26-
// eslint-disable-next-line tailwindcss/no-custom-classname
2726
<Tag className="custom-class" data-testid="tag">
2827
Custom
2928
</Tag>

frontend/utils/matchers.d.ts

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,19 @@ import type {TestingLibraryMatchers} from '@testing-library/jest-dom/matchers';
22

33
declare module 'bun:test' {
44
// Extend Bun's Matchers interface to include jest-dom matchers
5-
interface Matchers<T>
6-
extends TestingLibraryMatchers<typeof expect.stringContaining, T> {
5+
interface Matchers<T> extends TestingLibraryMatchers<
6+
typeof expect.stringContaining,
7+
T
8+
> {
79
// Intentionally empty - this is interface augmentation, not declaration
810
[K: string]: never; // Satisfies ESLint rule while preserving functionality
911
}
1012

1113
// Extend Bun's AsymmetricMatchers interface to include jest-dom matchers
12-
interface AsymmetricMatchers
13-
extends TestingLibraryMatchers<typeof expect.stringContaining, unknown> {
14+
interface AsymmetricMatchers extends TestingLibraryMatchers<
15+
typeof expect.stringContaining,
16+
unknown
17+
> {
1418
// Intentionally empty - this is interface augmentation, not declaration
1519
[K: string]: never; // Satisfies ESLint rule while preserving functionality
1620
}

0 commit comments

Comments
 (0)