|
|
@@ -1,25 +1,34 @@
|
|
|
import { NextPage } from "next/types";
|
|
|
-import { useEffect } from "react";
|
|
|
+import { useContext, useEffect } from "react";
|
|
|
import Layout from "../components/Layout";
|
|
|
+import { UserContext } from "../context/UserContext";
|
|
|
import useForm from "../hooks/useForm";
|
|
|
+import useRedirect from "../hooks/useRedirect";
|
|
|
import api from "../utils/api";
|
|
|
|
|
|
const Settings: NextPage = () => {
|
|
|
- const user = {
|
|
|
- id: 4,
|
|
|
- name: "Monkey",
|
|
|
- email: "monkey@gmail.com",
|
|
|
- password: "123456",
|
|
|
- team: "Admins",
|
|
|
- };
|
|
|
+ const _ = useRedirect();
|
|
|
+ const { user, setUser } = useContext(UserContext);
|
|
|
|
|
|
const { error, submitHandler, success } = useForm(api.updateUser);
|
|
|
|
|
|
useEffect(() => {
|
|
|
if (success) {
|
|
|
- console.log(success);
|
|
|
+ setUser(success.result);
|
|
|
}
|
|
|
- }, [success]);
|
|
|
+ }, [success, setUser]);
|
|
|
+
|
|
|
+ if (!user) {
|
|
|
+ return (
|
|
|
+ <Layout>
|
|
|
+ <div className="form-alert-msg">
|
|
|
+ There was an error, please reload the page
|
|
|
+ </div>
|
|
|
+ </Layout>
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ console.log(user);
|
|
|
return (
|
|
|
<Layout>
|
|
|
<form className="form" onSubmit={submitHandler}>
|
|
|
@@ -79,11 +88,16 @@ const Settings: NextPage = () => {
|
|
|
<button type="submit" className="form-button">
|
|
|
Save
|
|
|
</button>
|
|
|
- {error && (
|
|
|
+ {error && !success && (
|
|
|
<div role="alert" className="form-alert-msg">
|
|
|
{error.message}
|
|
|
</div>
|
|
|
)}
|
|
|
+ {success && (
|
|
|
+ <div role="alert" className="form-success-msg">
|
|
|
+ Profile updated correctly
|
|
|
+ </div>
|
|
|
+ )}
|
|
|
</form>
|
|
|
</Layout>
|
|
|
);
|