From 7716b976439d9ca7db8e822d03c13054ee4fbcc8 Mon Sep 17 00:00:00 2001 From: ameer2468 <33054370+ameer2468@users.noreply.github.com> Date: Mon, 3 Nov 2025 16:49:03 +0300 Subject: [PATCH 1/3] cleanup rpc --- .../(org)/dashboard/_components/Navbar/Items.tsx | 2 +- .../dashboard/_components/Navbar/SpacesList.tsx | 2 +- .../organization/components/DeleteOrgDialog.tsx | 13 ++++++------- packages/web-backend/src/Organisations/index.ts | 4 ++-- packages/web-domain/src/Organisation.ts | 11 ++++------- 5 files changed, 14 insertions(+), 18 deletions(-) diff --git a/apps/web/app/(org)/dashboard/_components/Navbar/Items.tsx b/apps/web/app/(org)/dashboard/_components/Navbar/Items.tsx index a7ad288067..fadb2c3282 100644 --- a/apps/web/app/(org)/dashboard/_components/Navbar/Items.tsx +++ b/apps/web/app/(org)/dashboard/_components/Navbar/Items.tsx @@ -411,7 +411,7 @@ const NavItem = ({ onMouseLeave={() => { iconRef.current?.stopAnimation(); }} - prefetch={false} + prefetch={true} passHref className={classNames( "relative border border-transparent transition z-3", diff --git a/apps/web/app/(org)/dashboard/_components/Navbar/SpacesList.tsx b/apps/web/app/(org)/dashboard/_components/Navbar/SpacesList.tsx index 7fddb1a685..2da198cbec 100644 --- a/apps/web/app/(org)/dashboard/_components/Navbar/SpacesList.tsx +++ b/apps/web/app/(org)/dashboard/_components/Navbar/SpacesList.tsx @@ -173,7 +173,7 @@ const SpacesList = ({ toggleMobileNav }: { toggleMobileNav?: () => void }) => { toggleMobileNav?.()} - prefetch={false} + prefetch={true} onMouseEnter={() => layersIconRef.current?.startAnimation()} onMouseLeave={() => layersIconRef.current?.stopAnimation()} href="/dashboard/spaces/browse" diff --git a/apps/web/app/(org)/dashboard/settings/organization/components/DeleteOrgDialog.tsx b/apps/web/app/(org)/dashboard/settings/organization/components/DeleteOrgDialog.tsx index 2c287bf361..ea25fa1af3 100644 --- a/apps/web/app/(org)/dashboard/settings/organization/components/DeleteOrgDialog.tsx +++ b/apps/web/app/(org)/dashboard/settings/organization/components/DeleteOrgDialog.tsx @@ -7,7 +7,6 @@ import { DialogTitle, Input, } from "@cap/ui"; -import type { Organisation } from "@cap/web-domain"; import { faTrashCan } from "@fortawesome/free-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Effect } from "effect"; @@ -28,10 +27,10 @@ const DeleteOrgDialog = ({ open, onOpenChange }: DeleteOrgDialogProps) => { const rpc = useRpcClient(); const inputId = useId(); const router = useRouter(); - const deleteOrg = useEffectMutation({ + const softDeleteOrg = useEffectMutation({ mutationFn: Effect.fn(function* () { if (!activeOrganization) return; - yield* rpc.OrganisationDelete({ + yield* rpc.OrganisationSoftDelete({ id: activeOrganization.organization.id, }); }), @@ -73,15 +72,15 @@ const DeleteOrgDialog = ({ open, onOpenChange }: DeleteOrgDialogProps) => { diff --git a/packages/web-backend/src/Organisations/index.ts b/packages/web-backend/src/Organisations/index.ts index fb7490e484..0e6c22bc20 100644 --- a/packages/web-backend/src/Organisations/index.ts +++ b/packages/web-backend/src/Organisations/index.ts @@ -48,7 +48,7 @@ export class Organisations extends Effect.Service()( } }); - const deleteOrg = Effect.fn("Organisations.deleteOrg")(function* ( + const softDelete = Effect.fn("Organisations.softDelete")(function* ( id: Organisation.OrganisationId, ) { const user = yield* CurrentUser; @@ -89,7 +89,7 @@ export class Organisations extends Effect.Service()( }), ); }); - return { update, deleteOrg }; + return { update, softDelete }; }), dependencies: [ ImageUploads.Default, diff --git a/packages/web-domain/src/Organisation.ts b/packages/web-domain/src/Organisation.ts index bc6dd0a185..8dcbebba18 100644 --- a/packages/web-domain/src/Organisation.ts +++ b/packages/web-domain/src/Organisation.ts @@ -23,11 +23,6 @@ export class Organisation extends Schema.Class("Organisation")({ name: Schema.String, }) {} -export const OrganisationDelete = Schema.Struct({ - id: OrganisationId, -}); -export type OrganisationDelete = Schema.Schema.Type; - export const OrganisationUpdate = Schema.Struct({ id: OrganisationId, image: Schema.optional(ImageUpdatePayload), @@ -39,8 +34,10 @@ export class OrganisationRpcs extends RpcGroup.make( payload: OrganisationUpdate, error: Schema.Union(InternalError, PolicyDeniedError, NotFoundError), }).middleware(RpcAuthMiddleware), - Rpc.make("OrganisationDelete", { - payload: OrganisationDelete, + Rpc.make("OrganisationSoftDelete", { + payload: Schema.Struct({ + id: OrganisationId, + }), error: Schema.Union(InternalError, PolicyDeniedError, NotFoundError), }).middleware(RpcAuthMiddleware), ) {} From 7daa964247627ffe9963d2dba318600c757fbfc8 Mon Sep 17 00:00:00 2001 From: ameer2468 <33054370+ameer2468@users.noreply.github.com> Date: Mon, 3 Nov 2025 16:49:17 +0300 Subject: [PATCH 2/3] naming --- packages/web-backend/src/Organisations/OrganisationsRpcs.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/web-backend/src/Organisations/OrganisationsRpcs.ts b/packages/web-backend/src/Organisations/OrganisationsRpcs.ts index 611a60a883..899139e26c 100644 --- a/packages/web-backend/src/Organisations/OrganisationsRpcs.ts +++ b/packages/web-backend/src/Organisations/OrganisationsRpcs.ts @@ -14,8 +14,8 @@ export const OrganisationsRpcsLive = Organisation.OrganisationRpcs.toLayer( S3Error: () => new InternalError({ type: "s3" }), }), ), - OrganisationDelete: (data) => - orgs.deleteOrg(data.id).pipe( + OrganisationSoftDelete: (data) => + orgs.softDelete(data.id).pipe( Effect.catchTags({ DatabaseError: () => new InternalError({ type: "database" }), }), From 01e1a8a724bc5db2cce9f0d693258a4441af4f88 Mon Sep 17 00:00:00 2001 From: ameer2468 <33054370+ameer2468@users.noreply.github.com> Date: Mon, 3 Nov 2025 17:18:31 +0300 Subject: [PATCH 3/3] add prefetch to dropdown --- apps/web/app/(org)/dashboard/_components/Navbar/Top.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/web/app/(org)/dashboard/_components/Navbar/Top.tsx b/apps/web/app/(org)/dashboard/_components/Navbar/Top.tsx index d166e0f857..3884e96c21 100644 --- a/apps/web/app/(org)/dashboard/_components/Navbar/Top.tsx +++ b/apps/web/app/(org)/dashboard/_components/Navbar/Top.tsx @@ -326,6 +326,7 @@ const MenuItem = memo(({ icon, name, href, onClick, iconClassName }: Props) => {