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