From 1504c57fb8460e133fa466f407c8afd4a31976b5 Mon Sep 17 00:00:00 2001
From: Roland Bernard <rolbernard@unibz.it>
Date: Tue, 1 Jun 2021 00:09:10 +0200
Subject: [PATCH] Replaced history.go(0) with reload()

---
 .../src/components/forms/MemberForm/index.tsx |  7 +++---
 .../forms/RoleForm/RoleChangeForm.tsx         |  7 +++---
 client/src/index.tsx                          | 24 ++++++++++++++-----
 3 files changed, 24 insertions(+), 14 deletions(-)

diff --git a/client/src/components/forms/MemberForm/index.tsx b/client/src/components/forms/MemberForm/index.tsx
index 528100a..b37d237 100644
--- a/client/src/components/forms/MemberForm/index.tsx
+++ b/client/src/components/forms/MemberForm/index.tsx
@@ -1,7 +1,7 @@
 
 import { useEffect, useState } from 'react';
-import { useHistory } from 'react-router';
 
+import { reload } from 'index';
 import { addTeamMember, Team, TeamRole } from 'adapters/team';
 
 import UsernameForm from 'components/forms/MemberForm/UsernameForm';
@@ -19,14 +19,13 @@ export default function MemberForm({ roles, team, setRoles }: Props) {
     const [role, setRole] = useState<string>();
     const [user, setUser] = useState('');
 
-    const history = useHistory();
     useEffect(() => {
         if (role && user) {
             addTeamMember(team.id, { user: user, role: role }).then(() => {
-                history.go(0);
+                reload()
             });
         }
-    }, [role, user, team, history])
+    }, [role, user, team])
 
     return (
         <div className="member-form">
diff --git a/client/src/components/forms/RoleForm/RoleChangeForm.tsx b/client/src/components/forms/RoleForm/RoleChangeForm.tsx
index 5a18405..23bbd00 100644
--- a/client/src/components/forms/RoleForm/RoleChangeForm.tsx
+++ b/client/src/components/forms/RoleForm/RoleChangeForm.tsx
@@ -1,7 +1,7 @@
 
 import { FormEvent, useCallback, useState } from 'react';
-import { useHistory } from 'react-router';
 
+import { reload } from 'index';
 import { deleteTeamRole, Team, TeamMember, TeamRole, updateTeamMember } from 'adapters/team';
 
 import Button from 'components/ui/Button';
@@ -19,7 +19,6 @@ interface Props {
 export default function RoleForm({ roles, setEdit, member, team, setResult, setAllRoles }: Props) {
     const [currentRole, setRole] = useState(member?.role.id);
     const [error, setError] = useState('');
-    const history = useHistory();
 
     const onSubmit = useCallback(async (e: FormEvent) => {
         e.preventDefault();
@@ -29,10 +28,10 @@ export default function RoleForm({ roles, setEdit, member, team, setResult, setA
             }
             if (member) {
                 await updateTeamMember(team.id, { user: member.id, role: currentRole });
-                history.go(0);
+                reload();
             }
         }
-    }, [currentRole, member, team, setResult, history]);
+    }, [currentRole, member, team, setResult]);
 
     const onDelete = useCallback(async (id: string) => {
         try {
diff --git a/client/src/index.tsx b/client/src/index.tsx
index d0a74c3..f277e1b 100644
--- a/client/src/index.tsx
+++ b/client/src/index.tsx
@@ -8,12 +8,24 @@ import reportWebVitals from './reportWebVitals';
 
 import 'index.scss';
 
-ReactDOM.render(
-    <React.StrictMode>
-        <App />
-    </React.StrictMode>,
-    document.getElementById('root')
-);
+function render() {
+    ReactDOM.render(
+        <React.StrictMode>
+            <App />
+        </React.StrictMode>,
+        document.getElementById('root')
+    );
+}
+
+export function reload() {
+    const root = document.getElementById('root');
+    if (root) {
+        ReactDOM.unmountComponentAtNode(root);
+        render();
+    }
+}
+
+render();
 
 serviceWorkerRegistration.register();
 reportWebVitals();
-- 
GitLab