Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
22.20.0
22.22.3
8 changes: 8 additions & 0 deletions app/eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,14 @@ export default tseslint.config(
rules: {
...reactPlugin.configs.recommended.rules,
...reactHooks.configs.recommended.rules,
// eslint-plugin-react-hooks v7 added a batch of strict opinion rules
// (`set-state-in-effect`, `immutability`, `static-components`, `refs`)
// that flag patterns the codebase deliberately uses. Opting back in
// would need a broader refactor than this dependency bump.
"react-hooks/set-state-in-effect": "off",
"react-hooks/immutability": "off",
"react-hooks/static-components": "off",
"react-hooks/refs": "off",
"react/react-in-jsx-scope": "off",
"react/prop-types": "off",
"react-refresh/only-export-components": ["warn", { allowConstantExport: true }],
Expand Down
85 changes: 43 additions & 42 deletions app/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -45,86 +45,87 @@
"@fontsource/manrope": "^5.2.8",
"@fontsource/opendyslexic": "^5.2.5",
"@fontsource/space-grotesk": "^5.2.10",
"@mui/icons-material": "^9.1.1",
"@mui/material": "^9.1.1",
"@mui/icons-material": "^9.0.1",
"@mui/material": "^9.0.1",
"@nivo/bar": "^0.99.0",
"@nivo/core": "^0.99.0",
"@nivo/heatmap": "^0.99.0",
"@nivo/line": "^0.99.0",
"@nivo/pie": "^0.99.0",
"@recrest/shared": "*",
"@reduxjs/toolkit": "^2.12.0",
"@tauri-apps/api": "^2.11.0",
"@reduxjs/toolkit": "^2.2.8",
"@tauri-apps/api": "^2.1.1",
"@tauri-apps/plugin-autostart": "^2.5.1",
"@tauri-apps/plugin-deep-link": "^2.4.9",
"@tauri-apps/plugin-dialog": "^2.7.1",
"@tauri-apps/plugin-deep-link": "^2.4.8",
"@tauri-apps/plugin-dialog": "^2.7.0",
"@tauri-apps/plugin-log": "^2.8.0",
"@tauri-apps/plugin-notification": "^2.3.3",
"@tauri-apps/plugin-opener": "^2.5.4",
"@tauri-apps/plugin-opener": "^2.2.6",
"@tauri-apps/plugin-os": "^2.3.2",
"@tauri-apps/plugin-process": "^2.3.1",
"@tauri-apps/plugin-store": "^2.4.3",
"@tauri-apps/plugin-store": "^2.4.2",
"@tauri-apps/plugin-updater": "^2.10.1",
"@tiptap/extension-link": "^3.26.1",
"@tiptap/extension-placeholder": "^3.26.1",
"@tiptap/pm": "^3.26.1",
"@tiptap/react": "^3.26.1",
"@tiptap/starter-kit": "^3.26.1",
"@tiptap/extension-link": "^3.23.6",
"@tiptap/extension-placeholder": "^3.23.6",
"@tiptap/pm": "^3.23.6",
"@tiptap/react": "^3.23.6",
"@tiptap/starter-kit": "^3.23.6",
"@types/dompurify": "^3.2.0",
"@use-gesture/react": "^10.3.1",
"clsx": "^2.1.1",
"cmdk": "^1.1.1",
"device-type-detection": "^2.1.3",
"dompurify": "^3.4.10",
"i18next": "^23.16.0",
"dompurify": "^3.4.7",
"i18next": "^26.3.1",
"i18next-browser-languagedetector": "^8.0.0",
"lucide-react": "^0.451.0",
"lucide-react": "^1.18.0",
"motion": "^12.40.0",
"react": "^19.2.7",
"react": "^19.0.0",
"react-country-flag": "^3.1.0",
"react-dom": "^19.2.7",
"react-i18next": "^15.0.3",
"react-dom": "^19.0.0",
"react-i18next": "^17.0.8",
"react-markdown": "^10.1.0",
"react-redux": "^9.3.0",
"react-router-dom": "^6.27.0",
"react-redux": "^9.1.2",
"react-router-dom": "^7.17.0",
"rehype-raw": "^7.0.0",
"rehype-sanitize": "^6.0.0",
"remark-gfm": "^4.0.1",
"simple-icons": "^16.23.0",
"simple-icons": "^16.17.0",
"sonner": "^2.0.7",
"tiptap-markdown": "^0.9.0"
},
"devDependencies": {
"@resvg/resvg-js": "^2.6.2",
"@storybook/addon-docs": "^10.4.4",
"@storybook/react-vite": "^10.4.4",
"@tauri-apps/cli": "^2.11.2",
"@storybook/addon-docs": "^10.3.5",
"@storybook/react-vite": "^10.3.5",
"@tauri-apps/cli": "^2.1.0",
"@testing-library/dom": "^10.4.0",
"@testing-library/jest-dom": "^6.5.0",
"@testing-library/react": "^16.0.1",
"@testing-library/user-event": "^14.5.2",
"@types/node": "^25.9.3",
"@types/react": "^19.2.17",
"@eslint/js": "^9.39.4",
"@types/node": "^25.6.0",
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0",
"@typescript-eslint/eslint-plugin": "^8.61.0",
"@typescript-eslint/parser": "^8.61.0",
"@vitejs/plugin-react-swc": "^3.7.1",
"@vitest/coverage-v8": "^2.1.2",
"eslint": "^9.12.0",
"@typescript-eslint/eslint-plugin": "^8.8.0",
"@typescript-eslint/parser": "^8.8.0",
"@vitejs/plugin-react-swc": "^4.3.1",
"@vitest/coverage-v8": "^4.1.8",
"eslint": "^9.39.4",
"eslint-plugin-i18next": "^6.1.4",
"eslint-plugin-react": "^7.37.1",
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-react-refresh": "^0.5.3",
"eslint-plugin-react-hooks": "^7.1.1",
"eslint-plugin-react-refresh": "^0.5.2",
"jimp": "^1.6.0",
"jsdom": "^25.0.1",
"jsdom": "^29.1.1",
"madge": "^8.0.0",
"sass": "^1.101.0",
"storybook": "^10.4.4",
"typescript": "^5.6.3",
"typescript-eslint": "^8.61.0",
"vite": "^5.4.8",
"sass": "^1.83.0",
"storybook": "^10.3.5",
"typescript": "^6.0.3",
"typescript-eslint": "^8.8.0",
"vite": "^8.0.16",
"vite-plugin-svgr": "^5.2.0",
"vite-tsconfig-paths": "^5.0.1",
"vitest": "^2.1.2"
"vite-tsconfig-paths": "^6.1.1",
"vitest": "^4.1.8"
}
}
5 changes: 1 addition & 4 deletions app/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -20,10 +20,7 @@ const routerBasename = import.meta.env.BASE_URL.replace(/\/+$/, "") || undefined

export default function App() {
return (
<BrowserRouter
basename={routerBasename}
future={{ v7_startTransition: true, v7_relativeSplatPath: true }}
>
<BrowserRouter basename={routerBasename}>
<Routes>
<Route element={<AppLayout />}>
<Route path={AppRoute.ROOT} element={<Navigate to={AppRoute.DASHBOARD} replace />} />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ const meta = {
(Story) => (
<ReduxProvider store={store}>
<I18nextProvider i18n={i18n}>
<MemoryRouter future={{ v7_startTransition: true, v7_relativeSplatPath: true }}>
<MemoryRouter>
<Story />
</MemoryRouter>
</I18nextProvider>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ const meta = {
(Story) => (
<ReduxProvider store={store}>
<I18nextProvider i18n={i18n}>
<MemoryRouter future={{ v7_startTransition: true, v7_relativeSplatPath: true }}>
<MemoryRouter>
<Story />
</MemoryRouter>
</I18nextProvider>
Expand Down
5 changes: 3 additions & 2 deletions app/src/pages/app/Settings/components/AboutTab/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@ import { styled } from "@mui/material/styles";

import { type GitInfo, type PlatformInfo, TauriCommand } from "@recrest/shared";

import { Bug, FileText, Github as GithubIcon, Scale } from "lucide-react";
import { Bug, FileText, Scale } from "lucide-react";

import GeneralCard from "@/components/atoms/cards/GeneralCard";
import { invoke, isTauri, openExternal } from "@/lib/tauri";
import { formatBuildTime, gitDescription } from "@/lib/utils/about.utils";
import { MONO_STACK } from "@/lib/utils/appearance.utils";
import LinkItem from "@/pages/app/Settings/components/AboutTab/parts/LinkItem";
import { GithubGlyph } from "@/pages/app/Settings/components/AccountsTab/parts/ProviderRow/ProviderRow.styles";
import { SettingsSection } from "@/pages/app/Settings/components/SettingsPrimitives";

const GITHUB_URL = "https://github.com/SoftVentures/Recrest";
Expand Down Expand Up @@ -173,7 +174,7 @@ export function AboutSection() {
<SettingsSection title={t("settings.about.links_title")}>
<GeneralCard padding={0} flushHeight>
<LinkItem
icon={GithubIcon}
icon={GithubGlyph}
title={t("settings.about.link_github")}
url={GITHUB_URL}
onOpen={() => openUrl(GITHUB_URL)}
Expand Down
5 changes: 1 addition & 4 deletions app/src/test/utils.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -83,10 +83,7 @@ export function renderWithProviders(
<I18nextProvider i18n={i18n}>
<ThemeProvider theme={theme}>
<CssBaseline />
<MemoryRouter
initialEntries={[opts?.route ?? "/"]}
future={{ v7_startTransition: true, v7_relativeSplatPath: true }}
>
<MemoryRouter initialEntries={[opts?.route ?? "/"]}>
{ui}
</MemoryRouter>
</ThemeProvider>
Expand Down
8 changes: 8 additions & 0 deletions landingpage/eslint.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,14 @@ export default tseslint.config(
rules: {
...reactPlugin.configs.recommended.rules,
...reactHooks.configs.recommended.rules,
// eslint-plugin-react-hooks v7 added strict opinion rules
// (`set-state-in-effect`, `immutability`, `static-components`, `refs`)
// that flag intentional patterns. Disable here; revisit in dedicated
// cleanup PRs.
"react-hooks/set-state-in-effect": "off",
"react-hooks/immutability": "off",
"react-hooks/static-components": "off",
"react-hooks/refs": "off",
"react/react-in-jsx-scope": "off",
"react/prop-types": "off",
"react-refresh/only-export-components": ["warn", { allowConstantExport: true }],
Expand Down
37 changes: 19 additions & 18 deletions landingpage/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,31 +21,32 @@
"@fontsource-variable/jetbrains-mono": "^5.2.8",
"@recrest/shared": "*",
"device-type-detection": "^2.1.3",
"i18next": "^23.16.0",
"i18next": "^26.3.1",
"i18next-browser-languagedetector": "^8.0.0",
"react": "^19.2.7",
"react": "^19.0.0",
"react-country-flag": "^3.1.0",
"react-dom": "^19.2.7",
"react-i18next": "^15.0.3",
"simple-icons": "^16.23.0"
"react-dom": "^19.0.0",
"react-i18next": "^17.0.8",
"simple-icons": "^16.17.0"
},
"devDependencies": {
"@eslint/js": "^9.39.4",
"@testing-library/jest-dom": "^6.5.0",
"@testing-library/react": "^16.0.1",
"@types/react": "^19.2.17",
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0",
"@typescript-eslint/eslint-plugin": "^8.61.0",
"@typescript-eslint/parser": "^8.61.0",
"@vitejs/plugin-react-swc": "^3.7.1",
"eslint": "^9.12.0",
"@typescript-eslint/eslint-plugin": "^8.8.0",
"@typescript-eslint/parser": "^8.8.0",
"@vitejs/plugin-react-swc": "^4.3.1",
"eslint": "^9.39.4",
"eslint-plugin-react": "^7.37.1",
"eslint-plugin-react-hooks": "^5.0.0",
"eslint-plugin-react-refresh": "^0.5.3",
"jsdom": "^25.0.1",
"sass": "^1.101.0",
"typescript": "^5.6.3",
"typescript-eslint": "^8.61.0",
"vite": "^5.4.8",
"vitest": "^2.1.2"
"eslint-plugin-react-hooks": "^7.1.1",
"eslint-plugin-react-refresh": "^0.5.2",
"jsdom": "^29.1.1",
"sass": "^1.83.0",
"typescript": "^6.0.3",
"typescript-eslint": "^8.8.0",
"vite": "^8.0.16",
"vitest": "^4.1.8"
}
}
16 changes: 8 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,13 +43,13 @@
"prepare": "husky"
},
"devDependencies": {
"@commitlint/cli": "^19.5.0",
"@commitlint/config-conventional": "^19.5.0",
"@trivago/prettier-plugin-sort-imports": "^4.3.0",
"@commitlint/cli": "^21.0.2",
"@commitlint/config-conventional": "^21.0.2",
"@trivago/prettier-plugin-sort-imports": "^6.0.2",
"husky": "^9.1.6",
"lint-staged": "^15.2.10",
"prettier": "^3.8.4",
"typescript": "^5.6.3"
"lint-staged": "^17.0.7",
"prettier": "^3.3.3",
"typescript": "^6.0.3"
},
"repository": {
"type": "git",
Expand All @@ -72,12 +72,12 @@
]
},
"engines": {
"node": "22.20.0",
"node": "22.22.3",
"yarn": "1.22.22"
},
"packageManager": "yarn@1.22.22",
"volta": {
"node": "22.20.0",
"node": "22.22.3",
"yarn": "1.22.22"
}
}
17 changes: 9 additions & 8 deletions shared/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,16 +27,17 @@
"typecheck": "tsc --noEmit"
},
"devDependencies": {
"@types/node": "^25.9.3",
"@typescript-eslint/eslint-plugin": "^8.61.0",
"@typescript-eslint/parser": "^8.61.0",
"eslint": "^9.12.0",
"@eslint/js": "^9.39.4",
"@types/node": "^25.6.0",
"@typescript-eslint/eslint-plugin": "^8.59.0",
"@typescript-eslint/parser": "^8.59.0",
"eslint": "^9.39.4",
"rimraf": "^6.0.1",
"typescript": "^5.6.3",
"typescript-eslint": "^8.61.0",
"vitest": "^2.1.2"
"typescript": "^6.0.3",
"typescript-eslint": "^8.59.0",
"vitest": "^4.1.8"
},
"dependencies": {
"linguist-languages": "^9.4.0"
"linguist-languages": "^9.3.2"
}
}
25 changes: 13 additions & 12 deletions tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -22,21 +22,22 @@
"@recrest/shared": "*"
},
"devDependencies": {
"@axe-core/playwright": "^4.11.3",
"@playwright/test": "^1.60.0",
"@axe-core/playwright": "^4.10.0",
"@eslint/js": "^9.39.4",
"@playwright/test": "^1.48.0",
"@types/express": "^5.0.0",
"@types/node": "^25.9.3",
"@typescript-eslint/eslint-plugin": "^8.61.0",
"@typescript-eslint/parser": "^8.61.0",
"@wdio/cli": "^9.28.0",
"@wdio/local-runner": "^9.28.0",
"@wdio/mocha-framework": "^9.28.0",
"@wdio/spec-reporter": "^9.28.0",
"eslint": "^9.12.0",
"@types/node": "^25.6.0",
"@typescript-eslint/eslint-plugin": "^8.59.0",
"@typescript-eslint/parser": "^8.59.0",
"@wdio/cli": "^9.4.0",
"@wdio/local-runner": "^9.4.0",
"@wdio/mocha-framework": "^9.4.0",
"@wdio/spec-reporter": "^9.4.0",
"eslint": "^9.39.4",
"express": "^5.0.0",
"playwright": "^1.48.0",
"typescript": "^5.6.3",
"typescript-eslint": "^8.61.0",
"typescript": "^6.0.3",
"typescript-eslint": "^8.59.0",
"webdriverio": "^9.4.0"
}
}
1 change: 0 additions & 1 deletion tests/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
"moduleResolution": "bundler",
"lib": ["ES2022", "DOM"],
"types": ["node", "@wdio/globals/types", "expect-webdriverio", "mocha"],
"baseUrl": ".",
"paths": {
"@recrest/shared": ["../shared/src/index.ts"],
"@recrest/shared/*": ["../shared/src/*"]
Expand Down
Loading
Loading