Ymse endringer (litt usikker...)
This commit is contained in:
parent
64d15ebd4e
commit
6252879bbd
1 changed files with 30 additions and 22 deletions
|
|
@ -9,7 +9,7 @@ import { adminFetch } from "@/config/adminFetch";
|
||||||
|
|
||||||
type GolfpakkeRow = {
|
type GolfpakkeRow = {
|
||||||
navn: string;
|
navn: string;
|
||||||
pris: string;
|
pris: string | number;
|
||||||
beskrivelse: string;
|
beskrivelse: string;
|
||||||
lenke: string;
|
lenke: string;
|
||||||
};
|
};
|
||||||
|
|
@ -21,6 +21,11 @@ const EMPTY_ROW: GolfpakkeRow = {
|
||||||
lenke: '',
|
lenke: '',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
function normalizePriceInput(value: string | number | null | undefined): string {
|
||||||
|
if (value === null || value === undefined) return '';
|
||||||
|
return String(value).trim();
|
||||||
|
}
|
||||||
|
|
||||||
export default function GolfpakkerWasher() {
|
export default function GolfpakkerWasher() {
|
||||||
const [drafts, setDrafts] = useState<any[]>([]);
|
const [drafts, setDrafts] = useState<any[]>([]);
|
||||||
const [loading, setLoading] = useState(true);
|
const [loading, setLoading] = useState(true);
|
||||||
|
|
@ -51,7 +56,7 @@ export default function GolfpakkerWasher() {
|
||||||
golfpakker_draft: parsedDraft,
|
golfpakker_draft: parsedDraft,
|
||||||
edit_golfpakker: suggestedPackages.map((row: any) => ({
|
edit_golfpakker: suggestedPackages.map((row: any) => ({
|
||||||
navn: row?.navn || '',
|
navn: row?.navn || '',
|
||||||
pris: row?.pris ?? '',
|
pris: normalizePriceInput(row?.pris),
|
||||||
beskrivelse: row?.beskrivelse || '',
|
beskrivelse: row?.beskrivelse || '',
|
||||||
lenke: row?.lenke || '',
|
lenke: row?.lenke || '',
|
||||||
})),
|
})),
|
||||||
|
|
@ -102,27 +107,30 @@ export default function GolfpakkerWasher() {
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleApprove = async () => {
|
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 {
|
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`, {
|
const res = await adminFetch(`${API_URL}/admin/golfpakker/approve-bulk`, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue