From 39c35fa539dc59d969743e278eaa02e146e2c67d Mon Sep 17 00:00:00 2001 From: miloschwartz Date: Fri, 10 Jul 2026 17:05:45 -0400 Subject: [PATCH] reorganize components nad hooks for consistency --- .../resources/private/[niceId]/access/page.tsx | 2 +- .../resources/private/[niceId]/cidr/page.tsx | 12 ++++++------ .../resources/private/[niceId]/general/page.tsx | 2 +- .../resources/private/[niceId]/host/page.tsx | 12 ++++++------ .../resources/private/[niceId]/http/page.tsx | 10 +++++----- .../resources/private/[niceId]/ssh/page.tsx | 10 +++++----- .../settings/resources/private/create/page.tsx | 16 ++++++++++------ .../PrivateResourceAccessFields.tsx | 0 .../PrivateResourceDestinationFields.tsx | 0 .../PrivateResourceHttpFields.tsx | 0 .../PrivateResourceMultiSiteRoutingHelp.tsx | 0 .../PrivateResourcePortRanges.tsx | 0 .../PrivateResourceSitesField.tsx | 2 +- .../PrivateResourceSshFields.tsx | 6 +++--- .../private => hooks}/useSaveSiteResource.ts | 0 .../private => lib}/formControlUtils.ts | 0 .../private => lib}/privateResourceUtils.ts | 0 17 files changed, 38 insertions(+), 34 deletions(-) rename src/{app/[orgId]/settings/resources/private => components}/PrivateResourceAccessFields.tsx (100%) rename src/{app/[orgId]/settings/resources/private => components}/PrivateResourceDestinationFields.tsx (100%) rename src/{app/[orgId]/settings/resources/private => components}/PrivateResourceHttpFields.tsx (100%) rename src/{app/[orgId]/settings/resources/private => components}/PrivateResourceMultiSiteRoutingHelp.tsx (100%) rename src/{app/[orgId]/settings/resources/private => components}/PrivateResourcePortRanges.tsx (100%) rename src/{app/[orgId]/settings/resources/private => components}/PrivateResourceSitesField.tsx (98%) rename src/{app/[orgId]/settings/resources/private => components}/PrivateResourceSshFields.tsx (97%) rename src/{app/[orgId]/settings/resources/private => hooks}/useSaveSiteResource.ts (100%) rename src/{app/[orgId]/settings/resources/private => lib}/formControlUtils.ts (100%) rename src/{app/[orgId]/settings/resources/private => lib}/privateResourceUtils.ts (100%) diff --git a/src/app/[orgId]/settings/resources/private/[niceId]/access/page.tsx b/src/app/[orgId]/settings/resources/private/[niceId]/access/page.tsx index e09366329..70a6504c4 100644 --- a/src/app/[orgId]/settings/resources/private/[niceId]/access/page.tsx +++ b/src/app/[orgId]/settings/resources/private/[niceId]/access/page.tsx @@ -29,7 +29,7 @@ import { useQuery, useQueryClient } from "@tanstack/react-query"; import { useTranslations } from "next-intl"; import { useActionState, useEffect } from "react"; import { useForm } from "react-hook-form"; -import { PrivateResourceAccessFields } from "../../PrivateResourceAccessFields"; +import { PrivateResourceAccessFields } from "@app/components/PrivateResourceAccessFields"; export default function PrivateResourceAccessPage() { const t = useTranslations(); diff --git a/src/app/[orgId]/settings/resources/private/[niceId]/cidr/page.tsx b/src/app/[orgId]/settings/resources/private/[niceId]/cidr/page.tsx index 8064ec883..16e603c01 100644 --- a/src/app/[orgId]/settings/resources/private/[niceId]/cidr/page.tsx +++ b/src/app/[orgId]/settings/resources/private/[niceId]/cidr/page.tsx @@ -20,12 +20,12 @@ import { useTranslations } from "next-intl"; import { useActionState, useMemo, useState } from "react"; import { useForm } from "react-hook-form"; import { z } from "zod"; -import { PrivateResourceSitesField } from "../../PrivateResourceSitesField"; -import { PrivateResourceCidrDestinationField } from "../../PrivateResourceDestinationFields"; -import { PrivateResourcePortRanges } from "../../PrivateResourcePortRanges"; -import { buildSelectedSitesForResource } from "../../privateResourceUtils"; -import { asAnyControl, asAnySetValue } from "../../formControlUtils"; -import { useSaveSiteResource } from "../../useSaveSiteResource"; +import { PrivateResourceSitesField } from "@app/components/PrivateResourceSitesField"; +import { PrivateResourceCidrDestinationField } from "@app/components/PrivateResourceDestinationFields"; +import { PrivateResourcePortRanges } from "@app/components/PrivateResourcePortRanges"; +import { useSaveSiteResource } from "@app/hooks/useSaveSiteResource"; +import { asAnyControl, asAnySetValue } from "@app/lib/formControlUtils"; +import { buildSelectedSitesForResource } from "@app/lib/privateResourceUtils"; export default function PrivateResourceCidrPage() { const t = useTranslations(); diff --git a/src/app/[orgId]/settings/resources/private/[niceId]/general/page.tsx b/src/app/[orgId]/settings/resources/private/[niceId]/general/page.tsx index d14b9c3d5..8dbdb3809 100644 --- a/src/app/[orgId]/settings/resources/private/[niceId]/general/page.tsx +++ b/src/app/[orgId]/settings/resources/private/[niceId]/general/page.tsx @@ -30,7 +30,7 @@ import { useTranslations } from "next-intl"; import { useActionState, useMemo } from "react"; import { useForm } from "react-hook-form"; import { z } from "zod"; -import { useSaveSiteResource } from "../../useSaveSiteResource"; +import { useSaveSiteResource } from "@app/hooks/useSaveSiteResource"; export default function PrivateResourceGeneralPage() { const t = useTranslations(); diff --git a/src/app/[orgId]/settings/resources/private/[niceId]/host/page.tsx b/src/app/[orgId]/settings/resources/private/[niceId]/host/page.tsx index 73d4207cd..bb9734ad0 100644 --- a/src/app/[orgId]/settings/resources/private/[niceId]/host/page.tsx +++ b/src/app/[orgId]/settings/resources/private/[niceId]/host/page.tsx @@ -20,16 +20,16 @@ import { useTranslations } from "next-intl"; import { useActionState, useMemo, useState } from "react"; import { useForm } from "react-hook-form"; import { z } from "zod"; -import { PrivateResourceSitesField } from "../../PrivateResourceSitesField"; -import { PrivateResourceHostDestinationFields } from "../../PrivateResourceDestinationFields"; -import { PrivateResourcePortRanges } from "../../PrivateResourcePortRanges"; -import { buildSelectedSitesForResource } from "../../privateResourceUtils"; +import { PrivateResourceSitesField } from "@app/components/PrivateResourceSitesField"; +import { PrivateResourceHostDestinationFields } from "@app/components/PrivateResourceDestinationFields"; +import { PrivateResourcePortRanges } from "@app/components/PrivateResourcePortRanges"; +import { useSaveSiteResource } from "@app/hooks/useSaveSiteResource"; import { asAnyControl, asAnySetValue, asAnyWatch -} from "../../formControlUtils"; -import { useSaveSiteResource } from "../../useSaveSiteResource"; +} from "@app/lib/formControlUtils"; +import { buildSelectedSitesForResource } from "@app/lib/privateResourceUtils"; export default function PrivateResourceHostPage() { const t = useTranslations(); diff --git a/src/app/[orgId]/settings/resources/private/[niceId]/http/page.tsx b/src/app/[orgId]/settings/resources/private/[niceId]/http/page.tsx index 2bbd776e5..c1263c162 100644 --- a/src/app/[orgId]/settings/resources/private/[niceId]/http/page.tsx +++ b/src/app/[orgId]/settings/resources/private/[niceId]/http/page.tsx @@ -22,15 +22,15 @@ import { useTranslations } from "next-intl"; import { useActionState, useMemo, useState } from "react"; import { useForm } from "react-hook-form"; import { z } from "zod"; -import { PrivateResourceSitesField } from "../../PrivateResourceSitesField"; -import { PrivateResourceHttpFields } from "../../PrivateResourceHttpFields"; -import { buildSelectedSitesForResource } from "../../privateResourceUtils"; +import { PrivateResourceSitesField } from "@app/components/PrivateResourceSitesField"; +import { PrivateResourceHttpFields } from "@app/components/PrivateResourceHttpFields"; +import { useSaveSiteResource } from "@app/hooks/useSaveSiteResource"; import { asAnyControl, asAnySetValue, asAnyWatch -} from "../../formControlUtils"; -import { useSaveSiteResource } from "../../useSaveSiteResource"; +} from "@app/lib/formControlUtils"; +import { buildSelectedSitesForResource } from "@app/lib/privateResourceUtils"; export default function PrivateResourceHttpPage() { const t = useTranslations(); diff --git a/src/app/[orgId]/settings/resources/private/[niceId]/ssh/page.tsx b/src/app/[orgId]/settings/resources/private/[niceId]/ssh/page.tsx index 6de4082b6..9a739a073 100644 --- a/src/app/[orgId]/settings/resources/private/[niceId]/ssh/page.tsx +++ b/src/app/[orgId]/settings/resources/private/[niceId]/ssh/page.tsx @@ -26,15 +26,15 @@ import { useTranslations } from "next-intl"; import { useActionState, useMemo, useState } from "react"; import { useForm } from "react-hook-form"; import { z } from "zod"; -import { PrivateResourceSshFields } from "../../PrivateResourceSshFields"; -import { buildSelectedSitesForResource } from "../../privateResourceUtils"; +import { PrivateResourceSshFields } from "@app/components/PrivateResourceSshFields"; +import type { Selectedsite } from "@app/components/site-selector"; +import { useSaveSiteResource } from "@app/hooks/useSaveSiteResource"; import { asAnyControl, asAnySetValue, asAnyWatch -} from "../../formControlUtils"; -import { useSaveSiteResource } from "../../useSaveSiteResource"; -import type { Selectedsite } from "@app/components/site-selector"; +} from "@app/lib/formControlUtils"; +import { buildSelectedSitesForResource } from "@app/lib/privateResourceUtils"; export default function PrivateResourceSshPage() { const t = useTranslations(); diff --git a/src/app/[orgId]/settings/resources/private/create/page.tsx b/src/app/[orgId]/settings/resources/private/create/page.tsx index 49b40e3c9..7e6144172 100644 --- a/src/app/[orgId]/settings/resources/private/create/page.tsx +++ b/src/app/[orgId]/settings/resources/private/create/page.tsx @@ -50,16 +50,20 @@ import { useParams, useRouter, useSearchParams } from "next/navigation"; import { useEffect, useMemo, useState, useTransition } from "react"; import { useForm } from "react-hook-form"; import { z } from "zod"; -import { PrivateResourceSitesField } from "../PrivateResourceSitesField"; -import { PrivateResourceHttpFields } from "../PrivateResourceHttpFields"; -import { PrivateResourceSshFields } from "../PrivateResourceSshFields"; -import { PrivateResourcePortRanges } from "../PrivateResourcePortRanges"; +import { PrivateResourceSitesField } from "@app/components/PrivateResourceSitesField"; +import { PrivateResourceHttpFields } from "@app/components/PrivateResourceHttpFields"; +import { PrivateResourceSshFields } from "@app/components/PrivateResourceSshFields"; +import { PrivateResourcePortRanges } from "@app/components/PrivateResourcePortRanges"; import { PrivateResourceAliasField, PrivateResourceCidrDestinationField, PrivateResourceHostDestinationFields -} from "../PrivateResourceDestinationFields"; -import { asAnyControl, asAnySetValue, asAnyWatch } from "../formControlUtils"; +} from "@app/components/PrivateResourceDestinationFields"; +import { + asAnyControl, + asAnySetValue, + asAnyWatch +} from "@app/lib/formControlUtils"; export default function CreatePrivateResourcePage() { const params = useParams(); diff --git a/src/app/[orgId]/settings/resources/private/PrivateResourceAccessFields.tsx b/src/components/PrivateResourceAccessFields.tsx similarity index 100% rename from src/app/[orgId]/settings/resources/private/PrivateResourceAccessFields.tsx rename to src/components/PrivateResourceAccessFields.tsx diff --git a/src/app/[orgId]/settings/resources/private/PrivateResourceDestinationFields.tsx b/src/components/PrivateResourceDestinationFields.tsx similarity index 100% rename from src/app/[orgId]/settings/resources/private/PrivateResourceDestinationFields.tsx rename to src/components/PrivateResourceDestinationFields.tsx diff --git a/src/app/[orgId]/settings/resources/private/PrivateResourceHttpFields.tsx b/src/components/PrivateResourceHttpFields.tsx similarity index 100% rename from src/app/[orgId]/settings/resources/private/PrivateResourceHttpFields.tsx rename to src/components/PrivateResourceHttpFields.tsx diff --git a/src/app/[orgId]/settings/resources/private/PrivateResourceMultiSiteRoutingHelp.tsx b/src/components/PrivateResourceMultiSiteRoutingHelp.tsx similarity index 100% rename from src/app/[orgId]/settings/resources/private/PrivateResourceMultiSiteRoutingHelp.tsx rename to src/components/PrivateResourceMultiSiteRoutingHelp.tsx diff --git a/src/app/[orgId]/settings/resources/private/PrivateResourcePortRanges.tsx b/src/components/PrivateResourcePortRanges.tsx similarity index 100% rename from src/app/[orgId]/settings/resources/private/PrivateResourcePortRanges.tsx rename to src/components/PrivateResourcePortRanges.tsx diff --git a/src/app/[orgId]/settings/resources/private/PrivateResourceSitesField.tsx b/src/components/PrivateResourceSitesField.tsx similarity index 98% rename from src/app/[orgId]/settings/resources/private/PrivateResourceSitesField.tsx rename to src/components/PrivateResourceSitesField.tsx index 1490db5af..0b0b930cb 100644 --- a/src/app/[orgId]/settings/resources/private/PrivateResourceSitesField.tsx +++ b/src/components/PrivateResourceSitesField.tsx @@ -23,7 +23,7 @@ import { import { ChevronsUpDown } from "lucide-react"; import { useTranslations } from "next-intl"; import type { Control, FieldPath, FieldValues } from "react-hook-form"; -import { PrivateResourceMultiSiteRoutingHelp } from "./PrivateResourceMultiSiteRoutingHelp"; +import { PrivateResourceMultiSiteRoutingHelp } from "@app/components/PrivateResourceMultiSiteRoutingHelp"; type PrivateResourceSitesFieldProps = { control: Control; diff --git a/src/app/[orgId]/settings/resources/private/PrivateResourceSshFields.tsx b/src/components/PrivateResourceSshFields.tsx similarity index 97% rename from src/app/[orgId]/settings/resources/private/PrivateResourceSshFields.tsx rename to src/components/PrivateResourceSshFields.tsx index e61ed2292..edfdde5de 100644 --- a/src/app/[orgId]/settings/resources/private/PrivateResourceSshFields.tsx +++ b/src/components/PrivateResourceSshFields.tsx @@ -9,10 +9,10 @@ import { } from "@app/components/Settings"; import { PaidFeaturesAlert } from "@app/components/PaidFeaturesAlert"; import { SshServerSettingsFields } from "@app/components/SshServerSettingsFields"; -import { PrivateResourceAliasField } from "./PrivateResourceDestinationFields"; -import { PrivateResourceSitesField } from "./PrivateResourceSitesField"; -import { getSshUseMultiSiteTargetForm } from "./privateResourceUtils"; +import { PrivateResourceAliasField } from "@app/components/PrivateResourceDestinationFields"; +import { PrivateResourceSitesField } from "@app/components/PrivateResourceSitesField"; import { inferSshPamMode } from "@app/lib/privateResourceForm"; +import { getSshUseMultiSiteTargetForm } from "@app/lib/privateResourceUtils"; import { FormControl, FormField, diff --git a/src/app/[orgId]/settings/resources/private/useSaveSiteResource.ts b/src/hooks/useSaveSiteResource.ts similarity index 100% rename from src/app/[orgId]/settings/resources/private/useSaveSiteResource.ts rename to src/hooks/useSaveSiteResource.ts diff --git a/src/app/[orgId]/settings/resources/private/formControlUtils.ts b/src/lib/formControlUtils.ts similarity index 100% rename from src/app/[orgId]/settings/resources/private/formControlUtils.ts rename to src/lib/formControlUtils.ts diff --git a/src/app/[orgId]/settings/resources/private/privateResourceUtils.ts b/src/lib/privateResourceUtils.ts similarity index 100% rename from src/app/[orgId]/settings/resources/private/privateResourceUtils.ts rename to src/lib/privateResourceUtils.ts