-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathResetAchievementsButton.tsx
48 lines (42 loc) · 1.57 KB
/
ResetAchievementsButton.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import React, {useContext, useState} from "react";
import {ProfilePageProps} from "../../types/types";
import {useAuth} from "../AuthContext/AuthContext";
import {UserContext} from "../MyProviders/MyProviders";
import {Alert, Box, Button} from "@mui/material";
import axiosClient from "../../axios";
const ResetAchievementsButton: React.FC = () => {
const {setCurrentUser} = useContext(UserContext);
const [error, setError] = useState<string | null>(null);
const [success, setSuccess] = useState<string | null>(null);
const resetAchievements = async () => {
const token = localStorage.getItem('token');
try {
const response = await axiosClient.post('/api/user/reset-achievements', {},
{
headers: {'Authorization': `Bearer ${token}`}
}
);
setCurrentUser(response.data.user_data)
setSuccess(response.data.message);
setError(null);
} catch (error:any) {
setError(error.response?.data.message || 'An error occurred');
setSuccess(null);
}
};
return (
<Box sx={{mt: 3}}>
{error && <Alert severity="error">{error}</Alert>}
{success && <Alert severity="success">{success}</Alert>}
<Button
variant={"outlined"}
color="secondary"
onClick={resetAchievements}
sx={{mt: 3, mb: 2}}
>
Reset to Initial Level
</Button>
</Box>
);
}
export default ResetAchievementsButton