Skip to content

Commit 7866bfd

Browse files
committed
refactor: make form mode explicit
1 parent 0b20f7e commit 7866bfd

File tree

2 files changed

+8
-13
lines changed

2 files changed

+8
-13
lines changed

apps/frontend/src/components/questionnaire/calendar/EntryCalendar.tsx

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { QuestionnaireEntry } from "./QuestionnaireEntry";
88
import { components } from "../../../api.gen";
99
import { EntityForm, EntryFormValues } from "./EntryForm";
1010
import { useEffect, useState } from "react";
11-
import { format, i18n } from "../../../stores/i18n";
11+
import { format } from "../../../stores/i18n";
1212
import { useStore } from "@nanostores/react";
1313
import { EventImpl } from "@fullcalendar/core/internal";
1414
import styles from "./EntryCalendar.module.css";
@@ -51,11 +51,6 @@ export type EntryCalendarProps = {
5151
onAddLanguage: (value: string) => Promise<number>;
5252
};
5353

54-
const messages = i18n("entryCalendar", {
55-
actionAdd: "Add",
56-
actionUpdate: "Update",
57-
});
58-
5954
export function EntryCalendar({
6055
entries,
6156
gaps,
@@ -69,8 +64,6 @@ export function EntryCalendar({
6964
onAddLanguage,
7065
}: EntryCalendarProps) {
7166
const theme = useMantineTheme();
72-
73-
const t = useStore(messages);
7467
const { time } = useStore(format);
7568

7669
const { fullscreen, admin } = useStore($layout);
@@ -191,7 +184,7 @@ export function EntryCalendar({
191184
carers={carers}
192185
languages={languages}
193186
templates={templates}
194-
actionLabel={entryDraft?.id ? t.actionUpdate : t.actionAdd}
187+
mode={entryDraft?.id ? "update" : "create"}
195188
/>
196189
)}
197190
</Modal>

apps/frontend/src/components/questionnaire/calendar/EntryForm.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@ const messages = i18n("entityForm", {
2525
actionAddLanguage: "Add language",
2626
actionAddRecurringRule: "Add recurring rule",
2727
actionDelete: "Delete",
28+
actionAdd: "Add",
29+
actionUpdate: "Update",
2830
labelCarer: "Carer",
2931
labelLanguage: "Language",
3032
labelRecurringRulePrefix: "Recurs every",
@@ -41,13 +43,13 @@ type EntityFormProps = {
4143
carers: components["schemas"]["CarerResponseDto"][];
4244
languages: components["schemas"]["LanguageResponseDto"][];
4345
templates: components["schemas"]["EntryTemplateDto"][];
44-
actionLabel: string;
4546
onSave: (entity: EntryFormValues) => void;
4647
entry: Partial<EntryFormValues>;
48+
mode: "create" | "update";
4749
onDelete?: () => void;
4850
};
4951

50-
export function EntityForm({ onSave, onDelete, onAddCarer, onAddLanguage, actionLabel, entry, carers, languages, templates }: EntityFormProps) {
52+
export function EntityForm({ onSave, onDelete, onAddCarer, onAddLanguage, entry, carers, languages, templates, mode }: EntityFormProps) {
5153
const isUpdateForm = !!onDelete;
5254

5355
const t = useStore(messages);
@@ -56,7 +58,7 @@ export function EntityForm({ onSave, onDelete, onAddCarer, onAddLanguage, action
5658
startedAt: "",
5759
endedAt: "",
5860
carer: -1,
59-
weekday: isUpdateForm ? 0 : [],
61+
weekday: mode === "update" ? 0 : [],
6062
entryLanguages: [{ ratio: 100 }],
6163
},
6264
validate: {
@@ -197,7 +199,7 @@ export function EntityForm({ onSave, onDelete, onAddCarer, onAddLanguage, action
197199
{t.actionDelete}
198200
</Button>
199201
)}
200-
<Button type="submit">{actionLabel}</Button>
202+
<Button type="submit">{mode === "update" ? t.actionUpdate : t.actionAdd}</Button>
201203
</Group>
202204
</Stack>
203205
</form>

0 commit comments

Comments
 (0)