import { useFetcher } from "react-router"; import { Switch } from "~/components/ui/switch"; import { Label } from "~/components/ui/label"; type Props = { discordPingEnabled: boolean; hasDiscordLinked: boolean; draftEmailNotificationsEnabled: boolean; success?: boolean; error?: string; onNavigateToAccount: () => void; }; export function NotificationsSection({ discordPingEnabled, hasDiscordLinked, draftEmailNotificationsEnabled, success, error, onNavigateToAccount }: Props) { const discordFetcher = useFetcher(); const emailFetcher = useFetcher(); const optimisticDiscordEnabled = discordFetcher.state !== "idle" ? discordFetcher.formData?.get("discordPingEnabled") === "true" : discordPingEnabled; const optimisticEmailEnabled = emailFetcher.state !== "idle" ? emailFetcher.formData?.get("draftEmailNotificationsEnabled") === "true" : draftEmailNotificationsEnabled; const handleDiscordToggle = (checked: boolean) => { discordFetcher.submit( { intent: "update-discord-ping", discordPingEnabled: String(checked) }, { method: "post" } ); }; const handleEmailToggle = (checked: boolean) => { emailFetcher.submit( { intent: "update-email-draft-notifications", draftEmailNotificationsEnabled: String(checked) }, { method: "post" } ); }; return (
Manage how you receive league notifications.
Receive an email when it's your turn to pick in a draft. If you have back-to-back picks, you'll get a single email letting you know.
Email notification preference saved.
)}Link your Discord account in{" "} {" "} to enable Discord pings for league notifications.
) : ( <>When enabled, you'll be @mentioned in league Discord notifications and your Discord display name will appear in place of your brackt username.
Notification preference saved.
)} {error && ({error}
)} > )}