setting ung

import React, { useState } from 'react'; import axios from 'axios'; import { useNavigate } from 'react-router-dom'; function Settings() { const [isSubmitting, setIsSubmitting] = useState(false); const [error, setError] = useState(''); const [isDarkMode, setIsDarkMode] = useState(false); const token = localStorage.getItem('token'); const navigate = useNavigate(); const handleDeleteAccount = async () => { if (!window.confirm('Bạn có chắc muốn xóa tài khoản? Hành động này không thể hoàn tác!')) { return; } setIsSubmitting(true); try { await axios.delete('https://backend-rockefeller-finance.onrender.com/api/account', { headers: { Authorization: `Bearer ${token}` }, }); localStorage.removeItem('token'); navigate('/login'); setError(''); } catch (err) { setError(err.response?.data?.error || 'Lỗi xóa tài khoản'); } finally { setIsSubmitting(false); } }; const handleResetBudget = async () => { if (!window.confirm('Bạn có chắc muốn xóa toàn bộ số tiền? Dữ liệu ngân sách sẽ về 0!')) { return; } setIsSubmitting(true); try { await axios.delete('https://backend-rockefeller-finance.onrender.com/api/budget', { headers: { Authorization: `Bearer ${token}` }, }); setError(''); navigate('/expenses'); } catch (err) { setError(err.response?.data?.error || 'Lỗi xóa số tiền'); } finally { setIsSubmitting(false); } }; const toggleDarkMode = () => { setIsDarkMode(!isDarkMode); }; return (

Cài đặt

{error &&

{error}

}

Quản lý tài khoản

); } export default Settings;
Huyền

Một Blog Anime chia sẻ những bộ anime hay download về để xem chất lượng cao nhất. neyuhv.blogspot.com does not host any files, it merely links to 3rd party services. Legal issues should be taken up with the file hosts and providers. neyuhv.blogspot.com is not responsible for any media files shown by the video providers.

Mới hơn Cũ hơn