import React, { useContext } from 'react' import { useForm } from '@mantine/form' import { Form } from 'react-router-dom' import { Avatar, Button, Flex, Grid, Group, Stack, Text, TextInput, Title } from '@mantine/core' import { getUserData } from '../../utils/auth' import { UserDataContext } from '../../context/user-data-context' import MainLoader from '../../components/MainLoader' const Profile = () => { let { user } = useContext(UserDataContext); if (!user) { return } let { username, email, fname, lname, country, location } = user; const form = useForm({ initialValues: { username, fname, email, lname, country, location }, }) let fullName = (fname && lname) ? fname + ' ' + lname : null; return ( {username[0].toUpperCase()} {username} {fullName || '-------'}, {location || '-----'} Cancel Save ) } export const action = async ({ request }) => { const data = await request.formData(); let url = `${import.meta.env.VITE_BACKEND_HOST}/api/user` const reqBody = { fname: data.get('fname'), lname: data.get('lname'), country: data.get('country'), location: data.get('location') } console.log(reqBody) const response = await fetch(url, { body: JSON.stringify(reqBody), method: 'PATCH', headers: { 'Content-Type': 'application/json' }, credentials: 'include' }) const resData = await response.json(); console.log(resData) if (response.ok) { return null; } else { let resData = await response.json(); return resData; } } export default Profile