"use client" import { useState } from "react" import { Switch } from "@/components/ui/switch" import { setMemberApprovalRequired } from "@/actions" import { SINGLE_TENANT_ORG_DOMAIN } from "@/lib/constants" import { isServiceError } from "@/lib/utils" import { useToast } from "@/components/hooks/use-toast" import { InviteLinkToggle } from "@/app/components/inviteLinkToggle" interface MemberApprovalRequiredToggleProps { memberApprovalRequired: boolean inviteLinkEnabled: boolean inviteLink: string | null } export function MemberApprovalRequiredToggle({ memberApprovalRequired, inviteLinkEnabled, inviteLink }: MemberApprovalRequiredToggleProps) { const [enabled, setEnabled] = useState(memberApprovalRequired) const [isLoading, setIsLoading] = useState(false) const { toast } = useToast() const handleToggle = async (checked: boolean) => { setIsLoading(true) try { const result = await setMemberApprovalRequired(SINGLE_TENANT_ORG_DOMAIN, checked) if (isServiceError(result)) { toast({ title: "Error", description: "Failed to update member approval setting", variant: "destructive", }) return } setEnabled(checked) } catch (error) { console.error("Error updating member approval setting:", error) toast({ title: "Error", description: "Failed to update member approval setting", variant: "destructive", }) } finally { setIsLoading(false) } } return (
When enabled, new users will need approval from an organization owner before they can access your deployment.{" "} Learn More