// ----------------------------------------------------------------------------- // Job·Ka — Agrégateur d'offres d'emploi (province de Québec) // Auteur : Simon-Pierre Boucher — contact@spboucher.ai // fiche/current.ts : mini-magasin « fiche affichée » partagé entre la page // fiche et le header compact (favoris ♥ + partage). Le toggle favoris du // compte KA exige l'objet Job complet (titre, image, prix pour le hub) : // la page le publie ici, le header le lit sans re-fetch. // ----------------------------------------------------------------------------- import { useSyncExternalStore } from "react"; import type { Job } from "../api"; let current: Job | null = null; const subs = new Set<() => void>(); export function setCurrentListing(l: Job | null) { current = l; subs.forEach((f) => f()); } export function useCurrentListing(): Job | null { return useSyncExternalStore( (cb) => { subs.add(cb); return () => { subs.delete(cb); }; }, () => current, () => null, ); }