From fed6add2bad3e1bfd69fb408b897681d644a56b5 Mon Sep 17 00:00:00 2001
From: "Planoetscher Daniel (Student Com20)"
 <daniel.planoetscher@stud-inf.unibz.it>
Date: Mon, 21 Jun 2021 12:21:29 +0200
Subject: [PATCH] fix for default deadline when editing project

---
 client/src/components/forms/ProjectForm/index.tsx | 8 +++++---
 client/src/timely.test.ts                         | 4 ++++
 client/src/timely.ts                              | 3 +++
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/client/src/components/forms/ProjectForm/index.tsx b/client/src/components/forms/ProjectForm/index.tsx
index e90180e..9ae4e3a 100644
--- a/client/src/components/forms/ProjectForm/index.tsx
+++ b/client/src/components/forms/ProjectForm/index.tsx
@@ -13,6 +13,7 @@ import CheckboxGroup from 'components/ui/CheckboxGroup';
 
 import '../form.scss';
 import './project-form.scss';
+import { formatDate, formatDateShort } from 'timely';
 
 interface Props {
     project?: Project
@@ -63,7 +64,7 @@ export default function ProjectForm({ project, onSubmit }: Props) {
     const [text, setText] = useState(project?.text);
     const [status, setStatus] = useState(project?.status);
     const [color, setColor] = useState(project?.color);
-    const [deadline, setDeadline] = useState(project?.deadline?.toISOString());
+    const [deadline, setDeadline] = useState(project?.deadline ? formatDateShort(new Date(project?.deadline)) : '');
     const [error, setError] = useState('');
     const [loadError, setLoadError] = useState(false);
     const [teams, setTeams] = useState(project?.teams ?? []);
@@ -85,7 +86,7 @@ export default function ProjectForm({ project, onSubmit }: Props) {
             }
             setAllTeams(teams);
         })
-        .catch(() => setLoadError(true))
+            .catch(() => setLoadError(true))
     }, [project?.teams, loadError])
 
     const colors = Object.values(ProjectColors);
@@ -105,6 +106,7 @@ export default function ProjectForm({ project, onSubmit }: Props) {
         }
     }, [onSubmit, setError, name, text, color, deadline, teams, status]);
 
+
     return (
         <form onSubmit={handleSubmit} className={'project-form theme-' + color}>
             {error && <Callout message={error} />}
@@ -174,7 +176,7 @@ export default function ProjectForm({ project, onSubmit }: Props) {
             <div className="teams">
                 <h2>Teams</h2>
                 <p>Which ones of your teams are working on this project</p>
-                { loadError
+                {loadError
                     ? <ErrorScreen />
                     : <CheckboxGroup choices={allTeams} chosen={teams} setChosen={setTeams} />
                 }
diff --git a/client/src/timely.test.ts b/client/src/timely.test.ts
index d342b8b..62c1a9d 100644
--- a/client/src/timely.test.ts
+++ b/client/src/timely.test.ts
@@ -8,6 +8,7 @@ import {
     addTime,
     subtractTime,
     durationFor,
+    formatDateShort
 } from 'timely';
 
 test('simple duration format works as expected', () => {
@@ -397,3 +398,6 @@ test('get duration from amount and unit', () => {
     expect(durationFor(10, 'hour')).toEqual(10 * 60 * 60 * 1000);
 });
 
+test('format simple date', () => {
+    expect(formatDateShort(new Date('2021-04-29T00:00:00'))).toEqual('2021-04-29');
+});
diff --git a/client/src/timely.ts b/client/src/timely.ts
index 6620021..3741c5d 100644
--- a/client/src/timely.ts
+++ b/client/src/timely.ts
@@ -217,3 +217,6 @@ export function currentTime(): Date {
     return new Date();
 }
 
+export function formatDateShort(date: Date): string {
+    return date.getFullYear() + '-' + formatNumber(date.getMonth() + 1) + '-' + formatNumber(date.getDate());
+}
\ No newline at end of file
-- 
GitLab