Files
smart-cropx-ui/src/app/(app)/central-config/personal-center/account-security/components/NotificationSettings.tsx
2025-11-10 09:19:56 +08:00

64 lines
2.2 KiB
TypeScript

'use client';
import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/card';
import { Button } from '@/components/ui/button';
import type { SecuritySettings } from '../types';
interface NotificationSettingsProps {
securitySettings: SecuritySettings | null;
onUpdate: (updates: Partial<SecuritySettings>) => void;
}
export function NotificationSettings({ securitySettings, onUpdate }: NotificationSettingsProps) {
const handleToggle = (field: keyof SecuritySettings) => {
onUpdate({ [field]: !securitySettings?.[field] });
};
return (
<Card>
<CardHeader>
<CardTitle></CardTitle>
</CardHeader>
<CardContent className="space-y-4">
<div className="flex items-center justify-between">
<div>
<p className="font-medium"></p>
<p className="text-sm text-gray-600"></p>
</div>
<Button
variant={securitySettings?.emailNotification ? "default" : "outline"}
onClick={() => handleToggle('emailNotification')}
>
{securitySettings?.emailNotification ? '已启用' : '已禁用'}
</Button>
</div>
<div className="flex items-center justify-between">
<div>
<p className="font-medium"></p>
<p className="text-sm text-gray-600"></p>
</div>
<Button
variant={securitySettings?.smsNotification ? "default" : "outline"}
onClick={() => handleToggle('smsNotification')}
>
{securitySettings?.smsNotification ? '已启用' : '已禁用'}
</Button>
</div>
<div className="flex items-center justify-between">
<div>
<p className="font-medium"></p>
<p className="text-sm text-gray-600"></p>
</div>
<Button
variant={securitySettings?.loginAlert ? "default" : "outline"}
onClick={() => handleToggle('loginAlert')}
>
{securitySettings?.loginAlert ? '已启用' : '已禁用'}
</Button>
</div>
</CardContent>
</Card>
);
}