some Fixes, see #45

This commit is contained in:
PxlLoewe
2025-07-05 00:59:22 -07:00
parent 80d2704852
commit 2cdbab9f28
9 changed files with 240 additions and 176 deletions

View File

@@ -296,6 +296,7 @@ export const MissionForm = () => {
<option value="primär">PRIMÄR</option>
<option value="sekundär">SEKUNDÄR</option>
</select>
{form.watch("type") === "primär" && (
<>
<select
@@ -321,74 +322,75 @@ export const MissionForm = () => {
{form.formState.errors.missionKeywordCategory && (
<p className="text-error text-sm mb-4">Bitte wähle eine Kategorie aus.</p>
)}
<select
{...form.register("missionKeywordAbbreviation")}
className="select select-primary select-bordered w-full mb-4"
onChange={(e) => {
const keyword = keywords?.find((k) => k.abreviation === e.target.value);
form.setValue("missionKeywordName", keyword?.name || (null as any));
form.setValue("missionKeywordAbbreviation", keyword?.abreviation || (null as any));
form.setValue("hpgMissionString", null);
}}
value={form.watch("missionKeywordAbbreviation") || "please_select"}
>
<option disabled value={"please_select"}>
Einsatzstichwort auswählen...
</option>
{keywords &&
keywords
.filter((k) => k.category === form.watch("missionKeywordCategory"))
.map((keyword) => (
<option key={keyword.id} value={keyword.abreviation}>
{keyword.name}
</option>
))}
</select>
{form.formState.errors.missionKeywordAbbreviation && (
<p className="text-error text-sm mb-4">Bitte wähle ein Stichwort aus.</p>
)}
<div className="mb-4">
<select
{...form.register("hpgMissionString")}
onChange={(e) => {
form.setValue("hpgMissionString", e.target.value);
const [name] = e.target.value.split(":");
const allHpgMissionTypes = keywords?.map((k) => k.hpgMissionTypes).flat();
const missionAdditionalInfo = form.watch("missionAdditionalInfo");
if (
!missionAdditionalInfo ||
allHpgMissionTypes?.find((t) => {
const [hpgName] = t.split(":");
return hpgName === missionAdditionalInfo;
})
) {
form.setValue("missionAdditionalInfo", name || "");
}
}}
className="select select-primary select-bordered w-full mb-2"
value={form.watch("hpgMissionString") || "please_select"}
>
<option disabled value="please_select">
Einsatz Szenario auswählen...
</option>
{keywords &&
keywords
.find((k) => k.name === form.watch("missionKeywordName"))
?.hpgMissionTypes?.map((missionString) => {
const [name] = missionString.split(":");
return (
<option key={missionString} value={missionString}>
{name}
</option>
);
})}
</select>
{validationRequired && (
<p className="text-sm text-warning">Szenario wird vor Alarmierung HPG-Validiert.</p>
)}
</div>
</>
)}
<select
{...form.register("missionKeywordAbbreviation")}
className="select select-primary select-bordered w-full mb-4"
onChange={(e) => {
const keyword = keywords?.find((k) => k.abreviation === e.target.value);
form.setValue("missionKeywordName", keyword?.name || (null as any));
form.setValue("missionKeywordAbbreviation", keyword?.abreviation || (null as any));
form.setValue("hpgMissionString", null);
}}
value={form.watch("missionKeywordAbbreviation") || "please_select"}
>
<option disabled value={"please_select"}>
Einsatzstichwort auswählen...
</option>
{keywords &&
keywords
.filter((k) => k.category === form.watch("missionKeywordCategory"))
.map((keyword) => (
<option key={keyword.id} value={keyword.abreviation}>
{keyword.name}
</option>
))}
</select>
{form.formState.errors.missionKeywordAbbreviation && (
<p className="text-error text-sm mb-4">Bitte wähle ein Stichwort aus.</p>
)}
<div className="mb-4">
<select
{...form.register("hpgMissionString")}
onChange={(e) => {
form.setValue("hpgMissionString", e.target.value);
const [name] = e.target.value.split(":");
const allHpgMissionTypes = keywords?.map((k) => k.hpgMissionTypes).flat();
const missionAdditionalInfo = form.watch("missionAdditionalInfo");
if (
!missionAdditionalInfo ||
allHpgMissionTypes?.find((t) => {
const [hpgName] = t.split(":");
return hpgName === missionAdditionalInfo;
})
) {
form.setValue("missionAdditionalInfo", name || "");
}
}}
className="select select-primary select-bordered w-full mb-2"
value={form.watch("hpgMissionString") || "please_select"}
>
<option disabled value="please_select">
Einsatz Szenario auswählen...
</option>
{keywords &&
keywords
.find((k) => k.name === form.watch("missionKeywordName"))
?.hpgMissionTypes?.map((missionString) => {
const [name] = missionString.split(":");
return (
<option key={missionString} value={missionString}>
{name}
</option>
);
})}
</select>
{validationRequired && (
<p className="text-sm text-warning">Szenario wird vor Alarmierung HPG-Validiert.</p>
)}
</div>
<textarea
{...form.register("missionAdditionalInfo")}
placeholder="Einsatzinformationen"