@metapages/hash-query
Version:
Get/set URL parameters (state) in the hash string instead of the query string.
155 lines (154 loc) • 6.15 kB
JavaScript
import { useState as c, useEffect as h, useCallback as d } from "react";
import { getHashParamFromWindow as U, getHashParamsFromWindow as l, setHashParamInWindow as g, stringToBase64String as u, stringFromBase64String as I, blobToBase64String as S, blobFromBase64String as F } from "../core/index.js";
import { addEventListenerHashParamBase64 as C, addEventListenerHashParamBoolean as D, addEventListenerHashParamFloat as R, addEventListenerHashParamInt as T, addEventListenerHashParamJson as N, addEventListenerHashParamUriEncoded as x, createHashParamValuesInHashString as A, deleteHashParamFromUrl as _, deleteHashParamFromWindow as j, getHashParamValue as q, getHashParamValueBase64DecodedFromUrl as z, getHashParamValueBase64DecodedFromWindow as G, getHashParamValueBooleanFromUrl as K, getHashParamValueBooleanFromWindow as M, getHashParamValueFloatFromUrl as O, getHashParamValueFloatFromWindow as Q, getHashParamValueIntFromUrl as X, getHashParamValueIntFromWindow as Y, getHashParamValueJsonFromHashString as Z, getHashParamValueJsonFromUrl as $, getHashParamValueJsonFromWindow as f, getHashParamValueUriDecodedFromUrl as k, getHashParamValueUriDecodedFromWindow as y, getUrlHashParams as aa, getUrlHashParamsFromHashString as na, setHashParamValueBase64EncodedInUrl as sa, setHashParamValueBase64EncodedInWindow as ea, setHashParamValueBooleanInUrl as ra, setHashParamValueBooleanInWindow as ta, setHashParamValueFloatInUrl as oa, setHashParamValueFloatInWindow as ia, setHashParamValueInHashString as ma, setHashParamValueInUrl as ha, setHashParamValueIntInUrl as ca, setHashParamValueIntInWindow as da, setHashParamValueJsonInHashString as Ha, setHashParamValueJsonInUrl as Pa, setHashParamValueJsonInWindow as la, setHashParamValueUriEncodedInUrl as ga, setHashParamValueUriEncodedInWindow as ua, setHashParamsInUrl as Ia } from "../core/index.js";
const H = (e, a) => {
const [s, r] = c(U(e) ?? a);
h(() => {
const [o, t] = l();
a && t[e] === void 0 && g(e, a);
}, [e, a]), h(() => {
if (typeof window > "u")
return;
const o = (t) => {
const n = l()[1];
r(n[e]);
};
return globalThis.addEventListener("hashchange", o), () => globalThis.removeEventListener("hashchange", o);
}, [e]);
const i = d((o, t) => {
g(e, o, t);
}, [e]);
return [s, i];
}, w = (e, a) => {
const [s, r] = H(e, a != null ? encodeURIComponent(a) : void 0), [i, o] = c(() => s ? decodeURIComponent(s) : a);
h(() => {
const n = s ? decodeURIComponent(s) : a;
o(n);
}, [e, s, a]);
const t = d((n, m) => {
if (n == null)
r(void 0, m);
else {
const P = encodeURIComponent(n);
r(P, m);
}
}, [r]);
return [i, t];
}, B = (e, a) => {
const [s, r] = H(e, a != null ? u(a) : void 0), [i, o] = c(() => s ? I(s) : a);
h(() => {
const n = s ? I(s) : a;
o(n);
}, [e, s, a]);
const t = d((n, m) => {
if (n == null)
r(void 0, m);
else {
const P = u(n);
r(P, m);
}
}, [r]);
return [i, t];
}, W = (e) => {
const [a, s] = H(e), [r, i] = c(a === "true");
h(() => {
i(a === "true");
}, [e, a, i]);
const o = d((t, n) => {
t = !!t, s(t ? "true" : void 0, n);
}, [s]);
return [r, o];
}, E = (e, a) => {
const [s, r] = H(e, a != null ? a.toString() : void 0), [i, o] = c(() => s ? parseFloat(s) : a);
h(() => {
const n = s ? parseFloat(s) : a;
o(n);
}, [e, s, a]);
const t = d((n, m) => {
r(n ? n.toString() : void 0, m);
}, [r]);
return [i, t];
}, J = (e, a) => {
const [s, r] = H(e, a != null ? a.toString() : void 0), [i, o] = c(() => s ? parseInt(s) : a);
h(() => {
const n = s ? parseInt(s) : a;
o(n);
}, [e, s, a]);
const t = d((n, m) => {
r(n ? n.toString() : void 0, m);
}, [r]);
return [i, t];
}, p = (e, a) => {
const [s, r] = H(e, a != null ? S(a) : void 0), [i, o] = c(() => s ? F(s) : a);
h(() => {
const n = s ? F(s) : a;
o(n);
}, [e, s, a]);
const t = d((n, m) => {
if (n == null)
r(void 0, m);
else {
const P = S(n);
r(P, m);
}
}, [r]);
return [i, t];
};
export {
C as addEventListenerHashParamBase64,
D as addEventListenerHashParamBoolean,
R as addEventListenerHashParamFloat,
T as addEventListenerHashParamInt,
N as addEventListenerHashParamJson,
x as addEventListenerHashParamUriEncoded,
F as blobFromBase64String,
S as blobToBase64String,
A as createHashParamValuesInHashString,
_ as deleteHashParamFromUrl,
j as deleteHashParamFromWindow,
U as getHashParamFromWindow,
q as getHashParamValue,
z as getHashParamValueBase64DecodedFromUrl,
G as getHashParamValueBase64DecodedFromWindow,
K as getHashParamValueBooleanFromUrl,
M as getHashParamValueBooleanFromWindow,
O as getHashParamValueFloatFromUrl,
Q as getHashParamValueFloatFromWindow,
X as getHashParamValueIntFromUrl,
Y as getHashParamValueIntFromWindow,
Z as getHashParamValueJsonFromHashString,
$ as getHashParamValueJsonFromUrl,
f as getHashParamValueJsonFromWindow,
k as getHashParamValueUriDecodedFromUrl,
y as getHashParamValueUriDecodedFromWindow,
l as getHashParamsFromWindow,
aa as getUrlHashParams,
na as getUrlHashParamsFromHashString,
g as setHashParamInWindow,
sa as setHashParamValueBase64EncodedInUrl,
ea as setHashParamValueBase64EncodedInWindow,
ra as setHashParamValueBooleanInUrl,
ta as setHashParamValueBooleanInWindow,
oa as setHashParamValueFloatInUrl,
ia as setHashParamValueFloatInWindow,
ma as setHashParamValueInHashString,
ha as setHashParamValueInUrl,
ca as setHashParamValueIntInUrl,
da as setHashParamValueIntInWindow,
Ha as setHashParamValueJsonInHashString,
Pa as setHashParamValueJsonInUrl,
la as setHashParamValueJsonInWindow,
ga as setHashParamValueUriEncodedInUrl,
ua as setHashParamValueUriEncodedInWindow,
Ia as setHashParamsInUrl,
I as stringFromBase64String,
u as stringToBase64String,
H as useHashParam,
B as useHashParamBase64,
W as useHashParamBoolean,
E as useHashParamFloat,
J as useHashParamInt,
p as useHashParamJson,
w as useHashParamUriEncoded
};
//# sourceMappingURL=index.js.map