import React, { useState } from "react"; import { useForm } from "react-hook-form"; import * as BS from "react-bootstrap"; import moment from "moment"; import "moment-timezone"; import API_URL from "../../../Constants/constants.js"; const EditSystem = ({ name, tag, timezone, avatar, banner, editDesc, setEditMode, setErrorAlert, user, setUser, setErrorMessage }) => { const [invalidTimezone, setInvalidTimezone] = useState(false); const { register: registerEdit, handleSubmit: handleSubmitEdit } = useForm(); const submitEdit = (data) => { if (data.tz) { if (!moment.tz.zone(data.tz)) { setInvalidTimezone(true); return; } } fetch(`${API_URL}s`, { method: "PATCH", body: JSON.stringify(data), headers: { "Content-Type": "application/json", Authorization: localStorage.getItem("token"), }, }) .then((res) => { if (!res.ok) throw new Error('HTTP Status ' + res.status) return res.json(); }) .then(() => { setUser((prevState) => { return { ...prevState, ...data }; }); localStorage.setItem("user", JSON.stringify(user)); setEditMode(false); }) .catch((error) => { console.log(error); setErrorMessage(error.message); if (error.message === 'HTTP Status 401') { setErrorMessage("Your token is invalid, please log out and enter a new token.") }; if (error.message === 'HTTP Status 500') { setErrorMessage("500: Internal server error.") } setErrorAlert(true); }); }; return ( Note: if you refresh the page, the old data might show up again, this is due to the bot caching data.
Try editing a member to clear the cache, or wait a few minutes before refreshing.
Name: Tag: Timezone: {invalidTimezone ? ( Please enter a valid timezone ) : ( "" )} Avatar url: Banner url: Description: setEditMode(false)}> Cancel {" "} Submit
); }; export default EditSystem;