Files
SlpSoftware/src/features/landing/hooks/usePackagesQuery.ts
T
Sluijsens 38947ccc20
Continuous Integration / config (pull_request) Successful in 10s
Continuous Integration / prepare (pull_request) Successful in 1m21s
Continuous Integration / build-production (pull_request) Skipped
Continuous Integration / build (pull_request) Successful in 2m3s
Continuous Integration / test (pull_request) Successful in 2m14s
Continuous Integration / deploy-production (pull_request) Skipped
Deploy / deploy (pull_request) Successful in 36s
Continuous Integration / deploy-test (pull_request) Successful in 37s
Voeg VITE_API_BASE_URL toe voor lokale API-calls naar een losse backend
Lokaal (.env.local, niet gecommit) kan VITE_API_BASE_URL op
https://localhost:7223 gezet worden zodat /api/v1/... calls naar een
lokaal draaiende backend gaan i.p.v. hetzelfde origin. Op test/productie
blijft de variabele ongezet, dus blijven calls relatief zoals voorheen.
2026-08-02 15:49:09 +02:00

30 lines
1.2 KiB
TypeScript

import { useQuery } from '@tanstack/react-query';
import type { PackageCardData } from '../data/content';
// Relative path so it resolves against whichever domain served the app
// (test.slpsoftware.nl / slpsoftware.nl) — see aidlc-docs/features/react-frontend/
// construction/react-frontend-app/functional-design/packages-api-handoff.md
// for the API contract this endpoint must implement.
// VITE_API_BASE_URL is only set locally (.env.local, e.g. https://localhost:7223) to
// point at a locally running backend; on test/production it's unset, so the path stays
// relative to whichever origin served the app. Read inside the function (not as a
// module-level constant) so tests can stub it per-case.
function offeringsEndpoint() {
return `${import.meta.env.VITE_API_BASE_URL ?? ''}/api/v1/offerings`;
}
async function fetchPackages(): Promise<PackageCardData[]> {
const response = await fetch(offeringsEndpoint());
if (!response.ok) {
throw new Error(`Failed to fetch packages: ${response.status} ${response.statusText}`);
}
return response.json();
}
export function usePackagesQuery() {
return useQuery({
queryKey: ['packages'],
queryFn: fetchPackages,
});
}