UNPKG

synapse-react-client

Version:

[![npm version](https://badge.fury.io/js/synapse-react-client.svg)](https://badge.fury.io/js/synapse-react-client) [![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettie

203 lines (202 loc) 4.2 kB
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