From 31c26941857b4eac8e69ccb68bc4c00cd1073806 Mon Sep 17 00:00:00 2001 From: Manuel <30572287+manuel-rw@users.noreply.github.com> Date: Sat, 18 May 2024 13:54:43 +0200 Subject: [PATCH 01/13] feat: language selector (#484) * feat: language selector * refactor: move user general page * feat: language selector * refactor: move user general page * feat: add language combobox in user general --- apps/nextjs/package.json | 1 + .../_components}/_delete-user-button.tsx | 0 .../_components}/_profile-avatar-form.tsx | 0 .../_components}/_profile-form.tsx | 0 .../_components/_profile-language-change.tsx | 12 +++ .../users/[userId]/{ => general}/page.tsx | 11 ++- .../[locale]/manage/users/[userId]/layout.tsx | 2 +- .../_change-password-form.tsx | 0 .../manage/users/[userId]/security/page.tsx | 2 +- .../users/_components/user-list.component.tsx | 2 +- .../language/language-combobox.module.css | 3 + .../components/language/language-combobox.tsx | 94 +++++++++++++++++++ .../src/components/user-avatar-menu.tsx | 45 +++++---- packages/translation/src/client.ts | 15 +-- packages/translation/src/index.ts | 1 + packages/translation/src/locale-attributes.ts | 21 +++++ pnpm-lock.yaml | 8 ++ 17 files changed, 188 insertions(+), 29 deletions(-) rename apps/nextjs/src/app/[locale]/manage/users/[userId]/{ => general/_components}/_delete-user-button.tsx (100%) rename apps/nextjs/src/app/[locale]/manage/users/[userId]/{ => general/_components}/_profile-avatar-form.tsx (100%) rename apps/nextjs/src/app/[locale]/manage/users/[userId]/{ => general/_components}/_profile-form.tsx (100%) create mode 100644 apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-language-change.tsx rename apps/nextjs/src/app/[locale]/manage/users/[userId]/{ => general}/page.tsx (83%) rename apps/nextjs/src/app/[locale]/manage/users/[userId]/security/{ => _components}/_change-password-form.tsx (100%) create mode 100644 apps/nextjs/src/components/language/language-combobox.module.css create mode 100644 apps/nextjs/src/components/language/language-combobox.tsx create mode 100644 packages/translation/src/locale-attributes.ts diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 0515c0ca7..c7b3e3cf4 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -47,6 +47,7 @@ "chroma-js": "^2.4.2", "dayjs": "^1.11.11", "dotenv": "^16.4.5", + "flag-icons": "^7.2.1", "glob": "^10.3.15", "jotai": "^2.8.0", "next": "^14.2.3", diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/_delete-user-button.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_delete-user-button.tsx similarity index 100% rename from apps/nextjs/src/app/[locale]/manage/users/[userId]/_delete-user-button.tsx rename to apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_delete-user-button.tsx diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/_profile-avatar-form.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-avatar-form.tsx similarity index 100% rename from apps/nextjs/src/app/[locale]/manage/users/[userId]/_profile-avatar-form.tsx rename to apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-avatar-form.tsx diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/_profile-form.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-form.tsx similarity index 100% rename from apps/nextjs/src/app/[locale]/manage/users/[userId]/_profile-form.tsx rename to apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-form.tsx diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-language-change.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-language-change.tsx new file mode 100644 index 000000000..e83b8b170 --- /dev/null +++ b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/_components/_profile-language-change.tsx @@ -0,0 +1,12 @@ +import { Stack, Title } from "@mantine/core"; + +import { LanguageCombobox } from "~/components/language/language-combobox"; + +export const ProfileLanguageChange = () => { + return ( + + Language & Region + + + ); +}; diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/page.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/page.tsx similarity index 83% rename from apps/nextjs/src/app/[locale]/manage/users/[userId]/page.tsx rename to apps/nextjs/src/app/[locale]/manage/users/[userId]/general/page.tsx index 9a5c5aade..cb6bdcd6f 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/[userId]/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/[userId]/general/page.tsx @@ -10,10 +10,11 @@ import { DangerZoneRoot, } from "~/components/manage/danger-zone"; import { catchTrpcNotFound } from "~/errors/trpc-not-found"; -import { DeleteUserButton } from "./_delete-user-button"; -import { UserProfileAvatarForm } from "./_profile-avatar-form"; -import { UserProfileForm } from "./_profile-form"; -import { canAccessUserEditPage } from "./access"; +import { canAccessUserEditPage } from "../access"; +import { DeleteUserButton } from "./_components/_delete-user-button"; +import { UserProfileAvatarForm } from "./_components/_profile-avatar-form"; +import { UserProfileForm } from "./_components/_profile-form"; +import { ProfileLanguageChange } from "./_components/_profile-language-change"; interface Props { params: { @@ -67,6 +68,8 @@ export default async function EditUserPage({ params }: Props) { + + } /> diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/security/_change-password-form.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/security/_components/_change-password-form.tsx similarity index 100% rename from apps/nextjs/src/app/[locale]/manage/users/[userId]/security/_change-password-form.tsx rename to apps/nextjs/src/app/[locale]/manage/users/[userId]/security/_components/_change-password-form.tsx diff --git a/apps/nextjs/src/app/[locale]/manage/users/[userId]/security/page.tsx b/apps/nextjs/src/app/[locale]/manage/users/[userId]/security/page.tsx index 0ce00f304..f111714a8 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/[userId]/security/page.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/[userId]/security/page.tsx @@ -7,7 +7,7 @@ import { getScopedI18n } from "@homarr/translation/server"; import { catchTrpcNotFound } from "~/errors/trpc-not-found"; import { canAccessUserEditPage } from "../access"; -import { ChangePasswordForm } from "./_change-password-form"; +import { ChangePasswordForm } from "./_components/_change-password-form"; interface Props { params: { diff --git a/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.component.tsx b/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.component.tsx index 4bda7a355..299c669f1 100644 --- a/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.component.tsx +++ b/apps/nextjs/src/app/[locale]/manage/users/_components/user-list.component.tsx @@ -33,7 +33,7 @@ export const UserListComponent = ({ header: t("user.field.username.label"), grow: 100, Cell: ({ renderedCellValue, row }) => ( - + {renderedCellValue} diff --git a/apps/nextjs/src/components/language/language-combobox.module.css b/apps/nextjs/src/components/language/language-combobox.module.css new file mode 100644 index 000000000..fe98524ad --- /dev/null +++ b/apps/nextjs/src/components/language/language-combobox.module.css @@ -0,0 +1,3 @@ +.flagIcon { + border-radius: 4px; +} diff --git a/apps/nextjs/src/components/language/language-combobox.tsx b/apps/nextjs/src/components/language/language-combobox.tsx new file mode 100644 index 000000000..0b7fbb3fc --- /dev/null +++ b/apps/nextjs/src/components/language/language-combobox.tsx @@ -0,0 +1,94 @@ +"use client"; + +import React from "react"; +import { Combobox, Group, InputBase, Text, useCombobox } from "@mantine/core"; +import { IconCheck } from "@tabler/icons-react"; + +import type { SupportedLanguage } from "@homarr/translation"; +import { localeAttributes, supportedLanguages } from "@homarr/translation"; +import { useChangeLocale, useCurrentLocale } from "@homarr/translation/client"; + +import classes from "./language-combobox.module.css"; + +export const LanguageCombobox = () => { + const combobox = useCombobox({ + onDropdownClose: () => combobox.resetSelectedOption(), + }); + const currentLocale = useCurrentLocale(); + const changeLocale = useChangeLocale(); + + const handleOnOptionSubmit = React.useCallback( + (value: string) => { + if (!value) { + return; + } + changeLocale(value as SupportedLanguage); + combobox.closeDropdown(); + }, + [changeLocale, combobox], + ); + + const handleOnClick = React.useCallback(() => { + combobox.toggleDropdown(); + }, [combobox]); + + return ( + + + } + rightSectionPointerEvents="none" + onClick={handleOnClick} + variant="filled" + > + + + + + + {supportedLanguages.map((languageKey) => ( + + + + ))} + + + + ); +}; + +const OptionItem = ({ + currentLocale, + localeKey, + showCheck, +}: { + currentLocale: SupportedLanguage; + localeKey: SupportedLanguage; + showCheck?: boolean; +}) => { + return ( + + + + + {localeAttributes[localeKey].name} + + ({localeAttributes[localeKey].translatedName}) + + + + {showCheck && localeKey === currentLocale && ( + + )} + + ); +}; diff --git a/apps/nextjs/src/components/user-avatar-menu.tsx b/apps/nextjs/src/components/user-avatar-menu.tsx index 2ffa79c4e..04a6b1480 100644 --- a/apps/nextjs/src/components/user-avatar-menu.tsx +++ b/apps/nextjs/src/components/user-avatar-menu.tsx @@ -27,6 +27,10 @@ import { signOut, useSession } from "@homarr/auth/client"; import { createModal, useModalAction } from "@homarr/modals"; import { useScopedI18n } from "@homarr/translation/client"; +import "flag-icons/css/flag-icons.min.css"; + +import { LanguageCombobox } from "./language/language-combobox"; + interface UserAvatarMenuProps { children: ReactNode; } @@ -57,7 +61,7 @@ export const UserAvatarMenu = ({ children }: UserAvatarMenuProps) => { }, [openModal, router]); return ( - + { > {t("navigateDefaultBoard")} - {Boolean(session.data) && ( - } - > - {t("preferences")} - - )} - } - > - {t("management")} + + + + + {Boolean(session.data) && ( + <> + } + > + {t("preferences")} + + + } + > + {t("management")} + + + )} + {session.status === "authenticated" ? ( = { + de: { + name: "Deutsch", + translatedName: "German", + flagIcon: "de", + }, + en: { + name: "English", + translatedName: "English", + flagIcon: "us", + }, +}; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 6db4e1fbe..8559cd4fa 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -159,6 +159,9 @@ importers: dotenv: specifier: ^16.4.5 version: 16.4.5 + flag-icons: + specifier: ^7.2.1 + version: 7.2.1 glob: specifier: ^10.3.15 version: 10.3.15 @@ -3423,6 +3426,9 @@ packages: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} + flag-icons@7.2.1: + resolution: {integrity: sha512-EaU4XZmFt1BOilz9nMmJKjma5pOaNjzL7somOhadrrilollh4xj6aaXI2M1sd00VUfVWN0E25Q6xaW3SNt0k/Q==} + flat-cache@3.2.0: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} @@ -8283,6 +8289,8 @@ snapshots: locate-path: 6.0.0 path-exists: 4.0.0 + flag-icons@7.2.1: {} + flat-cache@3.2.0: dependencies: flatted: 3.2.9 From e05deef6e28c7bbddda154d3d23f5325e85f3571 Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Sat, 18 May 2024 15:28:05 +0200 Subject: [PATCH 02/13] feat: add redis cache channel --- packages/redis/src/lib/channel.ts | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/packages/redis/src/lib/channel.ts b/packages/redis/src/lib/channel.ts index a80a8fb19..bb41f10cc 100644 --- a/packages/redis/src/lib/channel.ts +++ b/packages/redis/src/lib/channel.ts @@ -53,6 +53,34 @@ export const createSubPubChannel = (name: string) => { }; }; +const cacheClient = createRedisConnection(); + +/** + * Creates a new cache channel. + * @param name name of the channel + * @returns cache channel object + */ +export const createCacheChannel = (name: string) => { + const cacheChannelName = `cache:${name}`; + return { + /** + * Get the data from the cache channel. + * @returns data or undefined if not found + */ + getAsync: async () => { + const data = await cacheClient.get(cacheChannelName); + return data ? superjson.parse(data) : undefined; + }, + /** + * Set the data in the cache channel. + * @param data data to be stored in the cache channel + */ + setAsync: async (data: TData) => { + await cacheClient.set(cacheChannelName, superjson.stringify(data)); + }, + }; +}; + const queueClient = createRedisConnection(); type WithId = TItem & { _id: string }; From 7664b00be00dd134c130bbb6ffb438155d333553 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 18 May 2024 15:30:22 +0200 Subject: [PATCH 03/13] fix(deps): update dependency sass to ^1.77.2 (#506) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 2 +- pnpm-lock.yaml | 72 ++++++++++++++++++++-------------------- 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index c7b3e3cf4..1db0f5b5d 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -54,7 +54,7 @@ "postcss-preset-mantine": "^1.15.0", "react": "18.3.1", "react-dom": "18.3.1", - "sass": "^1.77.1", + "sass": "^1.77.2", "superjson": "2.2.1", "use-deep-compare-effect": "^1.8.1" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8559cd4fa..1d07b5125 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -29,10 +29,10 @@ importers: version: 1.13.3(@types/node@20.12.12)(typescript@5.4.5) '@vitejs/plugin-react': specifier: ^4.2.1 - version: 4.2.1(vite@5.2.6(@types/node@20.12.12)(sass@1.77.1)(sugarss@4.0.1)) + version: 4.2.1(vite@5.2.6(@types/node@20.12.12)(sass@1.77.2)(sugarss@4.0.1)) '@vitest/coverage-v8': specifier: ^1.6.0 - version: 1.6.0(vitest@1.6.0(@types/node@20.12.12)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.1)(sugarss@4.0.1)) + version: 1.6.0(vitest@1.6.0(@types/node@20.12.12)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.2)(sugarss@4.0.1)) '@vitest/ui': specifier: ^1.6.0 version: 1.6.0(vitest@1.6.0) @@ -53,10 +53,10 @@ importers: version: 5.4.5 vite-tsconfig-paths: specifier: ^4.3.2 - version: 4.3.2(typescript@5.4.5)(vite@5.2.6(@types/node@20.12.12)(sass@1.77.1)(sugarss@4.0.1)) + version: 4.3.2(typescript@5.4.5)(vite@5.2.6(@types/node@20.12.12)(sass@1.77.2)(sugarss@4.0.1)) vitest: specifier: ^1.6.0 - version: 1.6.0(@types/node@20.12.12)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.1)(sugarss@4.0.1) + version: 1.6.0(@types/node@20.12.12)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.2)(sugarss@4.0.1) apps/nextjs: dependencies: @@ -128,13 +128,13 @@ importers: version: 5.36.2(@tanstack/react-query@5.36.2(react@18.3.1))(react@18.3.1) '@tanstack/react-query-next-experimental': specifier: 5.36.2 - version: 5.36.2(@tanstack/react-query@5.36.2(react@18.3.1))(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.1))(react@18.3.1) + version: 5.36.2(@tanstack/react-query@5.36.2(react@18.3.1))(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2))(react@18.3.1) '@trpc/client': specifier: 11.0.0-rc.373 version: 11.0.0-rc.373(@trpc/server@11.0.0-rc.373) '@trpc/next': specifier: next - version: 11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/react-query@11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.373)(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/react-query@11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.373)(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@trpc/react-query': specifier: next version: 11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -170,7 +170,7 @@ importers: version: 2.8.0(@types/react@18.3.2)(react@18.3.1) next: specifier: ^14.2.3 - version: 14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.1) + version: 14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2) postcss-preset-mantine: specifier: ^1.15.0 version: 1.15.0(postcss@8.4.38) @@ -181,8 +181,8 @@ importers: specifier: 18.3.1 version: 18.3.1(react@18.3.1) sass: - specifier: ^1.77.1 - version: 1.77.1 + specifier: ^1.77.2 + version: 1.77.2 superjson: specifier: 2.2.1 version: 2.2.1 @@ -420,10 +420,10 @@ importers: version: 0.9.1 next: specifier: ^14.2.3 - version: 14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.1) + version: 14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2) next-auth: specifier: 5.0.0-beta.18 - version: 5.0.0-beta.18(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.1))(react@18.3.1) + version: 5.0.0-beta.18(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2))(react@18.3.1) react: specifier: 18.3.1 version: 18.3.1 @@ -4894,8 +4894,8 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.77.1: - resolution: {integrity: sha512-OMEyfirt9XEfyvocduUIOlUSkWOXS/LAt6oblR/ISXCTukyavjex+zQNm51pPCOiFKY1QpWvEH1EeCkgyV3I6w==} + sass@1.77.2: + resolution: {integrity: sha512-eb4GZt1C3avsX3heBNlrc7I09nyT00IUuo4eFhAbeXWU2fvA7oXI53SxODVAA+zgZCk9aunAZgO+losjR3fAwA==} engines: {node: '>=14.0.0'} hasBin: true @@ -6525,10 +6525,10 @@ snapshots: '@tanstack/react-query': 5.36.2(react@18.3.1) react: 18.3.1 - '@tanstack/react-query-next-experimental@5.36.2(@tanstack/react-query@5.36.2(react@18.3.1))(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.1))(react@18.3.1)': + '@tanstack/react-query-next-experimental@5.36.2(@tanstack/react-query@5.36.2(react@18.3.1))(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2))(react@18.3.1)': dependencies: '@tanstack/react-query': 5.36.2(react@18.3.1) - next: 14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.1) + next: 14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2) react: 18.3.1 '@tanstack/react-query@5.36.2(react@18.3.1)': @@ -6762,11 +6762,11 @@ snapshots: dependencies: '@trpc/server': 11.0.0-rc.373 - '@trpc/next@11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/react-query@11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.373)(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@trpc/next@11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/react-query@11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.373)(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@trpc/client': 11.0.0-rc.373(@trpc/server@11.0.0-rc.373) '@trpc/server': 11.0.0-rc.373 - next: 14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.1) + next: 14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: @@ -7086,18 +7086,18 @@ snapshots: global: 4.4.0 is-function: 1.0.2 - '@vitejs/plugin-react@4.2.1(vite@5.2.6(@types/node@20.12.12)(sass@1.77.1)(sugarss@4.0.1))': + '@vitejs/plugin-react@4.2.1(vite@5.2.6(@types/node@20.12.12)(sass@1.77.2)(sugarss@4.0.1))': dependencies: '@babel/core': 7.23.9 '@babel/plugin-transform-react-jsx-self': 7.23.3(@babel/core@7.23.9) '@babel/plugin-transform-react-jsx-source': 7.23.3(@babel/core@7.23.9) '@types/babel__core': 7.20.5 react-refresh: 0.14.0 - vite: 5.2.6(@types/node@20.12.12)(sass@1.77.1)(sugarss@4.0.1) + vite: 5.2.6(@types/node@20.12.12)(sass@1.77.2)(sugarss@4.0.1) transitivePeerDependencies: - supports-color - '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.12.12)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.1)(sugarss@4.0.1))': + '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@20.12.12)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.2)(sugarss@4.0.1))': dependencies: '@ampproject/remapping': 2.2.1 '@bcoe/v8-coverage': 0.2.3 @@ -7112,7 +7112,7 @@ snapshots: std-env: 3.7.0 strip-literal: 2.0.0 test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@20.12.12)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.1)(sugarss@4.0.1) + vitest: 1.6.0(@types/node@20.12.12)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.2)(sugarss@4.0.1) transitivePeerDependencies: - supports-color @@ -7147,7 +7147,7 @@ snapshots: pathe: 1.1.2 picocolors: 1.0.0 sirv: 2.0.4 - vitest: 1.6.0(@types/node@20.12.12)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.1)(sugarss@4.0.1) + vitest: 1.6.0(@types/node@20.12.12)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.2)(sugarss@4.0.1) '@vitest/utils@1.6.0': dependencies: @@ -9210,10 +9210,10 @@ snapshots: netmask@2.0.2: {} - next-auth@5.0.0-beta.18(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.1))(react@18.3.1): + next-auth@5.0.0-beta.18(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2))(react@18.3.1): dependencies: '@auth/core': 0.31.0 - next: 14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.1) + next: 14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2) react: 18.3.1 next-international@1.2.4: @@ -9224,7 +9224,7 @@ snapshots: next-tick@1.1.0: {} - next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.1): + next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2): dependencies: '@next/env': 14.2.3 '@swc/helpers': 0.5.5 @@ -9245,7 +9245,7 @@ snapshots: '@next/swc-win32-arm64-msvc': 14.2.3 '@next/swc-win32-ia32-msvc': 14.2.3 '@next/swc-win32-x64-msvc': 14.2.3 - sass: 1.77.1 + sass: 1.77.2 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -9939,7 +9939,7 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.77.1: + sass@1.77.2: dependencies: chokidar: 3.6.0 immutable: 4.3.5 @@ -10520,13 +10520,13 @@ snapshots: dependencies: global: 4.4.0 - vite-node@1.6.0(@types/node@20.12.12)(sass@1.77.1)(sugarss@4.0.1): + vite-node@1.6.0(@types/node@20.12.12)(sass@1.77.2)(sugarss@4.0.1): dependencies: cac: 6.7.14 debug: 4.3.4 pathe: 1.1.2 picocolors: 1.0.0 - vite: 5.2.6(@types/node@20.12.12)(sass@1.77.1)(sugarss@4.0.1) + vite: 5.2.6(@types/node@20.12.12)(sass@1.77.2)(sugarss@4.0.1) transitivePeerDependencies: - '@types/node' - less @@ -10537,18 +10537,18 @@ snapshots: - supports-color - terser - vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.2.6(@types/node@20.12.12)(sass@1.77.1)(sugarss@4.0.1)): + vite-tsconfig-paths@4.3.2(typescript@5.4.5)(vite@5.2.6(@types/node@20.12.12)(sass@1.77.2)(sugarss@4.0.1)): dependencies: debug: 4.3.4 globrex: 0.1.2 tsconfck: 3.0.3(typescript@5.4.5) optionalDependencies: - vite: 5.2.6(@types/node@20.12.12)(sass@1.77.1)(sugarss@4.0.1) + vite: 5.2.6(@types/node@20.12.12)(sass@1.77.2)(sugarss@4.0.1) transitivePeerDependencies: - supports-color - typescript - vite@5.2.6(@types/node@20.12.12)(sass@1.77.1)(sugarss@4.0.1): + vite@5.2.6(@types/node@20.12.12)(sass@1.77.2)(sugarss@4.0.1): dependencies: esbuild: 0.20.2 postcss: 8.4.38 @@ -10556,10 +10556,10 @@ snapshots: optionalDependencies: '@types/node': 20.12.12 fsevents: 2.3.3 - sass: 1.77.1 + sass: 1.77.2 sugarss: 4.0.1(postcss@8.4.38) - vitest@1.6.0(@types/node@20.12.12)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.1)(sugarss@4.0.1): + vitest@1.6.0(@types/node@20.12.12)(@vitest/ui@1.6.0)(jsdom@24.0.0)(sass@1.77.2)(sugarss@4.0.1): dependencies: '@vitest/expect': 1.6.0 '@vitest/runner': 1.6.0 @@ -10578,8 +10578,8 @@ snapshots: strip-literal: 2.0.0 tinybench: 2.6.0 tinypool: 0.8.3 - vite: 5.2.6(@types/node@20.12.12)(sass@1.77.1)(sugarss@4.0.1) - vite-node: 1.6.0(@types/node@20.12.12)(sass@1.77.1)(sugarss@4.0.1) + vite: 5.2.6(@types/node@20.12.12)(sass@1.77.2)(sugarss@4.0.1) + vite-node: 1.6.0(@types/node@20.12.12)(sass@1.77.2)(sugarss@4.0.1) why-is-node-running: 2.2.2 optionalDependencies: '@types/node': 20.12.12 From dc9a8dd9c686fd9279390ab2482f0e049150b49e Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 18 May 2024 15:31:34 +0200 Subject: [PATCH 04/13] chore(deps): update dependency tsx to v4.10.5 (#507) 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 | 23 ++++++++--------------- 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index 1db0f5b5d..afe953d61 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -69,7 +69,7 @@ "concurrently": "^8.2.2", "eslint": "^8.57.0", "prettier": "^3.2.5", - "tsx": "4.10.3", + "tsx": "4.10.5", "typescript": "^5.4.5" }, "eslintConfig": { diff --git a/apps/tasks/package.json b/apps/tasks/package.json index e5d233ab9..837806648 100644 --- a/apps/tasks/package.json +++ b/apps/tasks/package.json @@ -38,7 +38,7 @@ "dotenv-cli": "^7.4.2", "eslint": "^8.57.0", "prettier": "^3.2.5", - "tsx": "4.10.3", + "tsx": "4.10.5", "typescript": "^5.4.5" }, "eslintConfig": { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1d07b5125..85d8bdeab 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -221,8 +221,8 @@ importers: specifier: ^3.2.5 version: 3.2.5 tsx: - specifier: 4.10.3 - version: 4.10.3 + specifier: 4.10.5 + version: 4.10.5 typescript: specifier: ^5.4.5 version: 5.4.5 @@ -282,8 +282,8 @@ importers: specifier: ^3.2.5 version: 3.2.5 tsx: - specifier: 4.10.3 - version: 4.10.3 + specifier: 4.10.5 + version: 4.10.5 typescript: specifier: ^5.4.5 version: 5.4.5 @@ -3521,9 +3521,6 @@ packages: resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} engines: {node: '>= 0.4'} - get-tsconfig@4.7.3: - resolution: {integrity: sha512-ZvkrzoUA0PQZM6fy6+/Hce561s+faD1rsNwhnO5FelNjyy7EMGJ3Rz1AQ8GYDWjhRs/7dBLOEJvhK8MiEJOAFg==} - get-tsconfig@4.7.5: resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} @@ -5268,8 +5265,8 @@ packages: resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==} engines: {node: '>=0.6.x'} - tsx@4.10.3: - resolution: {integrity: sha512-f0g60aFSVRVkzcQkEflh8fPLRfmt+HJHgWi/plG5UgvVaV+9TcpOwJ0sZJSACXmwmjMPg9yQR0BhTLbhkfV2uA==} + tsx@4.10.5: + resolution: {integrity: sha512-twDSbf7Gtea4I2copqovUiNTEDrT8XNFXsuHpfGbdpW/z9ZW4fTghzzhAG0WfrCuJmJiOEY1nLIjq4u3oujRWQ==} engines: {node: '>=18.0.0'} hasBin: true @@ -5953,7 +5950,7 @@ snapshots: '@esbuild-kit/esm-loader@2.6.5': dependencies: '@esbuild-kit/core-utils': 3.3.2 - get-tsconfig: 4.7.3 + get-tsconfig: 4.7.5 '@esbuild/aix-ppc64@0.19.12': optional: true @@ -8392,10 +8389,6 @@ snapshots: es-errors: 1.3.0 get-intrinsic: 1.2.4 - get-tsconfig@4.7.3: - dependencies: - resolve-pkg-maps: 1.0.0 - get-tsconfig@4.7.5: dependencies: resolve-pkg-maps: 1.0.0 @@ -10311,7 +10304,7 @@ snapshots: tsscmp@1.0.6: {} - tsx@4.10.3: + tsx@4.10.5: dependencies: esbuild: 0.20.2 get-tsconfig: 4.7.5 From abffc866c084c387a553395519c172becaec0618 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 18 May 2024 15:32:25 +0200 Subject: [PATCH 05/13] fix(deps): update mantine monorepo to ^7.9.2 (#510) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 8 +- package.json | 4 +- packages/form/package.json | 2 +- packages/notifications/package.json | 2 +- packages/spotlight/package.json | 2 +- pnpm-lock.yaml | 154 ++++++++++++++-------------- 6 files changed, 86 insertions(+), 86 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index afe953d61..f655d738c 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -29,10 +29,10 @@ "@homarr/ui": "workspace:^0.1.0", "@homarr/validation": "workspace:^0.1.0", "@homarr/widgets": "workspace:^0.1.0", - "@mantine/colors-generator": "^7.9.1", - "@mantine/hooks": "^7.9.1", - "@mantine/modals": "^7.9.1", - "@mantine/tiptap": "^7.9.1", + "@mantine/colors-generator": "^7.9.2", + "@mantine/hooks": "^7.9.2", + "@mantine/modals": "^7.9.2", + "@mantine/tiptap": "^7.9.2", "@t3-oss/env-nextjs": "^0.10.1", "@tanstack/react-query": "^5.36.2", "@tanstack/react-query-devtools": "^5.36.2", diff --git a/package.json b/package.json index 6e5be63a6..ca243e083 100644 --- a/package.json +++ b/package.json @@ -41,8 +41,8 @@ "vitest": "^1.6.0" }, "dependencies": { - "@mantine/core": "^7.9.1", - "@mantine/dates": "^7.9.1", + "@mantine/core": "^7.9.2", + "@mantine/dates": "^7.9.2", "@tabler/icons-react": "^3.4.0", "mantine-react-table": "2.0.0-beta.3" }, diff --git a/packages/form/package.json b/packages/form/package.json index 6d754a6eb..76b2dad03 100644 --- a/packages/form/package.json +++ b/packages/form/package.json @@ -33,6 +33,6 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@mantine/form": "^7.9.1" + "@mantine/form": "^7.9.2" } } diff --git a/packages/notifications/package.json b/packages/notifications/package.json index 194cbbb53..73f13e79e 100644 --- a/packages/notifications/package.json +++ b/packages/notifications/package.json @@ -28,7 +28,7 @@ "typescript": "^5.4.5" }, "dependencies": { - "@mantine/notifications": "^7.9.1", + "@mantine/notifications": "^7.9.2", "@homarr/ui": "workspace:^0.1.0" }, "eslintConfig": { diff --git a/packages/spotlight/package.json b/packages/spotlight/package.json index d6386ec5d..743850739 100644 --- a/packages/spotlight/package.json +++ b/packages/spotlight/package.json @@ -34,7 +34,7 @@ }, "prettier": "@homarr/prettier-config", "dependencies": { - "@mantine/spotlight": "^7.9.1", + "@mantine/spotlight": "^7.9.2", "@homarr/ui": "workspace:^0.1.0", "@homarr/translation": "workspace:^0.1.0" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 85d8bdeab..b4cc86a1e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,17 +9,17 @@ importers: .: dependencies: '@mantine/core': - specifier: ^7.9.1 - version: 7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^7.9.2 + version: 7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/dates': - specifier: ^7.9.1 - version: 7.9.1(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(dayjs@1.11.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^7.9.2 + version: 7.9.2(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(dayjs@1.11.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@tabler/icons-react': specifier: ^3.4.0 version: 3.4.0(react@18.3.1) mantine-react-table: specifier: 2.0.0-beta.3 - version: 2.0.0-beta.3(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.9.1(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(dayjs@1.11.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(@tabler/icons-react@3.4.0(react@18.3.1))(clsx@2.1.0)(dayjs@1.11.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 2.0.0-beta.3(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.9.2(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(dayjs@1.11.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(@tabler/icons-react@3.4.0(react@18.3.1))(clsx@2.1.0)(dayjs@1.11.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@homarr/prettier-config': specifier: workspace:^0.1.0 @@ -106,17 +106,17 @@ importers: specifier: workspace:^0.1.0 version: link:../../packages/widgets '@mantine/colors-generator': - specifier: ^7.9.1 - version: 7.9.1(chroma-js@2.4.2) + specifier: ^7.9.2 + version: 7.9.2(chroma-js@2.4.2) '@mantine/hooks': - specifier: ^7.9.1 - version: 7.9.1(react@18.3.1) + specifier: ^7.9.2 + version: 7.9.2(react@18.3.1) '@mantine/modals': - specifier: ^7.9.1 - version: 7.9.1(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^7.9.2 + version: 7.9.2(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@mantine/tiptap': - specifier: ^7.9.1 - version: 7.9.1(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(@tiptap/extension-link@2.4.0(@tiptap/core@2.4.0(@tiptap/pm@2.2.4))(@tiptap/pm@2.2.4))(@tiptap/react@2.4.0(@tiptap/core@2.4.0(@tiptap/pm@2.2.4))(@tiptap/pm@2.2.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^7.9.2 + version: 7.9.2(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(@tiptap/extension-link@2.4.0(@tiptap/core@2.4.0(@tiptap/pm@2.2.4))(@tiptap/pm@2.2.4))(@tiptap/react@2.4.0(@tiptap/core@2.4.0(@tiptap/pm@2.2.4))(@tiptap/pm@2.2.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@t3-oss/env-nextjs': specifier: ^0.10.1 version: 0.10.1(typescript@5.4.5)(zod@3.23.8) @@ -557,8 +557,8 @@ importers: packages/form: dependencies: '@mantine/form': - specifier: ^7.9.1 - version: 7.9.1(react@18.3.1) + specifier: ^7.9.2 + version: 7.9.2(react@18.3.1) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -657,8 +657,8 @@ importers: specifier: workspace:^0.1.0 version: link:../ui '@mantine/notifications': - specifier: ^7.9.1 - version: 7.9.1(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^7.9.2 + version: 7.9.2(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -716,8 +716,8 @@ importers: specifier: workspace:^0.1.0 version: link:../ui '@mantine/spotlight': - specifier: ^7.9.1 - version: 7.9.1(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^7.9.2 + version: 7.9.2(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) devDependencies: '@homarr/eslint-config': specifier: workspace:^0.2.0 @@ -1667,71 +1667,71 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@mantine/colors-generator@7.9.1': - resolution: {integrity: sha512-PruvJCRmzCDnNL0xAGfpqJfzhcSn1Q9fTNWgK99O30oOhqOhj0X0iY7lwZQbg8EVirVnbAP0yO4iIqPQBcHpig==} + '@mantine/colors-generator@7.9.2': + resolution: {integrity: sha512-PxGET2EosF2EvBHDPvC0dFolry6YFNEHoieZkhVm8o0a7NclBadkbbRiVDH5qZ7xOKM+94Jf+NCfitXdqKKsAg==} peerDependencies: chroma-js: ^2.4.2 - '@mantine/core@7.9.1': - resolution: {integrity: sha512-UXK11t1fAQ2ROQ9HTIZfyU52XdwS8sFJ2SRUh5uHMWSahJo3wTdKzaCvYN7wg+ONM9p6ENT0hC0dfv5qXoKU4w==} + '@mantine/core@7.9.2': + resolution: {integrity: sha512-ARNEiREF70tikW6at8QwFFcDbtennPjnhPOifaDL1sQurO3ORN/iOUFxiH1npWoqNydUZHxhsfFVpte8NNf/oQ==} peerDependencies: - '@mantine/hooks': 7.9.1 + '@mantine/hooks': 7.9.2 react: ^18.2.0 react-dom: ^18.2.0 - '@mantine/dates@7.9.1': - resolution: {integrity: sha512-HB6gIMV6OEz/ih48KedcII1MNpH6oLit2ajSG50POJ3jgDSBQI9710kSu3rTrC5TiTLrZTIr/u51gsk0Daaepg==} + '@mantine/dates@7.9.2': + resolution: {integrity: sha512-jbSHNuaZk0Fn/TfVFDM/l9cW1pt4kdGPCOD17SkTwuvSnlMjj7TTjp8I5UCrnNTbmrlUR451HrOGPD0j6vBSFg==} peerDependencies: - '@mantine/core': 7.9.1 - '@mantine/hooks': 7.9.1 + '@mantine/core': 7.9.2 + '@mantine/hooks': 7.9.2 dayjs: '>=1.0.0' react: ^18.2.0 react-dom: ^18.2.0 - '@mantine/form@7.9.1': - resolution: {integrity: sha512-6Z4LkACT1ouoTvtI9hH/rT+L7qvfKnCypUyaCtYpPkA57ANamK7qkmeXXBmbGGOf8mJB+ZSgOvpDVKKRz5iH3Q==} + '@mantine/form@7.9.2': + resolution: {integrity: sha512-G3n4VcK8LksJG9NncOwROXwxIJPXhpFF5FNemU+mCyuqzYI2bj8qsLh12e3wf9m1eZ2kmYjK4UpqP/AOptHHCQ==} peerDependencies: react: ^18.2.0 - '@mantine/hooks@7.9.1': - resolution: {integrity: sha512-nb2Ar+2HfGxLjGZgObapeUeqcQsUWJ+rvj4X2KNTUy3+YpvLIMD3CqREowWHF7/5OTGh4BCyBqQNZ9JFpnMeHQ==} + '@mantine/hooks@7.9.2': + resolution: {integrity: sha512-qT8vvHZ8K/qFXSSIyq/NHpKgtEs1Vas4Z2tPPtMTN7oyibjsel09XebPAt59nkJS/SACQbja0GZ4lUXI2+AFFw==} peerDependencies: react: ^18.2.0 - '@mantine/modals@7.9.1': - resolution: {integrity: sha512-HvDJ3XLnNuYpFFuJ3SNPbRnM2kATKaIFmgsN9zt8ZkYD7GgvfYXyZ+jctwNBaR6atAbWyFboDklJ4AIc+0w8aw==} + '@mantine/modals@7.9.2': + resolution: {integrity: sha512-ViXo6wCsvxYz0XEKUP2wQZwPgUkTGqqeyqS11axhzZbDmbxvXC2uUX9jl1mlDNj83b/ynVqjKms5mW2p81+AuA==} peerDependencies: - '@mantine/core': 7.9.1 - '@mantine/hooks': 7.9.1 + '@mantine/core': 7.9.2 + '@mantine/hooks': 7.9.2 react: ^18.2.0 react-dom: ^18.2.0 - '@mantine/notifications@7.9.1': - resolution: {integrity: sha512-+fzc/+conYQMqE72eaKcxaOrLijsWExRO6Rp+QVgsmp3Hf57yksRdEbVE259PrWq3jaVI8G4XIMeKdYK0tB5Pw==} + '@mantine/notifications@7.9.2': + resolution: {integrity: sha512-ERgmPLkiVPOqPjCVfSSK2QcRb/2W9wJVPpIlkSyMNYUWosceAH9uPhZCtnWxyRqH/PLhYtOOflxq2i4hiArEJQ==} peerDependencies: - '@mantine/core': 7.9.1 - '@mantine/hooks': 7.9.1 + '@mantine/core': 7.9.2 + '@mantine/hooks': 7.9.2 react: ^18.2.0 react-dom: ^18.2.0 - '@mantine/spotlight@7.9.1': - resolution: {integrity: sha512-o01capdEMhYPBUtjosDjsHZhSSRAFJpmlTZQb1bWeNO2f+jmNRF40v6jZNFImYE41Y9bHeNFXegzhQcXOov5qw==} + '@mantine/spotlight@7.9.2': + resolution: {integrity: sha512-iNz6yk2nioWz28AqZpmLQ/iwYn0Vqx5hMzmCEIcHPJIxkSxbBNktGjiFLTqb30Wht1ITelmUuBEfkWGGgyYzgg==} peerDependencies: - '@mantine/core': 7.9.1 - '@mantine/hooks': 7.9.1 + '@mantine/core': 7.9.2 + '@mantine/hooks': 7.9.2 react: ^18.2.0 react-dom: ^18.2.0 - '@mantine/store@7.9.1': - resolution: {integrity: sha512-m15k51F4n6R08Iii+TWG64lofiYB9hhEGS+3y+9DZHuY+hSmTmQX9J5WKVNYJ3jmV24QG96EjEQNuLBcG2atSg==} + '@mantine/store@7.9.2': + resolution: {integrity: sha512-oqCjse3cAp0DQI1fT5AWLW+Me6Mu4b2DVPpoRRwm7Ptw8gzUEmxb/9Brx2rkhaAym+S9sGe8IdEpNVLXaZyGXw==} peerDependencies: react: ^18.2.0 - '@mantine/tiptap@7.9.1': - resolution: {integrity: sha512-0o7qbORbk33bWcWOcdxlgKVcpTZio6VljquQMZANGvZjPDmKiHYjuxrandkwYZIXSstzOFtqc+8FMFB23OtlJg==} + '@mantine/tiptap@7.9.2': + resolution: {integrity: sha512-E32/0/2kSLZItXEgadK5el5YY3E7uCnFFc19qL18XSI6RLytrJhDyw0aoIxfeRxkkfFZjSUkrtec7XNWo4hUQQ==} peerDependencies: - '@mantine/core': 7.9.1 - '@mantine/hooks': 7.9.1 + '@mantine/core': 7.9.2 + '@mantine/hooks': 7.9.2 '@tiptap/extension-link': '>=2.1.12' '@tiptap/react': '>=2.1.12' react: ^18.2.0 @@ -6269,14 +6269,14 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.4.15 - '@mantine/colors-generator@7.9.1(chroma-js@2.4.2)': + '@mantine/colors-generator@7.9.2(chroma-js@2.4.2)': dependencies: chroma-js: 2.4.2 - '@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@floating-ui/react': 0.26.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/hooks': 7.9.1(react@18.3.1) + '@mantine/hooks': 7.9.2(react@18.3.1) clsx: 2.1.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6287,57 +6287,57 @@ snapshots: transitivePeerDependencies: - '@types/react' - '@mantine/dates@7.9.1(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(dayjs@1.11.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/dates@7.9.2(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(dayjs@1.11.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/hooks': 7.9.1(react@18.3.1) + '@mantine/core': 7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/hooks': 7.9.2(react@18.3.1) clsx: 2.1.0 dayjs: 1.11.11 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@mantine/form@7.9.1(react@18.3.1)': + '@mantine/form@7.9.2(react@18.3.1)': dependencies: fast-deep-equal: 3.1.3 klona: 2.0.6 react: 18.3.1 - '@mantine/hooks@7.9.1(react@18.3.1)': + '@mantine/hooks@7.9.2(react@18.3.1)': dependencies: react: 18.3.1 - '@mantine/modals@7.9.1(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/modals@7.9.2(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/hooks': 7.9.1(react@18.3.1) + '@mantine/core': 7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/hooks': 7.9.2(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@mantine/notifications@7.9.1(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/notifications@7.9.2(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/hooks': 7.9.1(react@18.3.1) - '@mantine/store': 7.9.1(react@18.3.1) + '@mantine/core': 7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/hooks': 7.9.2(react@18.3.1) + '@mantine/store': 7.9.2(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-transition-group: 4.4.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/spotlight@7.9.1(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/spotlight@7.9.2(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/hooks': 7.9.1(react@18.3.1) - '@mantine/store': 7.9.1(react@18.3.1) + '@mantine/core': 7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/hooks': 7.9.2(react@18.3.1) + '@mantine/store': 7.9.2(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@mantine/store@7.9.1(react@18.3.1)': + '@mantine/store@7.9.2(react@18.3.1)': dependencies: react: 18.3.1 - '@mantine/tiptap@7.9.1(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(@tiptap/extension-link@2.4.0(@tiptap/core@2.4.0(@tiptap/pm@2.2.4))(@tiptap/pm@2.2.4))(@tiptap/react@2.4.0(@tiptap/core@2.4.0(@tiptap/pm@2.2.4))(@tiptap/pm@2.2.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@mantine/tiptap@7.9.2(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(@tiptap/extension-link@2.4.0(@tiptap/core@2.4.0(@tiptap/pm@2.2.4))(@tiptap/pm@2.2.4))(@tiptap/react@2.4.0(@tiptap/core@2.4.0(@tiptap/pm@2.2.4))(@tiptap/pm@2.2.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@mantine/core': 7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/hooks': 7.9.1(react@18.3.1) + '@mantine/core': 7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/hooks': 7.9.2(react@18.3.1) '@tiptap/extension-link': 2.4.0(@tiptap/core@2.4.0(@tiptap/pm@2.2.4))(@tiptap/pm@2.2.4) '@tiptap/react': 2.4.0(@tiptap/core@2.4.0(@tiptap/pm@2.2.4))(@tiptap/pm@2.2.4)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -9055,11 +9055,11 @@ snapshots: make-error@1.3.6: {} - mantine-react-table@2.0.0-beta.3(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.9.1(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(dayjs@1.11.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(@tabler/icons-react@3.4.0(react@18.3.1))(clsx@2.1.0)(dayjs@1.11.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + mantine-react-table@2.0.0-beta.3(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/dates@7.9.2(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(dayjs@1.11.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(@tabler/icons-react@3.4.0(react@18.3.1))(clsx@2.1.0)(dayjs@1.11.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@mantine/core': 7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/dates': 7.9.1(@mantine/core@7.9.1(@mantine/hooks@7.9.1(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.1(react@18.3.1))(dayjs@1.11.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@mantine/hooks': 7.9.1(react@18.3.1) + '@mantine/core': 7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/dates': 7.9.2(@mantine/core@7.9.2(@mantine/hooks@7.9.2(react@18.3.1))(@types/react@18.3.2)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@mantine/hooks@7.9.2(react@18.3.1))(dayjs@1.11.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@mantine/hooks': 7.9.2(react@18.3.1) '@tabler/icons-react': 3.4.0(react@18.3.1) '@tanstack/match-sorter-utils': 8.15.1 '@tanstack/react-table': 8.16.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) From b312032f02db6fac0e95456ef23cf84d4ab485b0 Mon Sep 17 00:00:00 2001 From: "homarr-renovate[bot]" <158783068+homarr-renovate[bot]@users.noreply.github.com> Date: Sat, 18 May 2024 16:44:35 +0200 Subject: [PATCH 06/13] fix(deps): update tanstack-query monorepo to ^5.37.1 (#513) Co-authored-by: homarr-renovate[bot] <158783068+homarr-renovate[bot]@users.noreply.github.com> --- apps/nextjs/package.json | 6 ++-- pnpm-lock.yaml | 60 ++++++++++++++++++++-------------------- 2 files changed, 33 insertions(+), 33 deletions(-) diff --git a/apps/nextjs/package.json b/apps/nextjs/package.json index f655d738c..e713f4d75 100644 --- a/apps/nextjs/package.json +++ b/apps/nextjs/package.json @@ -34,9 +34,9 @@ "@mantine/modals": "^7.9.2", "@mantine/tiptap": "^7.9.2", "@t3-oss/env-nextjs": "^0.10.1", - "@tanstack/react-query": "^5.36.2", - "@tanstack/react-query-devtools": "^5.36.2", - "@tanstack/react-query-next-experimental": "5.36.2", + "@tanstack/react-query": "^5.37.1", + "@tanstack/react-query-devtools": "^5.37.1", + "@tanstack/react-query-next-experimental": "5.37.1", "@trpc/client": "11.0.0-rc.373", "@trpc/next": "next", "@trpc/react-query": "next", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b4cc86a1e..bb6b4fefd 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -121,23 +121,23 @@ importers: specifier: ^0.10.1 version: 0.10.1(typescript@5.4.5)(zod@3.23.8) '@tanstack/react-query': - specifier: ^5.36.2 - version: 5.36.2(react@18.3.1) + specifier: ^5.37.1 + version: 5.37.1(react@18.3.1) '@tanstack/react-query-devtools': - specifier: ^5.36.2 - version: 5.36.2(@tanstack/react-query@5.36.2(react@18.3.1))(react@18.3.1) + specifier: ^5.37.1 + version: 5.37.1(@tanstack/react-query@5.37.1(react@18.3.1))(react@18.3.1) '@tanstack/react-query-next-experimental': - specifier: 5.36.2 - version: 5.36.2(@tanstack/react-query@5.36.2(react@18.3.1))(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2))(react@18.3.1) + specifier: 5.37.1 + version: 5.37.1(@tanstack/react-query@5.37.1(react@18.3.1))(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2))(react@18.3.1) '@trpc/client': specifier: 11.0.0-rc.373 version: 11.0.0-rc.373(@trpc/server@11.0.0-rc.373) '@trpc/next': specifier: next - version: 11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/react-query@11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.373)(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.0.0-rc.373(@tanstack/react-query@5.37.1(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/react-query@11.0.0-rc.373(@tanstack/react-query@5.37.1(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.373)(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@trpc/react-query': specifier: next - version: 11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 11.0.0-rc.373(@tanstack/react-query@5.37.1(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@trpc/server': specifier: next version: 11.0.0-rc.373 @@ -1949,24 +1949,24 @@ packages: '@tanstack/query-core@5.36.1': resolution: {integrity: sha512-BteWYEPUcucEu3NBcDAgKuI4U25R9aPrHSP6YSf2NvaD2pSlIQTdqOfLRsxH9WdRYg7k0Uom35Uacb6nvbIMJg==} - '@tanstack/query-devtools@5.32.1': - resolution: {integrity: sha512-7Xq57Ctopiy/4atpb0uNY5VRuCqRS/1fi/WBCKKX6jHMa6cCgDuV/AQuiwRXcKARbq2OkVAOrW2v4xK9nTbcCA==} + '@tanstack/query-devtools@5.37.1': + resolution: {integrity: sha512-XcG4IIHIv0YQKrexTqo2zogQWR1Sz672tX2KsfE9kzB+9zhx44vRKH5si4WDILE1PIWQpStFs/NnrDQrBAUQpg==} - '@tanstack/react-query-devtools@5.36.2': - resolution: {integrity: sha512-bkPQrKmKJOa2dNs6rBB9aef8jCG8XAg8QKIhwN8NI+QaXky86IofnO8YjiF6P1mYquLXbQvK0VZ9DnGV0wH/eA==} + '@tanstack/react-query-devtools@5.37.1': + resolution: {integrity: sha512-fWL3rV/avL9HsHt3RVYxuLCqSHghBwSGPIUMDZ9hfg9PDjQaeI9d8kJj6yLoCBWUhTue5/rQbISvFtr+yxyYyA==} peerDependencies: - '@tanstack/react-query': ^5.36.2 + '@tanstack/react-query': ^5.37.1 react: ^18.0.0 - '@tanstack/react-query-next-experimental@5.36.2': - resolution: {integrity: sha512-RC/QZxrUvpd9w03J1BXhN0Zt0Yw/w+hji0X7ppY2mw1ZL15OjyJ4P3i9u7oaYhKF8Wx00mkQtUkjDagXZFNB3w==} + '@tanstack/react-query-next-experimental@5.37.1': + resolution: {integrity: sha512-Z4ksCK2Ta4UhQ2fwowlOT3P94pcfRLIY+cHHsp92y2di9Bft6q6yODoDVOSvVho1tqQjlJemljegZaUZUvtKVA==} peerDependencies: - '@tanstack/react-query': ^5.36.2 + '@tanstack/react-query': ^5.37.1 next: ^13 || ^14 react: ^18.0.0 - '@tanstack/react-query@5.36.2': - resolution: {integrity: sha512-bHNa+5dead+j6SA8WVlEOPxcGfteVFgdyFTCFcxBgjnPf0fFpHUc7aNZBCnvmPXqy/BeQa9zTuU9ectb7i8ZXA==} + '@tanstack/react-query@5.37.1': + resolution: {integrity: sha512-EhtBNA8GL3XFeSx6VYUjXQ96n44xe3JGKZCzBINrCYlxbZP6UwBafv7ti4eSRWc2Fy+fybQre0w17gR6lMzULA==} peerDependencies: react: ^18.0.0 @@ -6514,21 +6514,21 @@ snapshots: '@tanstack/query-core@5.36.1': {} - '@tanstack/query-devtools@5.32.1': {} + '@tanstack/query-devtools@5.37.1': {} - '@tanstack/react-query-devtools@5.36.2(@tanstack/react-query@5.36.2(react@18.3.1))(react@18.3.1)': + '@tanstack/react-query-devtools@5.37.1(@tanstack/react-query@5.37.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/query-devtools': 5.32.1 - '@tanstack/react-query': 5.36.2(react@18.3.1) + '@tanstack/query-devtools': 5.37.1 + '@tanstack/react-query': 5.37.1(react@18.3.1) react: 18.3.1 - '@tanstack/react-query-next-experimental@5.36.2(@tanstack/react-query@5.36.2(react@18.3.1))(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2))(react@18.3.1)': + '@tanstack/react-query-next-experimental@5.37.1(@tanstack/react-query@5.37.1(react@18.3.1))(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2))(react@18.3.1)': dependencies: - '@tanstack/react-query': 5.36.2(react@18.3.1) + '@tanstack/react-query': 5.37.1(react@18.3.1) next: 14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2) react: 18.3.1 - '@tanstack/react-query@5.36.2(react@18.3.1)': + '@tanstack/react-query@5.37.1(react@18.3.1)': dependencies: '@tanstack/query-core': 5.36.1 react: 18.3.1 @@ -6759,7 +6759,7 @@ snapshots: dependencies: '@trpc/server': 11.0.0-rc.373 - '@trpc/next@11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/react-query@11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.373)(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@trpc/next@11.0.0-rc.373(@tanstack/react-query@5.37.1(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/react-query@11.0.0-rc.373(@tanstack/react-query@5.37.1(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(@trpc/server@11.0.0-rc.373)(next@14.2.3(@babel/core@7.23.9)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(sass@1.77.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@trpc/client': 11.0.0-rc.373(@trpc/server@11.0.0-rc.373) '@trpc/server': 11.0.0-rc.373 @@ -6767,12 +6767,12 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@tanstack/react-query': 5.36.2(react@18.3.1) - '@trpc/react-query': 11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-query': 5.37.1(react@18.3.1) + '@trpc/react-query': 11.0.0-rc.373(@tanstack/react-query@5.37.1(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@trpc/react-query@11.0.0-rc.373(@tanstack/react-query@5.36.2(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@trpc/react-query@11.0.0-rc.373(@tanstack/react-query@5.37.1(react@18.3.1))(@trpc/client@11.0.0-rc.373(@trpc/server@11.0.0-rc.373))(@trpc/server@11.0.0-rc.373)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/react-query': 5.36.2(react@18.3.1) + '@tanstack/react-query': 5.37.1(react@18.3.1) '@trpc/client': 11.0.0-rc.373(@trpc/server@11.0.0-rc.373) '@trpc/server': 11.0.0-rc.373 react: 18.3.1 From dfed804f65003f715ed0bf699de39b4c8c63d63b Mon Sep 17 00:00:00 2001 From: Meier Lukas Date: Sat, 18 May 2024 16:55:08 +0200 Subject: [PATCH 07/13] feat: add i18n translated form errors (#509) --- .../auth/invite/[id]/_registration-form.tsx | 13 +- .../app/[locale]/auth/login/_login-form.tsx | 11 +- .../boards/[name]/settings/_background.tsx | 5 +- .../boards/[name]/settings/_colors.tsx | 14 +- .../boards/[name]/settings/_general.tsx | 39 +++-- .../boards/[name]/settings/_layout.tsx | 14 +- .../[locale]/init/user/_init-user-form.tsx | 7 +- .../src/app/[locale]/manage/apps/_form.tsx | 9 +- .../_integration-secret-inputs.tsx | 1 + .../edit/[id]/_integration-edit-form.tsx | 7 +- .../new/_integration-new-form.tsx | 8 +- .../general/_components/_profile-form.tsx | 7 +- .../_components/_change-password-form.tsx | 10 +- .../_components/create-user-stepper.tsx | 61 ++++---- .../users/groups/[id]/_rename-group-form.tsx | 5 +- .../manage/users/groups/_add-group.tsx | 5 +- .../board/modals/board-rename-modal.tsx | 7 +- .../sections/category/category-edit-modal.tsx | 5 +- .../components/icons/picker/icon-picker.tsx | 21 ++- .../manage/boards/add-board-modal.tsx | 30 ++-- packages/api/src/router/board.ts | 4 +- packages/api/src/router/test/user.spec.ts | 2 +- packages/api/src/router/user.ts | 1 + packages/form/package.json | 4 +- packages/form/src/index.ts | 34 ++++- packages/form/src/messages.ts | 110 ++++++++++++++ packages/translation/src/lang/en.ts | 25 ++++ packages/validation/package.json | 6 +- packages/validation/src/board.ts | 9 +- packages/validation/src/form/i18n.ts | 139 ++++++++++++++++++ packages/validation/src/user.ts | 35 +++-- pnpm-lock.yaml | 9 ++ 32 files changed, 501 insertions(+), 156 deletions(-) create mode 100644 packages/form/src/messages.ts create mode 100644 packages/validation/src/form/i18n.ts diff --git a/apps/nextjs/src/app/[locale]/auth/invite/[id]/_registration-form.tsx b/apps/nextjs/src/app/[locale]/auth/invite/[id]/_registration-form.tsx index f7ea9ace5..9baf60958 100644 --- a/apps/nextjs/src/app/[locale]/auth/invite/[id]/_registration-form.tsx +++ b/apps/nextjs/src/app/[locale]/auth/invite/[id]/_registration-form.tsx @@ -4,7 +4,7 @@ import { useRouter } from "next/navigation"; import { Button, PasswordInput, Stack, TextInput } from "@mantine/core"; import { clientApi } from "@homarr/api/client"; -import { useForm, zodResolver } from "@homarr/form"; +import { useZodForm } from "@homarr/form"; import { showErrorNotification, showSuccessNotification, @@ -24,18 +24,17 @@ export const RegistrationForm = ({ invite }: RegistrationFormProps) => { const t = useScopedI18n("user"); const router = useRouter(); const { mutate, isPending } = clientApi.user.register.useMutation(); - const form = useForm({ - validate: zodResolver(validation.user.registration), + const form = useZodForm(validation.user.registration, { initialValues: { username: "", password: "", confirmPassword: "", }, - validateInputOnBlur: true, - validateInputOnChange: true, }); - const handleSubmit = (values: FormType) => { + const handleSubmit = ( + values: z.infer, + ) => { mutate( { ...values, @@ -88,5 +87,3 @@ export const RegistrationForm = ({ invite }: RegistrationFormProps) => { ); }; - -type FormType = z.infer; diff --git a/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx b/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx index ec5edf3a5..d98d387b0 100644 --- a/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx +++ b/apps/nextjs/src/app/[locale]/auth/login/_login-form.tsx @@ -13,7 +13,7 @@ import { import { IconAlertTriangle } from "@tabler/icons-react"; import { signIn } from "@homarr/auth/client"; -import { useForm, zodResolver } from "@homarr/form"; +import { useZodForm } from "@homarr/form"; import { showErrorNotification, showSuccessNotification, @@ -27,15 +27,16 @@ export const LoginForm = () => { const router = useRouter(); const [isLoading, setIsLoading] = useState(false); const [error, setError] = useState(); - const form = useForm({ - validate: zodResolver(validation.user.signIn), + const form = useZodForm(validation.user.signIn, { initialValues: { name: "", password: "", }, }); - const handleSubmitAsync = async (values: FormType) => { + const handleSubmitAsync = async ( + values: z.infer, + ) => { setIsLoading(true); setError(undefined); await signIn("credentials", { @@ -92,5 +93,3 @@ export const LoginForm = () => { ); }; - -type FormType = z.infer; diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_background.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_background.tsx index 08c936336..a60f81395 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_background.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_background.tsx @@ -7,11 +7,12 @@ import { backgroundImageRepeats, backgroundImageSizes, } from "@homarr/definitions"; -import { useForm } from "@homarr/form"; +import { useZodForm } from "@homarr/form"; import type { TranslationObject } from "@homarr/translation"; import { useI18n } from "@homarr/translation/client"; import type { SelectItemWithDescriptionBadge } from "@homarr/ui"; import { SelectWithDescriptionBadge } from "@homarr/ui"; +import { validation } from "@homarr/validation"; import type { Board } from "../../_types"; import { useSavePartialSettingsMutation } from "./_shared"; @@ -23,7 +24,7 @@ export const BackgroundSettingsContent = ({ board }: Props) => { const t = useI18n(); const { mutate: savePartialSettings, isPending } = useSavePartialSettingsMutation(board); - const form = useForm({ + const form = useZodForm(validation.board.savePartialSettings, { initialValues: { backgroundImageUrl: board.backgroundImageUrl ?? "", backgroundImageAttachment: board.backgroundImageAttachment, diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_colors.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_colors.tsx index 4b38a2d5f..f80511d06 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_colors.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_colors.tsx @@ -17,8 +17,9 @@ import { } from "@mantine/core"; import { useDisclosure } from "@mantine/hooks"; -import { useForm } from "@homarr/form"; +import { useZodForm } from "@homarr/form"; import { useI18n } from "@homarr/translation/client"; +import { validation } from "@homarr/validation"; import type { Board } from "../../_types"; import { generateColors } from "../../(content)/_theme"; @@ -33,7 +34,7 @@ const hexRegex = /^#[0-9a-fA-F]{6}$/; const progressPercentageLabel = (value: number) => `${value}%`; export const ColorSettingsContent = ({ board }: Props) => { - const form = useForm({ + const form = useZodForm(validation.board.savePartialSettings, { initialValues: { primaryColor: board.primaryColor, secondaryColor: board.secondaryColor, @@ -114,15 +115,16 @@ export const ColorSettingsContent = ({ board }: Props) => { }; interface ColorsPreviewProps { - previewColor: string; + previewColor: string | undefined; } const ColorsPreview = ({ previewColor }: ColorsPreviewProps) => { const theme = useMantineTheme(); - const colors = hexRegex.test(previewColor) - ? generateColors(previewColor) - : generateColors("#000000"); + const colors = + previewColor && hexRegex.test(previewColor) + ? generateColors(previewColor) + : generateColors("#000000"); return ( diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx index d8e3eec82..a47624d9e 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_general.tsx @@ -17,8 +17,9 @@ import { } from "@mantine/hooks"; import { IconAlertTriangle } from "@tabler/icons-react"; -import { useForm } from "@homarr/form"; +import { useZodForm } from "@homarr/form"; import { useI18n } from "@homarr/translation/client"; +import { validation } from "@homarr/validation"; import type { Board } from "../../_types"; import { useUpdateBoard } from "../../(content)/_client"; @@ -38,20 +39,30 @@ export const GeneralSettingsContent = ({ board }: Props) => { const { mutate: savePartialSettings, isPending } = useSavePartialSettingsMutation(board); - const form = useForm({ - initialValues: { - pageTitle: board.pageTitle ?? "", - logoImageUrl: board.logoImageUrl ?? "", - metaTitle: board.metaTitle ?? "", - faviconImageUrl: board.faviconImageUrl ?? "", + const form = useZodForm( + validation.board.savePartialSettings + .pick({ + pageTitle: true, + logoImageUrl: true, + metaTitle: true, + faviconImageUrl: true, + }) + .required(), + { + initialValues: { + pageTitle: board.pageTitle ?? "", + logoImageUrl: board.logoImageUrl ?? "", + metaTitle: board.metaTitle ?? "", + faviconImageUrl: board.faviconImageUrl ?? "", + }, + onValuesChange({ pageTitle }) { + updateBoard((previous) => ({ + ...previous, + pageTitle, + })); + }, }, - onValuesChange({ pageTitle }) { - updateBoard((previous) => ({ - ...previous, - pageTitle, - })); - }, - }); + ); const metaTitleStatus = useMetaTitlePreview(form.values.metaTitle); const faviconStatus = useFaviconPreview(form.values.faviconImageUrl); diff --git a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_layout.tsx b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_layout.tsx index ea8865a7e..c4ed09d4c 100644 --- a/apps/nextjs/src/app/[locale]/boards/[name]/settings/_layout.tsx +++ b/apps/nextjs/src/app/[locale]/boards/[name]/settings/_layout.tsx @@ -2,8 +2,9 @@ import { Button, Grid, Group, Input, Slider, Stack } from "@mantine/core"; -import { useForm } from "@homarr/form"; +import { useZodForm } from "@homarr/form"; import { useI18n } from "@homarr/translation/client"; +import { validation } from "@homarr/validation"; import type { Board } from "../../_types"; import { useSavePartialSettingsMutation } from "./_shared"; @@ -15,11 +16,14 @@ export const LayoutSettingsContent = ({ board }: Props) => { const t = useI18n(); const { mutate: savePartialSettings, isPending } = useSavePartialSettingsMutation(board); - const form = useForm({ - initialValues: { - columnCount: board.columnCount, + const form = useZodForm( + validation.board.savePartialSettings.pick({ columnCount: true }).required(), + { + initialValues: { + columnCount: board.columnCount, + }, }, - }); + ); return (
{ const t = useScopedI18n("user"); const { mutateAsync, error, isPending } = clientApi.user.initUser.useMutation(); - const form = useForm({ - validate: zodResolver(validation.user.init), - validateInputOnBlur: true, - validateInputOnChange: true, + const form = useZodForm(validation.user.init, { initialValues: { username: "", password: "", diff --git a/apps/nextjs/src/app/[locale]/manage/apps/_form.tsx b/apps/nextjs/src/app/[locale]/manage/apps/_form.tsx index d024a9c36..0b0162659 100644 --- a/apps/nextjs/src/app/[locale]/manage/apps/_form.tsx +++ b/apps/nextjs/src/app/[locale]/manage/apps/_form.tsx @@ -3,7 +3,7 @@ import Link from "next/link"; import { Button, Group, Stack, Textarea, TextInput } from "@mantine/core"; -import { useForm, zodResolver } from "@homarr/form"; +import { useZodForm } from "@homarr/form"; import type { TranslationFunction } from "@homarr/translation"; import { useI18n } from "@homarr/translation/client"; import type { z } from "@homarr/validation"; @@ -25,14 +25,13 @@ export const AppForm = (props: AppFormProps) => { props; const t = useI18n(); - const form = useForm({ + const form = useZodForm(validation.app.manage, { initialValues: initialValues ?? { name: "", description: "", iconUrl: "", href: "", }, - validate: zodResolver(validation.app.manage), }); return ( @@ -41,9 +40,7 @@ export const AppForm = (props: AppFormProps) => { { - form.setFieldValue("iconUrl", iconUrl); - }} + {...form.getInputProps("iconUrl")} />