From 36c246cca847217c5ba2fa326f36d4c0e3e2b88d Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Fri, 31 Jan 2025 20:38:03 +0100 Subject: [PATCH 01/30] chore(issue-template): add missing homarr version 1.4.0 --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 85c703e88..0119a8be9 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -31,6 +31,7 @@ body: label: Version description: What version of Homarr are you running? options: + - 1.4.0 - 1.3.1 - 1.3.0 - 1.2.0 From 6ce7bc0ee2dcd5150d72fdbc2070c05ba836ebd5 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Fri, 31 Jan 2025 19:40:11 +0000 Subject: [PATCH 02/30] fix(deps): update turbo monorepo to ^2.4.0 (#2207) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- package.json | 4 +- pnpm-lock.yaml | 98 ++++++++++++++++++------------------- tooling/eslint/package.json | 2 +- 3 files changed, 52 insertions(+), 52 deletions(-) diff --git a/package.json b/package.json index b79d302d5..7e90ec4cb 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ "@semantic-release/github": "^11.0.1", "@semantic-release/npm": "^12.0.1", "@semantic-release/release-notes-generator": "^14.0.3", - "@turbo/gen": "^2.3.4", + "@turbo/gen": "^2.4.0", "@vitejs/plugin-react": "^4.3.4", "@vitest/coverage-v8": "^3.0.4", "@vitest/ui": "^3.0.4", @@ -48,7 +48,7 @@ "prettier": "^3.4.2", "semantic-release": "^24.2.1", "testcontainers": "^10.17.2", - "turbo": "^2.3.4", + "turbo": "^2.4.0", "typescript": "^5.7.3", "vite-tsconfig-paths": "^5.1.4", "vitest": "^3.0.4" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index d29e5782d..58a592a24 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -38,8 +38,8 @@ importers: specifier: ^14.0.3 version: 14.0.3(semantic-release@24.2.1(typescript@5.7.3)) '@turbo/gen': - specifier: ^2.3.4 - version: 2.3.4(@types/node@22.12.0)(typescript@5.7.3) + specifier: ^2.4.0 + version: 2.4.0(@types/node@22.12.0)(typescript@5.7.3) '@vitejs/plugin-react': specifier: ^4.3.4 version: 4.3.4(vite@5.4.5(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) @@ -68,8 +68,8 @@ importers: specifier: ^10.17.2 version: 10.17.2 turbo: - specifier: ^2.3.4 - version: 2.3.4 + specifier: ^2.4.0 + version: 2.4.0 typescript: specifier: ^5.7.3 version: 5.7.3 @@ -2026,8 +2026,8 @@ importers: specifier: ^10.0.1 version: 10.0.1(eslint@9.19.0) eslint-config-turbo: - specifier: ^2.3.4 - version: 2.3.4(eslint@9.19.0)(turbo@2.3.4) + specifier: ^2.4.0 + version: 2.4.0(eslint@9.19.0)(turbo@2.4.0) eslint-plugin-import: specifier: ^2.31.0 version: 2.31.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0) @@ -4380,12 +4380,12 @@ packages: '@tsconfig/svelte@1.0.13': resolution: {integrity: sha512-5lYJP45Xllo4yE/RUBccBT32eBlRDbqN8r1/MIvQbKxW3aFqaYPCNgm8D5V20X4ShHcwvYWNlKg3liDh1MlBoA==} - '@turbo/gen@2.3.4': - resolution: {integrity: sha512-HXBa2SW8LFFduVIFgHpz/M7U1670AJncQD3TC+Bt/xS3pyzp2KLebxq8EKNjbNZ8J86vhdqIg+AhXg5MfeMFZQ==} + '@turbo/gen@2.4.0': + resolution: {integrity: sha512-MR3uInO+5bozTEPyd+0QLepfGwrE14QOa3eohPb5Vg6pLdw0/G9ZfAodE+b7uiJev0zPPG2Md5jVZhWLEreptA==} hasBin: true - '@turbo/workspaces@2.3.4': - resolution: {integrity: sha512-ffoap9R2AT29ZT9jFwBiOWHcd65Aio2L42P9DseESDOdC6Eke9nxUYrvSe+4AVjMqO3OXYyftIo5dX8F3jDRuw==} + '@turbo/workspaces@2.4.0': + resolution: {integrity: sha512-WHKtnPoT9fVqS0oWG9P3JeQvNCloz2oZWEsEn2LbGyMSU89isCJ6dKlHxqjfGSNdm8+b1fwT5JuE1AW6uYp1TQ==} hasBin: true '@types/adm-zip@0.5.7': @@ -6000,8 +6000,8 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-config-turbo@2.3.4: - resolution: {integrity: sha512-MxPl+IKkR7mRGcHoiZAMHYl+RZnjqBsxTLf+IGnx8BrJQe9/CoLT7oBlUxXGvh9bsd5MTaqCxly5h8BE1v/7AA==} + eslint-config-turbo@2.4.0: + resolution: {integrity: sha512-AiRdy83iwyG4+iMSxXQGUbEClxkGxSlXYH8E2a+0972ao75OWnlDBiiuLMOzDpJubR+QVGC4zonn29AIFCSbFw==} peerDependencies: eslint: '>6.6.0' turbo: '>2.0.0' @@ -6058,8 +6058,8 @@ packages: peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - eslint-plugin-turbo@2.3.4: - resolution: {integrity: sha512-9ncoUJkQGkC28NmlQiS17oB9mrE8XaSulRZiB5pv9vmRbYjOfUwyGhY3EIcoBRdww81igxOzXmAmvNNd6GFBPg==} + eslint-plugin-turbo@2.4.0: + resolution: {integrity: sha512-qCgoRi/OTc1VMxab7+sdKiV1xlkY4qjK9sM+kS7+WogrB1DxLguJSQXvk4HA13SD5VmJsq+8FYOw5q4EUk6Ixg==} peerDependencies: eslint: '>6.6.0' turbo: '>2.0.0' @@ -9336,38 +9336,38 @@ packages: tunnel-agent@0.6.0: resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==} - turbo-darwin-64@2.3.4: - resolution: {integrity: sha512-uOi/cUIGQI7uakZygH+cZQ5D4w+aMLlVCN2KTGot+cmefatps2ZmRRufuHrEM0Rl63opdKD8/JIu+54s25qkfg==} + turbo-darwin-64@2.4.0: + resolution: {integrity: sha512-kVMScnPUa3R4n7woNmkR15kOY0aUwCLJcUyH5UC59ggKqr5HIHwweKYK8N1pwBQso0LQF4I9i93hIzfJguCcwQ==} cpu: [x64] os: [darwin] - turbo-darwin-arm64@2.3.4: - resolution: {integrity: sha512-IIM1Lq5R+EGMtM1YFGl4x8Xkr0MWb4HvyU8N4LNoQ1Be5aycrOE+VVfH+cDg/Q4csn+8bxCOxhRp5KmUflrVTQ==} + turbo-darwin-arm64@2.4.0: + resolution: {integrity: sha512-8JObIpfun1guA7UlFR5jC/SOVm49lRscxMxfg5jZ5ABft79rhFC+ygN9AwAhGKv6W2DUhIh2xENkSgu4EDmUyg==} cpu: [arm64] os: [darwin] - turbo-linux-64@2.3.4: - resolution: {integrity: sha512-1aD2EfR7NfjFXNH3mYU5gybLJEFi2IGOoKwoPLchAFRQ6OEJQj201/oNo9CDL75IIrQo64/NpEgVyZtoPlfhfA==} + turbo-linux-64@2.4.0: + resolution: {integrity: sha512-xWDGGcRlBuGV7HXWAVuTY6vsQi4aZxGMAnuiuNDg8Ij1aHGohOM0RUsWMXjxz4vuJmjk9+/D6NQqHH3AJEXezg==} cpu: [x64] os: [linux] - turbo-linux-arm64@2.3.4: - resolution: {integrity: sha512-MxTpdKwxCaA5IlybPxgGLu54fT2svdqTIxRd0TQmpRJIjM0s4kbM+7YiLk0mOh6dGqlWPUsxz/A0Mkn8Xr5o7Q==} + turbo-linux-arm64@2.4.0: + resolution: {integrity: sha512-c3En99xMguc/Pdtk/rZP53LnDdw0W6lgUc04he8r8F+UHYSNvgzHh0WGXXmCC6lGbBH72kPhhGx4bAwyvi7dug==} cpu: [arm64] os: [linux] - turbo-windows-64@2.3.4: - resolution: {integrity: sha512-yyCrWqcRGu1AOOlrYzRnizEtdkqi+qKP0MW9dbk9OsMDXaOI5jlWtTY/AtWMkLw/czVJ7yS9Ex1vi9DB6YsFvw==} + turbo-windows-64@2.4.0: + resolution: {integrity: sha512-/gOORuOlyA8JDPzyA16CD3wvyRcuBFePa1URAnFUof9hXQmKxK0VvSDO79cYZFsJSchCKNJpckUS0gYxGsWwoA==} cpu: [x64] os: [win32] - turbo-windows-arm64@2.3.4: - resolution: {integrity: sha512-PggC3qH+njPfn1PDVwKrQvvQby8X09ufbqZ2Ha4uSu+5TvPorHHkAbZVHKYj2Y+tvVzxRzi4Sv6NdHXBS9Be5w==} + turbo-windows-arm64@2.4.0: + resolution: {integrity: sha512-/DJIdTFijEMM5LSiEpSfarDOMOlYqJV+EzmppqWtHqDsOLF4hbbIBH9sJR6OOp5dURAu5eURBYdmvBRz9Lo6TA==} cpu: [arm64] os: [win32] - turbo@2.3.4: - resolution: {integrity: sha512-1kiLO5C0Okh5ay1DbHsxkPsw9Sjsbjzm6cF85CpWjR0BIyBFNDbKqtUyqGADRS1dbbZoQanJZVj4MS5kk8J42Q==} + turbo@2.4.0: + resolution: {integrity: sha512-ah/yQp2oMif1X0u7fBJ4MLMygnkbKnW5O8SG6pJvloPCpHfFoZctkSVQiJ3VnvNTq71V2JJIdwmOeu1i34OQyg==} hasBin: true tweetnacl@0.14.5: @@ -12306,9 +12306,9 @@ snapshots: '@tsconfig/svelte@1.0.13': {} - '@turbo/gen@2.3.4(@types/node@22.12.0)(typescript@5.7.3)': + '@turbo/gen@2.4.0(@types/node@22.12.0)(typescript@5.7.3)': dependencies: - '@turbo/workspaces': 2.3.4 + '@turbo/workspaces': 2.4.0 commander: 10.0.1 fs-extra: 10.1.0 inquirer: 8.2.6 @@ -12326,7 +12326,7 @@ snapshots: - supports-color - typescript - '@turbo/workspaces@2.3.4': + '@turbo/workspaces@2.4.0': dependencies: commander: 10.0.1 execa: 5.1.1 @@ -14281,11 +14281,11 @@ snapshots: dependencies: eslint: 9.19.0 - eslint-config-turbo@2.3.4(eslint@9.19.0)(turbo@2.3.4): + eslint-config-turbo@2.4.0(eslint@9.19.0)(turbo@2.4.0): dependencies: eslint: 9.19.0 - eslint-plugin-turbo: 2.3.4(eslint@9.19.0)(turbo@2.3.4) - turbo: 2.3.4 + eslint-plugin-turbo: 2.4.0(eslint@9.19.0)(turbo@2.4.0) + turbo: 2.4.0 eslint-import-resolver-node@0.3.9: dependencies: @@ -14379,11 +14379,11 @@ snapshots: string.prototype.matchall: 4.0.12 string.prototype.repeat: 1.0.0 - eslint-plugin-turbo@2.3.4(eslint@9.19.0)(turbo@2.3.4): + eslint-plugin-turbo@2.4.0(eslint@9.19.0)(turbo@2.4.0): dependencies: dotenv: 16.0.3 eslint: 9.19.0 - turbo: 2.3.4 + turbo: 2.4.0 eslint-scope@5.1.1: dependencies: @@ -17988,32 +17988,32 @@ snapshots: dependencies: safe-buffer: 5.2.1 - turbo-darwin-64@2.3.4: + turbo-darwin-64@2.4.0: optional: true - turbo-darwin-arm64@2.3.4: + turbo-darwin-arm64@2.4.0: optional: true - turbo-linux-64@2.3.4: + turbo-linux-64@2.4.0: optional: true - turbo-linux-arm64@2.3.4: + turbo-linux-arm64@2.4.0: optional: true - turbo-windows-64@2.3.4: + turbo-windows-64@2.4.0: optional: true - turbo-windows-arm64@2.3.4: + turbo-windows-arm64@2.4.0: optional: true - turbo@2.3.4: + turbo@2.4.0: optionalDependencies: - turbo-darwin-64: 2.3.4 - turbo-darwin-arm64: 2.3.4 - turbo-linux-64: 2.3.4 - turbo-linux-arm64: 2.3.4 - turbo-windows-64: 2.3.4 - turbo-windows-arm64: 2.3.4 + turbo-darwin-64: 2.4.0 + turbo-darwin-arm64: 2.4.0 + turbo-linux-64: 2.4.0 + turbo-linux-arm64: 2.4.0 + turbo-windows-64: 2.4.0 + turbo-windows-arm64: 2.4.0 tweetnacl@0.14.5: {} diff --git a/tooling/eslint/package.json b/tooling/eslint/package.json index 0ea2a6a35..f1c590db3 100644 --- a/tooling/eslint/package.json +++ b/tooling/eslint/package.json @@ -19,7 +19,7 @@ "dependencies": { "@next/eslint-plugin-next": "^15.1.6", "eslint-config-prettier": "^10.0.1", - "eslint-config-turbo": "^2.3.4", + "eslint-config-turbo": "^2.4.0", "eslint-plugin-import": "^2.31.0", "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react": "^7.37.4", From 6a9b65f219ad6032f7abd463f1cacc725ed7d056 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Fri, 31 Jan 2025 20:18:06 +0000 Subject: [PATCH 03/30] chore(deps): update dependency @types/node to ^22.13.0 (#2208) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- apps/tasks/package.json | 2 +- pnpm-lock.yaml | 108 +++++++++++++++++++-------------------- 3 files changed, 56 insertions(+), 56 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 39c1e3f6b..78baa83ed 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -87,7 +87,7 @@ "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", "@types/chroma-js": "3.1.1", - "@types/node": "^22.12.0", + "@types/node": "^22.13.0", "@types/prismjs": "^1.26.5", "@types/react": "19.0.8", "@types/react-dom": "19.0.3", diff --git a/apps/tasks/package.json b/apps/tasks/package.json index 8afbff81e..9e9b1a9de 100644 --- a/apps/tasks/package.json +++ b/apps/tasks/package.json @@ -44,7 +44,7 @@ "@homarr/eslint-config": "workspace:^0.2.0", "@homarr/prettier-config": "workspace:^0.1.0", "@homarr/tsconfig": "workspace:^0.1.0", - "@types/node": "^22.12.0", + "@types/node": "^22.13.0", "dotenv-cli": "^8.0.0", "eslint": "^9.19.0", "prettier": "^3.4.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 58a592a24..4514458f0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -39,10 +39,10 @@ importers: version: 14.0.3(semantic-release@24.2.1(typescript@5.7.3)) '@turbo/gen': specifier: ^2.4.0 - version: 2.4.0(@types/node@22.12.0)(typescript@5.7.3) + version: 2.4.0(@types/node@22.13.0)(typescript@5.7.3) '@vitejs/plugin-react': specifier: ^4.3.4 - version: 4.3.4(vite@5.4.5(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + version: 4.3.4(vite@5.4.5(@types/node@22.13.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/coverage-v8': specifier: ^3.0.4 version: 3.0.4(vitest@3.0.4) @@ -75,10 +75,10 @@ importers: version: 5.7.3 vite-tsconfig-paths: specifier: ^5.1.4 - version: 5.1.4(typescript@5.7.3)(vite@5.4.5(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + version: 5.1.4(typescript@5.7.3)(vite@5.4.5(@types/node@22.13.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) vitest: specifier: ^3.0.4 - version: 3.0.4(@types/node@22.12.0)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + version: 3.0.4(@types/node@22.13.0)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) apps/nextjs: dependencies: @@ -294,8 +294,8 @@ importers: specifier: 3.1.1 version: 3.1.1 '@types/node': - specifier: ^22.12.0 - version: 22.12.0 + specifier: ^22.13.0 + version: 22.13.0 '@types/prismjs': specifier: ^1.26.5 version: 1.26.5 @@ -394,8 +394,8 @@ importers: specifier: workspace:^0.1.0 version: link:../../tooling/typescript '@types/node': - specifier: ^22.12.0 - version: 22.12.0 + specifier: ^22.13.0 + version: 22.13.0 dotenv-cli: specifier: ^8.0.0 version: 8.0.0 @@ -4502,8 +4502,8 @@ packages: '@types/node@18.19.50': resolution: {integrity: sha512-xonK+NRrMBRtkL1hVCc3G+uXtjh1Al4opBLjqVmipe5ZAaBYWW6cNAiBVZ1BvmkBhep698rP3UM3aRAdSALuhg==} - '@types/node@22.12.0': - resolution: {integrity: sha512-Fll2FZ1riMjNmlmJOdAyY5pUbkftXslB5DgEzlIuNaiWhXd00FhWxVC/r4yV/4wBb9JfImTu+jiSvXTkJ7F/gA==} + '@types/node@22.13.0': + resolution: {integrity: sha512-ClIbNe36lawluuvq3+YYhnIN2CELi+6q8NpnM7PYp4hBn/TatfboPgVSm2rwKRfnV2M+Ty9GWDFI64KEe+kysA==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -12306,7 +12306,7 @@ snapshots: '@tsconfig/svelte@1.0.13': {} - '@turbo/gen@2.4.0(@types/node@22.12.0)(typescript@5.7.3)': + '@turbo/gen@2.4.0(@types/node@22.13.0)(typescript@5.7.3)': dependencies: '@turbo/workspaces': 2.4.0 commander: 10.0.1 @@ -12316,7 +12316,7 @@ snapshots: node-plop: 0.26.3 picocolors: 1.0.1 proxy-agent: 6.4.0 - ts-node: 10.9.2(@types/node@22.12.0)(typescript@5.7.3) + ts-node: 10.9.2(@types/node@22.13.0)(typescript@5.7.3) update-check: 1.5.4 validate-npm-package-name: 5.0.1 transitivePeerDependencies: @@ -12342,11 +12342,11 @@ snapshots: '@types/adm-zip@0.5.7': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/asn1@0.2.4': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/aws-lambda@8.10.146': {} @@ -12373,22 +12373,22 @@ snapshots: '@types/bcrypt@5.0.2': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/better-sqlite3@7.6.12': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/chroma-js@3.1.1': {} '@types/connect@3.4.38': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/cookie@0.4.1': {} @@ -12399,11 +12399,11 @@ snapshots: '@types/connect': 3.4.38 '@types/express': 4.17.21 '@types/keygrip': 1.0.6 - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/cors@2.8.17': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/css-font-loading-module@0.0.7': {} @@ -12411,13 +12411,13 @@ snapshots: '@types/docker-modem@3.0.6': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/ssh2': 1.15.1 '@types/dockerode@3.3.34': dependencies: '@types/docker-modem': 3.0.6 - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/ssh2': 1.15.1 '@types/estree@1.0.5': {} @@ -12426,7 +12426,7 @@ snapshots: '@types/express-serve-static-core@4.19.5': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/qs': 6.9.16 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 @@ -12441,7 +12441,7 @@ snapshots: '@types/glob@7.2.0': dependencies: '@types/minimatch': 5.1.2 - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/hast@2.3.10': dependencies: @@ -12479,7 +12479,7 @@ snapshots: dependencies: undici-types: 5.26.5 - '@types/node@22.12.0': + '@types/node@22.13.0': dependencies: undici-types: 6.20.0 @@ -12508,21 +12508,21 @@ snapshots: '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/send': 0.17.4 '@types/ssh2-streams@0.1.12': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/ssh2@0.5.52': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/ssh2-streams': 0.1.12 '@types/ssh2@1.15.1': @@ -12535,7 +12535,7 @@ snapshots: '@types/through@0.0.33': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/tinycolor2@1.4.6': {} @@ -12551,11 +12551,11 @@ snapshots: '@types/ws@8.5.14': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@types/xml2js@0.4.14': dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@typescript-eslint/eslint-plugin@8.22.0(@typescript-eslint/parser@8.22.0(eslint@9.19.0)(typescript@5.7.3))(eslint@9.19.0)(typescript@5.7.3)': dependencies: @@ -12664,14 +12664,14 @@ snapshots: global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-react@4.3.4(vite@5.4.5(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': + '@vitejs/plugin-react@4.3.4(vite@5.4.5(@types/node@22.13.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@babel/core': 7.26.0 '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.0) '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.0) '@types/babel__core': 7.20.5 react-refresh: 0.14.2 - vite: 5.4.5(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.13.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color @@ -12689,7 +12689,7 @@ snapshots: std-env: 3.8.0 test-exclude: 7.0.1 tinyrainbow: 2.0.0 - vitest: 3.0.4(@types/node@22.12.0)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vitest: 3.0.4(@types/node@22.13.0)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color @@ -12700,13 +12700,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 2.0.0 - '@vitest/mocker@3.0.4(vite@5.4.5(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': + '@vitest/mocker@3.0.4(vite@5.4.5(@types/node@22.13.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0))': dependencies: '@vitest/spy': 3.0.4 estree-walker: 3.0.3 magic-string: 0.30.17 optionalDependencies: - vite: 5.4.5(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.13.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) '@vitest/pretty-format@3.0.4': dependencies: @@ -12736,7 +12736,7 @@ snapshots: sirv: 3.0.0 tinyglobby: 0.2.10 tinyrainbow: 2.0.0 - vitest: 3.0.4(@types/node@22.12.0)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vitest: 3.0.4(@types/node@22.13.0)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) '@vitest/utils@3.0.4': dependencies: @@ -13935,7 +13935,7 @@ snapshots: dependencies: '@types/cookie': 0.4.1 '@types/cors': 2.8.17 - '@types/node': 22.12.0 + '@types/node': 22.13.0 accepts: 1.3.8 base64id: 2.0.0 cookie: 0.7.2 @@ -15449,7 +15449,7 @@ snapshots: jest-worker@27.5.1: dependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 merge-stream: 2.0.0 supports-color: 8.1.1 @@ -16644,7 +16644,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 22.12.0 + '@types/node': 22.13.0 long: 5.2.3 proxmox-api@1.1.1: @@ -17938,14 +17938,14 @@ snapshots: ts-mixer@6.0.4: {} - ts-node@10.9.2(@types/node@22.12.0)(typescript@5.7.3): + ts-node@10.9.2(@types/node@22.13.0)(typescript@5.7.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 22.12.0 + '@types/node': 22.13.0 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 @@ -18339,13 +18339,13 @@ snapshots: dependencies: global: 4.4.0 - vite-node@3.0.4(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vite-node@3.0.4(@types/node@22.13.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: cac: 6.7.14 debug: 4.4.0 es-module-lexer: 1.6.0 pathe: 2.0.2 - vite: 5.4.5(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.13.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - '@types/node' - less @@ -18357,33 +18357,33 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@5.4.5(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)): + vite-tsconfig-paths@5.1.4(typescript@5.7.3)(vite@5.4.5(@types/node@22.13.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)): dependencies: debug: 4.3.7 globrex: 0.1.2 tsconfck: 3.1.3(typescript@5.7.3) optionalDependencies: - vite: 5.4.5(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.13.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) transitivePeerDependencies: - supports-color - typescript - vite@5.4.5(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vite@5.4.5(@types/node@22.13.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: esbuild: 0.21.5 postcss: 8.4.47 rollup: 4.21.3 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 fsevents: 2.3.3 sass: 1.83.4 sugarss: 4.0.1(postcss@8.4.47) terser: 5.32.0 - vitest@3.0.4(@types/node@22.12.0)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): + vitest@3.0.4(@types/node@22.13.0)(@vitest/ui@3.0.4)(jsdom@26.0.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0): dependencies: '@vitest/expect': 3.0.4 - '@vitest/mocker': 3.0.4(vite@5.4.5(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) + '@vitest/mocker': 3.0.4(vite@5.4.5(@types/node@22.13.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0)) '@vitest/pretty-format': 3.0.4 '@vitest/runner': 3.0.4 '@vitest/snapshot': 3.0.4 @@ -18399,11 +18399,11 @@ snapshots: tinyexec: 0.3.2 tinypool: 1.0.2 tinyrainbow: 2.0.0 - vite: 5.4.5(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) - vite-node: 3.0.4(@types/node@22.12.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite: 5.4.5(@types/node@22.13.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) + vite-node: 3.0.4(@types/node@22.13.0)(sass@1.83.4)(sugarss@4.0.1(postcss@8.4.47))(terser@5.32.0) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.12.0 + '@types/node': 22.13.0 '@vitest/ui': 3.0.4(vitest@3.0.4) jsdom: 26.0.0 transitivePeerDependencies: From 5f36d8b12528fd2c8c3da783b266d614203ec46a Mon Sep 17 00:00:00 2001 From: Manuel <30572287+manuel-rw@users.noreply.github.com> Date: Fri, 31 Jan 2025 23:32:08 +0100 Subject: [PATCH 04/30] feat: improve consistency and design (#1867) Co-authored-by: Meier Lukas --- .../manage/_components/hero-banner.module.css | 2 +- .../src/app/[locale]/manage/apps/_form.tsx | 44 ++++++++++++--- .../manage/apps/edit/[id]/_app-edit-form.tsx | 20 +++---- .../manage/apps/new/_app-new-form.tsx | 53 +++++++++++-------- .../src/app/[locale]/manage/apps/page.tsx | 2 +- .../src/app/[locale]/manage/boards/page.tsx | 20 +++++-- .../new/_integration-new-dropdown.tsx | 1 + .../manage/integrations/page.module.css | 36 +++++++++++++ .../app/[locale]/manage/integrations/page.tsx | 13 +++-- .../nextjs/src/app/[locale]/manage/layout.tsx | 53 +++++++++++-------- .../src/app/[locale]/manage/medias/page.tsx | 2 +- apps/nextjs/src/app/[locale]/manage/page.tsx | 2 +- .../[locale]/manage/search-engines/_form.tsx | 2 +- .../[locale]/manage/search-engines/page.tsx | 2 +- .../components/icons/picker/icon-picker.tsx | 29 ++++++---- .../src/components/layout/header/search.tsx | 1 + .../src/components/layout/navigation.tsx | 18 ++++--- packages/translation/src/lang/en.json | 1 + packages/ui/index.ts | 3 +- .../ui/src/components/integration-avatar.tsx | 7 +-- packages/ui/src/components/search-input.tsx | 4 +- 21 files changed, 216 insertions(+), 99 deletions(-) create mode 100644 apps/nextjs/src/app/[locale]/manage/integrations/page.module.css diff --git a/apps/nextjs/src/app/[locale]/manage/_components/hero-banner.module.css b/apps/nextjs/src/app/[locale]/manage/_components/hero-banner.module.css index f3b4141aa..2b949c990 100644 --- a/apps/nextjs/src/app/[locale]/manage/_components/hero-banner.module.css +++ b/apps/nextjs/src/app/[locale]/manage/_components/hero-banner.module.css @@ -1,5 +1,5 @@ .bannerContainer { - border-radius: 8px; + border-radius: 16px; overflow: hidden; @mixin dark { background: linear-gradient( diff --git a/apps/nextjs/src/app/[locale]/manage/apps/_form.tsx b/apps/nextjs/src/app/[locale]/manage/apps/_form.tsx index 75d75e472..ab1121f02 100644 --- a/apps/nextjs/src/app/[locale]/manage/apps/_form.tsx +++ b/apps/nextjs/src/app/[locale]/manage/apps/_form.tsx @@ -1,11 +1,11 @@ "use client"; +import { useRef } from "react"; import Link from "next/link"; import { Button, Group, Stack, Textarea, TextInput } from "@mantine/core"; import type { z } from "zod"; import { useZodForm } from "@homarr/form"; -import type { TranslationFunction } from "@homarr/translation"; import { useI18n } from "@homarr/translation/client"; import { validation } from "@homarr/validation"; @@ -14,14 +14,21 @@ import { IconPicker } from "~/components/icons/picker/icon-picker"; type FormType = z.infer; interface AppFormProps { - submitButtonTranslation: (t: TranslationFunction) => string; + buttonLabels: { + submit: string; + submitAndCreateAnother?: string; + }; initialValues?: FormType; - handleSubmit: (values: FormType) => void; + handleSubmit: (values: FormType, redirect: boolean, afterSuccess?: () => void) => void; isPending: boolean; } -export const AppForm = (props: AppFormProps) => { - const { submitButtonTranslation, handleSubmit, initialValues, isPending } = props; +export const AppForm = ({ + buttonLabels, + handleSubmit: originalHandleSubmit, + initialValues, + isPending, +}: AppFormProps) => { const t = useI18n(); const form = useZodForm(validation.app.manage, { @@ -33,11 +40,23 @@ export const AppForm = (props: AppFormProps) => { }, }); + const shouldCreateAnother = useRef(false); + const handleSubmit = (values: FormType) => { + const redirect = !shouldCreateAnother.current; + const afterSuccess = shouldCreateAnother.current + ? () => { + form.reset(); + shouldCreateAnother.current = false; + } + : undefined; + originalHandleSubmit(values, redirect, afterSuccess); + }; + return (
- +