From 20dd5079c17a1716c9477b673fe791c4b499918f Mon Sep 17 00:00:00 2001
From: Andreas Ellewsen <ae@uio.no>
Date: Thu, 3 Feb 2022 17:16:15 +0100
Subject: [PATCH] Fix visual bug in role info page date fields

Values of fields now show the current dates of the role after data has
been fetched, instead of the placeholders.
---
 .../sponsor/guest/guestRoleInfo/index.tsx     | 20 +++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)

diff --git a/frontend/src/routes/sponsor/guest/guestRoleInfo/index.tsx b/frontend/src/routes/sponsor/guest/guestRoleInfo/index.tsx
index 7dc14253..50506ecc 100644
--- a/frontend/src/routes/sponsor/guest/guestRoleInfo/index.tsx
+++ b/frontend/src/routes/sponsor/guest/guestRoleInfo/index.tsx
@@ -109,13 +109,6 @@ export default function GuestRoleInfo({ guest }: GuestRoleInfoProps) {
     contact_person_unit: null,
     comments: null,
   })
-  // Find the role info relevant for this page
-  const getRoleInfo = () => {
-    const roleInfo = guest.roles.filter((ro) => ro.id.toString() === id)[0]
-    if (roleInfo) {
-      setRole(roleInfo)
-    }
-  }
   // Prepare min and max date values
   const today = new Date()
   const todayPlusMaxDays = addDays(role.max_days)(today)
@@ -154,10 +147,21 @@ export default function GuestRoleInfo({ guest }: GuestRoleInfoProps) {
   const {
     control,
     handleSubmit,
+    setValue,
     formState: { isDirty, isValid },
-  } = useForm({ mode: 'onChange' })
+  } = useForm<RoleFormData>({ mode: 'onChange' })
   const onSubmit = handleSubmit(submit)
 
+  // Find the role info relevant for this page
+  const getRoleInfo = () => {
+    const roleInfo = guest.roles.filter((ro) => ro.id.toString() === id)[0]
+    if (roleInfo) {
+      setRole(roleInfo)
+      // Set values of date fields to current dates if role exists
+      setValue('end_date', roleInfo.end_date)
+      setValue('start_date', roleInfo.start_date)
+    }
+  }
   useEffect(() => {
     getRoleInfo()
   }, [guest])
-- 
GitLab