diff --git a/packages/features/ee/organizations/pages/settings/appearance.tsx b/packages/features/ee/organizations/pages/settings/appearance.tsx index 2658f2406d..7c9c76e19d 100644 --- a/packages/features/ee/organizations/pages/settings/appearance.tsx +++ b/packages/features/ee/organizations/pages/settings/appearance.tsx @@ -1,5 +1,6 @@ "use client"; +import { useSession } from "next-auth/react"; import { useRouter } from "next/navigation"; import { useState, useEffect } from "react"; import { useForm } from "react-hook-form"; @@ -212,6 +213,8 @@ const OrgAppearanceView = ({ const OrgAppearanceViewWrapper = () => { const router = useRouter(); const { t } = useLocale(); + const session = useSession(); + const orgRole = session?.data?.user?.org?.role; const { data: currentOrg, isPending, error } = trpc.viewer.organizations.listCurrent.useQuery(); useEffect( @@ -229,9 +232,7 @@ const OrgAppearanceViewWrapper = () => { if (!currentOrg) return null; - const isAdminOrOwner = - currentOrg && - (currentOrg.user.role === MembershipRole.OWNER || currentOrg.user.role === MembershipRole.ADMIN); + const isAdminOrOwner = orgRole === MembershipRole.OWNER || orgRole === MembershipRole.ADMIN; return ; }; diff --git a/packages/features/ee/organizations/pages/settings/general.tsx b/packages/features/ee/organizations/pages/settings/general.tsx index cfb4473ec2..51339f8c4c 100644 --- a/packages/features/ee/organizations/pages/settings/general.tsx +++ b/packages/features/ee/organizations/pages/settings/general.tsx @@ -1,5 +1,6 @@ "use client"; +import { useSession } from "next-auth/react"; import { useRouter } from "next/navigation"; import { useEffect } from "react"; import { Controller, useForm } from "react-hook-form"; @@ -52,6 +53,8 @@ interface GeneralViewProps { const OrgGeneralView = () => { const { t } = useLocale(); const router = useRouter(); + const session = useSession(); + const orgRole = session?.data?.user?.org?.role; const { data: currentOrg, @@ -73,8 +76,7 @@ const OrgGeneralView = () => { if (!currentOrg) { return null; } - const isAdminOrOwner = - currentOrg.user.role === MembershipRole.OWNER || currentOrg.user.role === MembershipRole.ADMIN; + const isAdminOrOwner = orgRole === MembershipRole.OWNER || orgRole === MembershipRole.ADMIN; return ( @@ -84,7 +86,7 @@ const OrgGeneralView = () => { localeProp={user?.locale ?? "en"} /> - + ); }; diff --git a/packages/features/ee/sso/page/orgs-sso-view.tsx b/packages/features/ee/sso/page/orgs-sso-view.tsx index ea27d90ff8..9d42e9e0f6 100644 --- a/packages/features/ee/sso/page/orgs-sso-view.tsx +++ b/packages/features/ee/sso/page/orgs-sso-view.tsx @@ -1,11 +1,9 @@ "use client"; -import { useRouter } from "next/navigation"; -import { useEffect } from "react"; +import { useSession } from "next-auth/react"; import { useLocale } from "@calcom/lib/hooks/useLocale"; import { MembershipRole } from "@calcom/prisma/enums"; -import { trpc } from "@calcom/trpc/react"; import { AppSkeletonLoader as SkeletonLoader, Meta } from "@calcom/ui"; import { getLayout } from "../../../settings/layouts/SettingsLayout"; @@ -13,36 +11,23 @@ import SSOConfiguration from "../components/SSOConfiguration"; const SAMLSSO = () => { const { t } = useLocale(); - const router = useRouter(); - const { - data: currentOrg, - isPending, - error, - } = trpc.viewer.organizations.listCurrent.useQuery(undefined, {}); + const { data, status } = useSession(); + const org = data?.user.org; - useEffect( - function refactorMeWithoutEffect() { - if (error) { - router.push("/settings"); - } - }, - [error] - ); - - if (isPending) + if (status === "loading") ; - if (!currentOrg) { + + if (!org) { return null; } - const isAdminOrOwner = - currentOrg.user.role === MembershipRole.OWNER || currentOrg.user.role === MembershipRole.ADMIN; + const isAdminOrOwner = org.role === MembershipRole.OWNER || org.role === MembershipRole.ADMIN; - return isAdminOrOwner ? ( + return !!isAdminOrOwner ? (
- +
) : (
diff --git a/packages/features/ee/teams/components/AddNewTeamMembers.tsx b/packages/features/ee/teams/components/AddNewTeamMembers.tsx index e3508b3fee..95cbce921a 100644 --- a/packages/features/ee/teams/components/AddNewTeamMembers.tsx +++ b/packages/features/ee/teams/components/AddNewTeamMembers.tsx @@ -236,10 +236,8 @@ const PendingMemberItem = (props: { member: TeamMember; index: number; teamId: n const { t } = useLocale(); const utils = trpc.useUtils(); const session = useSession(); + const orgRole = session?.data?.user.org?.role; const bookerUrl = member.bookerUrl; - const { data: currentOrg } = trpc.viewer.organizations.listCurrent.useQuery(undefined, { - enabled: !!session.data?.user?.org, - }); const removeMemberMutation = trpc.viewer.teams.removeMember.useMutation({ async onSuccess() { await utils.viewer.teams.get.invalidate(); @@ -251,9 +249,7 @@ const PendingMemberItem = (props: { member: TeamMember; index: number; teamId: n }, }); - const isOrgAdminOrOwner = - currentOrg && - (currentOrg.user.role === MembershipRole.OWNER || currentOrg.user.role === MembershipRole.ADMIN); + const isOrgAdminOrOwner = orgRole === MembershipRole.OWNER || orgRole === MembershipRole.ADMIN; return (
  • { const router = useRouter(); const session = useSession(); + const org = session?.data?.user.org; const utils = trpc.useUtils(); const params = useParamsWithFallback(); @@ -91,9 +92,6 @@ const MembersView = () => { const showDialog = searchParams?.get("inviteModal") === "true"; const [showMemberInvitationModal, setShowMemberInvitationModal] = useState(showDialog); const [showInviteLinkSettingsModal, setInviteLinkSettingsModal] = useState(false); - const { data: currentOrg } = trpc.viewer.organizations.listCurrent.useQuery(undefined, { - enabled: !!session.data?.user?.org, - }); const { data: orgMembersNotInThisTeam, isPending: isOrgListLoading } = trpc.viewer.organizations.getMembers.useQuery( @@ -134,9 +132,7 @@ const MembersView = () => { const isAdmin = team && (team.membership.role === MembershipRole.OWNER || team.membership.role === MembershipRole.ADMIN); - const isOrgAdminOrOwner = - currentOrg && - (currentOrg.user.role === MembershipRole.OWNER || currentOrg.user.role === MembershipRole.ADMIN); + const isOrgAdminOrOwner = org?.role === MembershipRole.OWNER || org?.role === MembershipRole.ADMIN; return ( <> diff --git a/packages/features/users/components/UserTable/EditSheet/EditUserForm.tsx b/packages/features/users/components/UserTable/EditSheet/EditUserForm.tsx index 15acf18b09..c2bb0d0c28 100644 --- a/packages/features/users/components/UserTable/EditSheet/EditUserForm.tsx +++ b/packages/features/users/components/UserTable/EditSheet/EditUserForm.tsx @@ -1,4 +1,5 @@ import { zodResolver } from "@hookform/resolvers/zod"; +import { useSession } from "next-auth/react"; import type { Dispatch } from "react"; import { useMemo } from "react"; import { Controller, useForm } from "react-hook-form"; @@ -55,6 +56,8 @@ export function EditForm({ }) { const [setMutationLoading] = useEditMode((state) => [state.setMutationloading], shallow); const { t } = useLocale(); + const session = useSession(); + const org = session?.data?.user?.org; const utils = trpc.useUtils(); const form = useForm({ resolver: zodResolver(editSchema), @@ -69,8 +72,7 @@ export function EditForm({ }, }); - const { data: currentMembership } = trpc.viewer.organizations.listCurrent.useQuery(); - const isOwner = currentMembership?.user.role === MembershipRole.OWNER; + const isOwner = org?.role === MembershipRole.OWNER; const membershipOptions = useMemo(() => { const options: MembershipOption[] = [