Files
app/wei-ai-demo/pages/Settings.tsx
2026-01-28 19:10:19 +08:00

118 lines
5.9 KiB
TypeScript

import React, { useState } from 'react';
import {
ChevronLeft,
Bell,
Globe,
FileText,
Info,
ChevronRight,
Bot
} from 'lucide-react';
interface SettingsProps {
onBack: () => void;
}
const Settings: React.FC<SettingsProps> = ({ onBack }) => {
const [notifications, setNotifications] = useState({
push: true,
aiMsg: true
});
const toggleNotify = (key: keyof typeof notifications) => {
setNotifications(prev => ({ ...prev, [key]: !prev[key] }));
};
return (
<div className="fixed inset-0 z-[60] bg-[#0F1014] flex flex-col h-full overflow-hidden animate-in slide-in-from-right duration-300">
{/* Header */}
<div className="relative z-20 pt-safe-top px-4 py-3 flex items-center justify-between border-b border-white/5 bg-[#0F1014]/80 backdrop-blur-md">
<button onClick={onBack} className="p-2 -ml-2 text-white/70 hover:text-white active:scale-95 transition-transform">
<ChevronLeft size={24} />
</button>
<h1 className="text-base font-bold text-white tracking-wider"></h1>
<div className="w-8"></div>
</div>
<div className="flex-1 overflow-y-auto no-scrollbar p-5 pb-20">
{/* Section 1: Notifications */}
<h3 className="text-xs font-bold text-[#64748B] uppercase tracking-widest mb-3 ml-1"></h3>
<div className="bg-[#1C1F26]/60 border border-white/5 rounded-xl overflow-hidden mb-6">
<div className="p-4 flex items-center justify-between border-b border-white/5">
<div className="flex items-center gap-3">
<Bell size={18} className="text-[#E2E8F0]" />
<span className="text-sm text-white"></span>
</div>
<button
onClick={() => toggleNotify('push')}
className={`w-10 h-5 rounded-full transition-colors relative ${notifications.push ? 'bg-[#8B5CF6]' : 'bg-[#334155]'}`}
>
<div className={`absolute top-1 w-3 h-3 rounded-full bg-white transition-all ${notifications.push ? 'left-6' : 'left-1'}`}></div>
</button>
</div>
<div className="p-4 flex items-center justify-between">
<div className="flex items-center gap-3">
<Bot size={18} className="text-[#E2E8F0]" />
<div>
<span className="text-sm text-white">AI </span>
<p className="text-[10px] text-[#64748B]"></p>
</div>
</div>
<button
onClick={() => toggleNotify('aiMsg')}
disabled={!notifications.push}
className={`w-10 h-5 rounded-full transition-colors relative ${notifications.push ? (notifications.aiMsg ? 'bg-[#8B5CF6]' : 'bg-[#334155]') : 'bg-white/5 opacity-50'}`}
>
<div className={`absolute top-1 w-3 h-3 rounded-full bg-white transition-all ${notifications.aiMsg ? 'left-6' : 'left-1'}`}></div>
</button>
</div>
</div>
{/* Section 2: App Preferences */}
<h3 className="text-xs font-bold text-[#64748B] uppercase tracking-widest mb-3 ml-1"></h3>
<div className="bg-[#1C1F26]/60 border border-white/5 rounded-xl overflow-hidden mb-6">
<div className="p-4 flex items-center justify-between">
<div className="flex items-center gap-3">
<Globe size={18} className="text-[#E2E8F0]" />
<span className="text-sm text-white"> / Language</span>
</div>
<div className="flex items-center gap-2">
<span className="text-xs text-[#94A3B8]"></span>
<ChevronRight size={14} className="text-[#64748B]" />
</div>
</div>
</div>
{/* Section 4: About */}
<h3 className="text-xs font-bold text-[#64748B] uppercase tracking-widest mb-3 ml-1"></h3>
<div className="bg-[#1C1F26]/60 border border-white/5 rounded-xl overflow-hidden mb-8">
<button className="w-full p-4 flex items-center justify-between border-b border-white/5 active:bg-white/5 transition-colors">
<div className="flex items-center gap-3">
<FileText size={18} className="text-[#E2E8F0]" />
<span className="text-sm text-white"></span>
</div>
<ChevronRight size={14} className="text-[#64748B]" />
</button>
<button className="w-full p-4 flex items-center justify-between border-b border-white/5 active:bg-white/5 transition-colors">
<div className="flex items-center gap-3">
<Info size={18} className="text-[#E2E8F0]" />
<span className="text-sm text-white"></span>
</div>
<ChevronRight size={14} className="text-[#64748B]" />
</button>
<div className="p-4 flex items-center justify-between">
<div className="flex items-center gap-3">
<div className="w-4 h-4 rounded-full bg-[#8B5CF6] flex items-center justify-center text-[8px] font-bold text-black">V</div>
<span className="text-sm text-white"></span>
</div>
<span className="text-xs text-[#94A3B8]">v2.4.0 (8849)</span>
</div>
</div>
</div>
</div>
);
};
export default Settings;