Function useLocalStorageQueryHook

Hook React Query pour lire une valeur depuis le localStorage.

export const useLocalStorageQueryHook = (name, config = {}) => {
return useQuery({
queryKey: [name],
queryFn: () => {
return new Promise((resolve, reject) => {
try {
const value = localStorage.getItem(name);
// JSON / EJSON cannot manage 'undefined' as string
if (value === "undefined") {
resolve(undefined);
}
// Si ce n'est pas un string alors on renvoie value directement pour garder la cohérence de ce qui
// a été inséré comme par exemple '' ou null.
else if (typeof value !== "string") {
resolve(value);
}
// Sinon on parse avec EJSON
else {
resolve(EJSON.parse(value));
}
} catch (err) {
console.error(err);
reject(err);
}
});
},
...defaultConfig,
...config,
});
};
  • Parameters

    • name: any

      Clé du localStorage.

    • config: {} = {}

      Configuration optionnelle.

    Returns UseQueryResult<unknown, Error>

    Valeur récupérée via useQuery.