import { useState, useRef } from "react"; import { useSelector, useDispatch } from "react-redux"; import { FiLogOut } from "react-icons/fi"; import { logout } from "../../store/slices/authSlice"; import ThemeToggle from "./ThemeToggle"; import UserProfile from "./UserProfile"; function SettingsView() { const dispatch = useDispatch(); const { isDark } = useSelector((state) => state.theme); const [saveState, setSaveState] = useState({ saved: false, message: "", isError: false, }); const [saving, setSaving] = useState(false); const profileRef = useRef(null); const handleSave = async () => { setSaving(true); const result = await profileRef.current?.validateAndSave(); setSaving(false); if (!result) return; if (!result.success) { if (result.error) { setSaveState({ saved: true, message: result.error, isError: true }); setTimeout(() => setSaveState({ saved: false, message: "", isError: false }), 3000); } return; } const msg = result.changed ? "✓ Đã cập nhật!" : "✓ Đã lưu!"; setSaveState({ saved: true, message: msg, isError: false }); setTimeout(() => setSaveState({ saved: false, message: "", isError: false }), 2000); }; return (
Cài đặt tài khoản
Quản lý thông tin cá nhân
{/* Theme Toggle */}

Giao diện

{/* User Profile */}

Thông tin cá nhân

{/* About */}

Về ứng dụng

VinClassroom

Nền tảng học tập trực tuyến - Phiên bản 1.0.0

{/* Logout */}
{saveState.saved && ( {saveState.message} )}
); } export default SettingsView;