Files
calendar/packages/features/ee/teams/components/MakeTeamPrivateSwitch.tsx
5a59bb86cd feat: blocklist table (#24459)
* feat: blocklist table

* feat: blocklist table

* refactor: feedback

* chore: add select

* UI improvements

* chore: remove un unsed

---------

Co-authored-by: CarinaWolli <[email protected]>
2025-10-15 11:20:49 +00:00

55 lines
1.5 KiB
TypeScript

import { useState } from "react";
import { useLocale } from "@calcom/lib/hooks/useLocale";
import { trpc } from "@calcom/trpc/react";
import { SettingsToggle } from "@calcom/ui/components/form";
import { showToast } from "@calcom/ui/components/toast";
const MakeTeamPrivateSwitch = ({
teamId,
isPrivate,
disabled,
isOrg,
}: {
teamId: number;
isPrivate: boolean;
disabled: boolean;
isOrg: boolean;
}) => {
const { t } = useLocale();
const utils = trpc.useUtils();
const mutation = trpc.viewer.teams.update.useMutation({
onError: (err) => {
showToast(err.message, "error");
},
async onSuccess() {
await utils.viewer.teams.get.invalidate();
showToast(t(isOrg ? "your_org_updated_successfully" : "your_team_updated_successfully"), "success");
},
});
const [isTeamPrivate, setTeamPrivate] = useState(isPrivate);
return (
<>
<SettingsToggle
toggleSwitchAtTheEnd={true}
title={t(isOrg ? "make_org_private" : "make_team_private")}
labelClassName="text-sm"
disabled={disabled || mutation?.isPending}
description={t(isOrg ? "make_org_private_description" : "make_team_private_description")}
checked={isTeamPrivate}
onCheckedChange={(checked) => {
setTeamPrivate(checked);
mutation.mutate({ id: teamId, isPrivate: checked });
}}
data-testid="make-team-private-check"
/>
</>
);
};
export default MakeTeamPrivateSwitch;