HTML 82.1%
Python 14.6%
TypeScript 1.9%
CSS 1%
JavaScript 0.5%
1// -----------------------------------------------------------------------------2// Job·Ka — Agrégateur d'offres d'emploi (province de Québec)3// Auteur : Simon-Pierre Boucher — contact@spboucher.ai4// fiche/current.ts : mini-magasin « fiche affichée » partagé entre la page5// fiche et le header compact (favoris ♥ + partage). Le toggle favoris du6// compte KA exige l'objet Job complet (titre, image, prix pour le hub) :7// la page le publie ici, le header le lit sans re-fetch.8// -----------------------------------------------------------------------------9import { useSyncExternalStore } from "react";10import type { Job } from "../api";1112let current: Job | null = null;13const subs = new Set<() => void>();1415export function setCurrentListing(l: Job | null) {16 current = l;17 subs.forEach((f) => f());18}1920export function useCurrentListing(): Job | null {21 return useSyncExternalStore(22 (cb) => { subs.add(cb); return () => { subs.delete(cb); }; },23 () => current,24 () => null,25 );26}27