import { SponsorDashboardHeader } from '@/components/sponsors/SponsorDashboardHeader'; import { Box } from '@/ui/Box'; import { Button } from '@/ui/Button'; import { Card } from '@/ui/Card'; import { Container } from '@/ui/Container'; import { FormField } from '@/ui/FormField'; import { Heading } from '@/ui/Heading'; import { Icon } from '@/ui/Icon'; import { Input } from '@/ui/Input'; import { Stack } from '@/ui/Stack'; import { Text } from '@/ui/Text'; import { Toggle } from '@/ui/Toggle'; import { AlertCircle, Bell, Building2, RefreshCw, Save } from 'lucide-react'; import React from 'react'; import { ViewData } from '@/lib/contracts/view-data/ViewData'; export interface SponsorSettingsViewData extends ViewData { profile: { companyName: string; contactName: string; contactEmail: string; description: string; industry: string; }; notifications: { emailNewSponsorships: boolean; emailWeeklyReport: boolean; emailPaymentAlerts: boolean; }; privacy: { publicProfile: boolean; showStats: boolean; showActiveSponsorships: boolean; allowDirectContact: boolean; }; } interface SponsorSettingsTemplateProps { viewData: SponsorSettingsViewData; profile: { companyName: string; contactName: string; contactEmail: string; description: string; industry: string; }; setProfile: (profile: { companyName: string; contactName: string; contactEmail: string; description: string; industry: string; }) => void; notifications: { emailNewSponsorships: boolean; emailWeeklyReport: boolean; emailPaymentAlerts: boolean; }; setNotifications: (notifications: { emailNewSponsorships: boolean; emailWeeklyReport: boolean; emailPaymentAlerts: boolean; }) => void; onSaveProfile: () => void | Promise; onDeleteAccount: () => void | Promise; saving: boolean; saved: boolean; } export function SponsorSettingsTemplate({ profile, setProfile, notifications, setNotifications, onSaveProfile, onDeleteAccount, saving, }: SponsorSettingsTemplateProps) { return ( console.log('Refresh')} /> {/* Company Profile */} }> Company Profile setProfile({ ...profile, companyName: e.target.value })} /> setProfile({ ...profile, industry: e.target.value })} /> setProfile({ ...profile, contactName: e.target.value })} /> setProfile({ ...profile, contactEmail: e.target.value })} /> ) => setProfile({ ...profile, description: e.target.value })} w="full" p={3} rounded="lg" border borderColor="border-charcoal-outline" bg="bg-iron-gray/50" color="text-white" outline="none" focusBorderColor="border-primary-blue" /> {/* Notifications */} }> Notifications setNotifications({ ...notifications, emailNewSponsorships: checked })} /> setNotifications({ ...notifications, emailWeeklyReport: checked })} /> setNotifications({ ...notifications, emailPaymentAlerts: checked })} /> {/* Danger Zone */} }> Danger Zone Delete Sponsor Account Permanently remove your account and all data. ); }