synapse-react-client
Version:
[](https://badge.fury.io/js/synapse-react-client) [](https://github.com/prettier/prettie
203 lines (202 loc) • 4.2 kB
JavaScript
import { cloneDeep as f, isEqual as B } from "lodash-es";
import { useMemo as F, useCallback as r, useEffect as d } from "react";
import G from "use-deep-compare-effect";
import { getQueryRequestFromLink as I, updateUrlWithNewSearchParam as g } from "../../functions/deepLinkingUtils.js";
import { removeEmptyQueryParams as Y } from "../../functions/queryUtils.js";
import { parseEntityIdAndVersionFromSqlStatement as Z } from "../../functions/SqlFunctions.js";
import { DEFAULT_PAGE_SIZE as j } from "../../SynapseConstants.js";
import { useTableQueryReducer as H } from "./useTableQueryReducer.js";
const re = 750;
function J(i, a, y, n, m) {
d(() => {
i && I(
a,
n.query
).then((o) => {
o && o.query && y((u) => ({
...u,
...o,
query: {
...u.query,
...o.query
}
}));
});
}, [a]), d(() => (i && (B(n, m) ? g(
"qw",
a,
null,
null
).catch((o) => {
console.error("Failed to update URL with search param:", o);
}) : g(
"qw",
a,
m.query,
n.query
).catch((o) => {
console.error("Failed to update URL with search param:", o);
})), () => {
i && g(
"qw",
a,
null,
n.query
);
}), [a, m, n, i]);
}
function oe(i) {
const {
initQueryRequest: a,
componentIndex: y = 0,
shouldDeepLink: n = !1,
onQueryChange: m,
requireConfirmationOnChange: o = !1
} = i, u = F(() => {
const t = f(a);
return t.query = Y(t.query), t;
}, [a]), {
currentQueryRequest: s,
nextQueryRequest: C,
isConfirmingChange: Q,
dispatch: e
} = H(
u,
o,
m
), S = r(() => {
e({ type: "confirmChanges" });
}, [e]), v = r(() => f(s), [s]), E = r(() => f(u), [u]), h = r(
(t, c) => {
e({
type: "setQuery",
queryOrUpdater: t,
commitOptions: c
});
},
[e]
);
J(
n,
y,
h,
u,
s
);
const P = r(() => {
e({ type: "cancelChanges" });
}, [e]), { entityId: V, versionNumber: b } = F(
() => Z(s.query.sql),
[s.query.sql]
), p = s.query.limit ?? j, T = Math.ceil(
((s.query.offset ?? 0) + Number(p)) / p
), U = r(
(t) => {
e({ type: "setPageSize", pageSize: t });
},
[e]
), w = r(
(t) => {
e({ type: "goToPage", pageNumber: t });
},
[e]
), q = r(() => {
e({
type: "resetQuery"
});
}, [e]);
G(() => {
s != u && q();
}, [u]);
const z = r(
(t, c, l) => {
e({
type: "addValueToSelectedFacet",
facet: t,
value: c,
commitOptions: l
});
},
[e]
), D = r(
(t, c, l, W) => {
e({
type: "setRangeFacetValue",
facet: t,
min: c,
max: l,
commitOptions: W
});
},
[e]
), A = r(
(t) => {
e({
type: "removeSelectedFacet",
facetsToRemove: t
});
},
[e]
), N = r(
(t, c, l) => {
e({
type: "removeValueFromSelectedFacet",
facet: t,
value: c,
commitOptions: l
});
},
[e]
), R = r(
(t) => {
e({
type: "removeQueryFilter",
queryFilter: t
});
},
[e]
), _ = r(
(t, c) => {
e({
type: "removeValueFromQueryFilter",
queryFilter: t,
value: c
});
},
[e]
), M = r(() => {
e({ type: "commitChanges" });
}, [e]), O = r(() => {
e({ type: "resetDebounce" });
}, [e]);
return {
entityId: V,
commitChanges: M,
resetDebounceTimer: O,
currentQueryRequest: s,
nextQueryRequest: C,
versionNumber: b,
getInitQueryRequest: E,
getCurrentQueryRequest: v,
setQuery: h,
pageSize: p,
currentPage: T,
setPageSize: U,
goToPage: w,
resetQuery: q,
removeSelectedFacet: A,
removeValueFromSelectedFacet: N,
removeQueryFilter: R,
removeValueFromQueryFilter: _,
isConfirmingChange: Q,
onConfirmChange: S,
onCancelChange: P,
addValueToSelectedFacet: z,
setRangeFacetValue: D
};
}
export {
re as DEBOUNCE_DELAY_MS,
oe as default
};
//# sourceMappingURL=useImmutableTableQuery.js.map