From d70da2aa703a52ae047e71cd7ca2c60837bfe933 Mon Sep 17 00:00:00 2001 From: Fred KISSIE Date: Thu, 4 Dec 2025 00:51:40 +0100 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20fix=20paths?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../[clientId]/credentials/page.tsx | 46 +++++++++++-------- .../{ => machine}/[clientId]/general/page.tsx | 29 ++++++------ .../{ => machine}/[clientId]/layout.tsx | 43 +++++++++-------- .../clients/{ => machine}/[clientId]/page.tsx | 4 +- src/components/MachineClientsTable.tsx | 4 +- 5 files changed, 66 insertions(+), 60 deletions(-) rename src/app/[orgId]/settings/clients/{ => machine}/[clientId]/credentials/page.tsx (88%) rename src/app/[orgId]/settings/clients/{ => machine}/[clientId]/general/page.tsx (95%) rename src/app/[orgId]/settings/clients/{ => machine}/[clientId]/layout.tsx (76%) rename src/app/[orgId]/settings/clients/{ => machine}/[clientId]/page.tsx (67%) diff --git a/src/app/[orgId]/settings/clients/[clientId]/credentials/page.tsx b/src/app/[orgId]/settings/clients/machine/[clientId]/credentials/page.tsx similarity index 88% rename from src/app/[orgId]/settings/clients/[clientId]/credentials/page.tsx rename to src/app/[orgId]/settings/clients/machine/[clientId]/credentials/page.tsx index f14d49e4..42120319 100644 --- a/src/app/[orgId]/settings/clients/[clientId]/credentials/page.tsx +++ b/src/app/[orgId]/settings/clients/machine/[clientId]/credentials/page.tsx @@ -1,6 +1,6 @@ "use client"; -import { useState } from "react"; +import RegenerateCredentialsModal from "@app/components/RegenerateCredentialsModal"; import { SettingsContainer, SettingsSection, @@ -10,18 +10,23 @@ import { SettingsSectionTitle } from "@app/components/Settings"; import { Button } from "@app/components/ui/button"; -import { createApiClient, formatAxiosError } from "@app/lib/api"; -import { useEnvContext } from "@app/hooks/useEnvContext"; -import { toast } from "@app/hooks/useToast"; -import { useParams, useRouter } from "next/navigation"; -import { useTranslations } from "next-intl"; -import { PickClientDefaultsResponse } from "@server/routers/client"; +import { + Tooltip, + TooltipContent, + TooltipProvider, + TooltipTrigger +} from "@app/components/ui/tooltip"; import { useClientContext } from "@app/hooks/useClientContext"; -import RegenerateCredentialsModal from "@app/components/RegenerateCredentialsModal"; -import { build } from "@server/build"; +import { useEnvContext } from "@app/hooks/useEnvContext"; import { useLicenseStatusContext } from "@app/hooks/useLicenseStatusContext"; import { useSubscriptionStatusContext } from "@app/hooks/useSubscriptionStatusContext"; -import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@app/components/ui/tooltip"; +import { toast } from "@app/hooks/useToast"; +import { createApiClient } from "@app/lib/api"; +import { build } from "@server/build"; +import { PickClientDefaultsResponse } from "@server/routers/client"; +import { useTranslations } from "next-intl"; +import { useParams, useRouter } from "next/navigation"; +import { useState } from "react"; export default function CredentialsPage() { const { env } = useEnvContext(); @@ -32,7 +37,8 @@ export default function CredentialsPage() { const { client } = useClientContext(); const [modalOpen, setModalOpen] = useState(false); - const [clientDefaults, setClientDefaults] = useState(null); + const [clientDefaults, setClientDefaults] = + useState(null); const { licenseStatus, isUnlocked } = useLicenseStatusContext(); const subscription = useSubscriptionStatusContext(); @@ -44,18 +50,19 @@ export default function CredentialsPage() { return isEnterpriseNotLicensed || isSaasNotSubscribed; }; - const handleConfirmRegenerate = async () => { - const res = await api.get(`/org/${orgId}/pick-client-defaults`); if (res && res.status === 200) { const data = res.data.data; setClientDefaults(data); - await api.post(`/re-key/${client?.clientId}/regenerate-client-secret`, { - olmId: data.olmId, - secret: data.olmSecret, - }); + await api.post( + `/re-key/${client?.clientId}/regenerate-client-secret`, + { + olmId: data.olmId, + secret: data.olmSecret + } + ); toast({ title: t("credentialsSaved"), @@ -95,7 +102,8 @@ export default function CredentialsPage() {
@@ -121,4 +129,4 @@ export default function CredentialsPage() { /> ); -} \ No newline at end of file +} diff --git a/src/app/[orgId]/settings/clients/[clientId]/general/page.tsx b/src/app/[orgId]/settings/clients/machine/[clientId]/general/page.tsx similarity index 95% rename from src/app/[orgId]/settings/clients/[clientId]/general/page.tsx rename to src/app/[orgId]/settings/clients/machine/[clientId]/general/page.tsx index 3ad25ca1..63d88593 100644 --- a/src/app/[orgId]/settings/clients/[clientId]/general/page.tsx +++ b/src/app/[orgId]/settings/clients/machine/[clientId]/general/page.tsx @@ -1,40 +1,37 @@ "use client"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { z } from "zod"; import { Button } from "@/components/ui/button"; import { Form, FormControl, - FormDescription, FormField, FormItem, FormLabel, FormMessage } from "@/components/ui/form"; import { Input } from "@/components/ui/input"; -import { useClientContext } from "@app/hooks/useClientContext"; -import { useForm } from "react-hook-form"; -import { toast } from "@app/hooks/useToast"; -import { useRouter } from "next/navigation"; import { SettingsContainer, SettingsSection, - SettingsSectionHeader, - SettingsSectionTitle, - SettingsSectionDescription, SettingsSectionBody, + SettingsSectionDescription, + SettingsSectionFooter, SettingsSectionForm, - SettingsSectionFooter + SettingsSectionHeader, + SettingsSectionTitle } from "@app/components/Settings"; -import { formatAxiosError } from "@app/lib/api"; -import { createApiClient } from "@app/lib/api"; +import { useClientContext } from "@app/hooks/useClientContext"; import { useEnvContext } from "@app/hooks/useEnvContext"; -import { useEffect, useState } from "react"; -import { Tag, TagInput } from "@app/components/tags/tag-input"; -import { AxiosResponse } from "axios"; +import { toast } from "@app/hooks/useToast"; +import { createApiClient, formatAxiosError } from "@app/lib/api"; +import { zodResolver } from "@hookform/resolvers/zod"; import { ListSitesResponse } from "@server/routers/site"; +import { AxiosResponse } from "axios"; import { useTranslations } from "next-intl"; +import { useRouter } from "next/navigation"; +import { useEffect, useState } from "react"; +import { useForm } from "react-hook-form"; +import { z } from "zod"; const GeneralFormSchema = z.object({ name: z.string().nonempty("Name is required") diff --git a/src/app/[orgId]/settings/clients/[clientId]/layout.tsx b/src/app/[orgId]/settings/clients/machine/[clientId]/layout.tsx similarity index 76% rename from src/app/[orgId]/settings/clients/[clientId]/layout.tsx rename to src/app/[orgId]/settings/clients/machine/[clientId]/layout.tsx index 257cb20f..a51a003d 100644 --- a/src/app/[orgId]/settings/clients/[clientId]/layout.tsx +++ b/src/app/[orgId]/settings/clients/machine/[clientId]/layout.tsx @@ -1,19 +1,19 @@ -import { internal } from "@app/lib/api"; -import { AxiosResponse } from "axios"; -import { authCookieHeader } from "@app/lib/api/cookies"; -import SettingsSectionTitle from "@app/components/SettingsSectionTitle"; -import { GetClientResponse } from "@server/routers/client"; -import ClientInfoCard from "../../../../../components/ClientInfoCard"; -import ClientProvider from "@app/providers/ClientProvider"; -import { redirect } from "next/navigation"; +import ClientInfoCard from "@app/components/ClientInfoCard"; import { HorizontalTabs } from "@app/components/HorizontalTabs"; -import { getTranslations } from "next-intl/server"; +import SettingsSectionTitle from "@app/components/SettingsSectionTitle"; +import { internal } from "@app/lib/api"; +import { authCookieHeader } from "@app/lib/api/cookies"; +import ClientProvider from "@app/providers/ClientProvider"; import { build } from "@server/build"; +import { GetClientResponse } from "@server/routers/client"; +import { AxiosResponse } from "axios"; +import { getTranslations } from "next-intl/server"; +import { redirect } from "next/navigation"; type SettingsLayoutProps = { children: React.ReactNode; params: Promise<{ clientId: number | string; orgId: string }>; -} +}; export default async function SettingsLayout(props: SettingsLayoutProps) { const params = await props.params; @@ -36,16 +36,17 @@ export default async function SettingsLayout(props: SettingsLayoutProps) { const navItems = [ { - title: t('general'), - href: `/{orgId}/settings/clients/{clientId}/general` + title: t("general"), + href: `/{orgId}/settings/clients/machine/{clientId}/general` }, - ...(build === 'enterprise' - ? [{ - title: t('credentials'), - href: `/{orgId}/settings/clients/{clientId}/credentials` - }, - ] - : []), + ...(build === "enterprise" + ? [ + { + title: t("credentials"), + href: `/{orgId}/settings/clients/machine/{clientId}/credentials` + } + ] + : []) ]; return ( @@ -58,9 +59,7 @@ export default async function SettingsLayout(props: SettingsLayoutProps) {
- - {children} - + {children}
diff --git a/src/app/[orgId]/settings/clients/[clientId]/page.tsx b/src/app/[orgId]/settings/clients/machine/[clientId]/page.tsx similarity index 67% rename from src/app/[orgId]/settings/clients/[clientId]/page.tsx rename to src/app/[orgId]/settings/clients/machine/[clientId]/page.tsx index cbe9fb97..c59f6920 100644 --- a/src/app/[orgId]/settings/clients/[clientId]/page.tsx +++ b/src/app/[orgId]/settings/clients/machine/[clientId]/page.tsx @@ -4,5 +4,7 @@ export default async function ClientPage(props: { params: Promise<{ orgId: string; clientId: number | string }>; }) { const params = await props.params; - redirect(`/${params.orgId}/settings/clients/${params.clientId}/general`); + redirect( + `/${params.orgId}/settings/clients/machine/${params.clientId}/general` + ); } diff --git a/src/components/MachineClientsTable.tsx b/src/components/MachineClientsTable.tsx index 851f693b..4695844e 100644 --- a/src/components/MachineClientsTable.tsx +++ b/src/components/MachineClientsTable.tsx @@ -369,10 +369,10 @@ export default function MachineClientsTable({