Ymse endringer (litt usikker...)

This commit is contained in:
Erol Haagenrud 2026-04-27 08:56:39 +02:00
parent 64d15ebd4e
commit 6252879bbd

View file

@ -9,7 +9,7 @@ import { adminFetch } from "@/config/adminFetch";
type GolfpakkeRow = {
navn: string;
pris: string;
pris: string | number;
beskrivelse: string;
lenke: string;
};
@ -21,6 +21,11 @@ const EMPTY_ROW: GolfpakkeRow = {
lenke: '',
};
function normalizePriceInput(value: string | number | null | undefined): string {
if (value === null || value === undefined) return '';
return String(value).trim();
}
export default function GolfpakkerWasher() {
const [drafts, setDrafts] = useState<any[]>([]);
const [loading, setLoading] = useState(true);
@ -51,7 +56,7 @@ export default function GolfpakkerWasher() {
golfpakker_draft: parsedDraft,
edit_golfpakker: suggestedPackages.map((row: any) => ({
navn: row?.navn || '',
pris: row?.pris ?? '',
pris: normalizePriceInput(row?.pris),
beskrivelse: row?.beskrivelse || '',
lenke: row?.lenke || '',
})),
@ -102,27 +107,30 @@ export default function GolfpakkerWasher() {
};
const handleApprove = async () => {
const approvals = drafts
.filter((draft) => selectedIds.includes(draft.id))
.map((draft) => ({
facility_id: draft.id,
golfpakker: draft.edit_golfpakker
.map((row: GolfpakkeRow) => ({
navn: row.navn.trim(),
pris: row.pris.trim() ? Number(row.pris) : null,
beskrivelse: row.beskrivelse.trim(),
lenke: row.lenke.trim(),
}))
.filter((row: any) => row.navn || row.pris !== null || row.beskrivelse || row.lenke),
}));
if (approvals.length === 0) {
alert("Velg minst ett anlegg å godkjenne.");
return;
}
setSaving(true);
try {
const approvals = drafts
.filter((draft) => selectedIds.includes(draft.id))
.map((draft) => ({
facility_id: draft.id,
golfpakker: draft.edit_golfpakker
.map((row: GolfpakkeRow) => {
const priceValue = normalizePriceInput(row.pris);
return {
navn: String(row.navn || '').trim(),
pris: priceValue ? Number(priceValue) : null,
beskrivelse: String(row.beskrivelse || '').trim(),
lenke: String(row.lenke || '').trim(),
};
})
.filter((row: any) => row.navn || row.pris !== null || row.beskrivelse || row.lenke),
}));
if (approvals.length === 0) {
alert("Velg minst ett anlegg å godkjenne.");
return;
}
setSaving(true);
const res = await adminFetch(`${API_URL}/admin/golfpakker/approve-bulk`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },