@usebridge/sdk-react 0.4.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +123 -61
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +88 -26
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
package/dist/index.cjs
CHANGED
|
@@ -187,32 +187,57 @@ __export(index_exports, {
|
|
|
187
187
|
module.exports = __toCommonJS(index_exports);
|
|
188
188
|
|
|
189
189
|
// src/sdk/index.tsx
|
|
190
|
-
var
|
|
190
|
+
var import_react3 = require("react");
|
|
191
191
|
var import_sdk_core2 = require("@usebridge/sdk-core");
|
|
192
192
|
|
|
193
193
|
// src/sdk/use-prefetch-payers.ts
|
|
194
194
|
var import_sdk_core = require("@usebridge/sdk-core");
|
|
195
195
|
var import_react = require("react");
|
|
196
196
|
function usePrefetchPayers(bridgeSdk, enabled) {
|
|
197
|
+
const fetched = (0, import_react.useRef)(false);
|
|
197
198
|
(0, import_react.useEffect)(() => {
|
|
199
|
+
if (fetched.current) return;
|
|
198
200
|
if (enabled) {
|
|
199
201
|
void Promise.all(
|
|
200
202
|
["", "b", "u", "a"].map((query) => bridgeSdk.payerSearch({ query, limit: 10 }))
|
|
201
203
|
);
|
|
204
|
+
fetched.current = true;
|
|
202
205
|
}
|
|
203
206
|
}, [bridgeSdk, enabled]);
|
|
204
207
|
}
|
|
205
208
|
|
|
209
|
+
// src/sdk/use-analytics-lifecycle.ts
|
|
210
|
+
var import_react2 = require("react");
|
|
211
|
+
function useAnalyticsLifecycle(bridgeSdk) {
|
|
212
|
+
(0, import_react2.useEffect)(() => {
|
|
213
|
+
return () => {
|
|
214
|
+
bridgeSdk._analytics.flush();
|
|
215
|
+
};
|
|
216
|
+
}, [bridgeSdk]);
|
|
217
|
+
(0, import_react2.useEffect)(() => {
|
|
218
|
+
const flush = () => {
|
|
219
|
+
if (document.visibilityState === "hidden") bridgeSdk._analytics.flush();
|
|
220
|
+
};
|
|
221
|
+
if (typeof window !== "undefined") window.addEventListener("visibilitychange", flush);
|
|
222
|
+
return () => {
|
|
223
|
+
if (typeof window !== "undefined") window.removeEventListener("visibilitychange", flush);
|
|
224
|
+
};
|
|
225
|
+
}, [bridgeSdk]);
|
|
226
|
+
}
|
|
227
|
+
|
|
206
228
|
// src/sdk/index.tsx
|
|
207
229
|
var import_jsx_runtime = require("react/jsx-runtime");
|
|
208
|
-
var BridgeSdkContext = (0,
|
|
230
|
+
var BridgeSdkContext = (0, import_react3.createContext)(null);
|
|
209
231
|
var BridgeSdkProvider = ({
|
|
210
232
|
config,
|
|
211
233
|
prefetchPayers = true,
|
|
212
234
|
children
|
|
213
235
|
}) => {
|
|
214
|
-
const
|
|
236
|
+
const sdkRef = (0, import_react3.useRef)(null);
|
|
237
|
+
if (!sdkRef.current) sdkRef.current = new import_sdk_core2.BridgeSdk(config);
|
|
238
|
+
const current = sdkRef.current;
|
|
215
239
|
usePrefetchPayers(current, prefetchPayers);
|
|
240
|
+
useAnalyticsLifecycle(current);
|
|
216
241
|
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(BridgeSdkContext.Provider, { value: current, children: [
|
|
217
242
|
" ",
|
|
218
243
|
children,
|
|
@@ -220,26 +245,26 @@ var BridgeSdkProvider = ({
|
|
|
220
245
|
] });
|
|
221
246
|
};
|
|
222
247
|
function useBridgeSdk() {
|
|
223
|
-
const context = (0,
|
|
248
|
+
const context = (0, import_react3.useContext)(BridgeSdkContext);
|
|
224
249
|
if (!context) throw new Error("useBridgeSdk must be used within a BridgeSdkProvider");
|
|
225
250
|
return context;
|
|
226
251
|
}
|
|
227
252
|
|
|
228
253
|
// src/payer-search/use-payer-autocomplete.ts
|
|
229
|
-
var
|
|
254
|
+
var import_react6 = require("react");
|
|
230
255
|
|
|
231
256
|
// ../../node_modules/usehooks-ts/dist/index.js
|
|
232
|
-
var
|
|
257
|
+
var import_react4 = require("react");
|
|
233
258
|
var import_lodash = __toESM(require_lodash(), 1);
|
|
234
259
|
function useIsMounted() {
|
|
235
|
-
const isMounted = (0,
|
|
236
|
-
(0,
|
|
260
|
+
const isMounted = (0, import_react4.useRef)(false);
|
|
261
|
+
(0, import_react4.useEffect)(() => {
|
|
237
262
|
isMounted.current = true;
|
|
238
263
|
return () => {
|
|
239
264
|
isMounted.current = false;
|
|
240
265
|
};
|
|
241
266
|
}, []);
|
|
242
|
-
return (0,
|
|
267
|
+
return (0, import_react4.useCallback)(() => isMounted.current, []);
|
|
243
268
|
}
|
|
244
269
|
|
|
245
270
|
// src/lib/retry-loop.ts
|
|
@@ -254,7 +279,7 @@ async function retryLoop(fn, shouldRetry, delayMs = 500) {
|
|
|
254
279
|
while (!cancelled) {
|
|
255
280
|
try {
|
|
256
281
|
return await fn();
|
|
257
|
-
} catch (
|
|
282
|
+
} catch (_) {
|
|
258
283
|
if (!shouldRetry()) {
|
|
259
284
|
cancelled = true;
|
|
260
285
|
} else {
|
|
@@ -266,10 +291,10 @@ async function retryLoop(fn, shouldRetry, delayMs = 500) {
|
|
|
266
291
|
}
|
|
267
292
|
|
|
268
293
|
// src/payer-search/use-payer-search.ts
|
|
269
|
-
var
|
|
294
|
+
var import_react5 = require("react");
|
|
270
295
|
function usePayerSearch() {
|
|
271
296
|
const sdk = useBridgeSdk();
|
|
272
|
-
return (0,
|
|
297
|
+
return (0, import_react5.useCallback)(
|
|
273
298
|
(...args) => sdk.payerSearch(...args),
|
|
274
299
|
[sdk]
|
|
275
300
|
);
|
|
@@ -1808,14 +1833,14 @@ var omit_default = omit;
|
|
|
1808
1833
|
var resultCache = /* @__PURE__ */ new Map();
|
|
1809
1834
|
function usePayerAutocomplete(query, {
|
|
1810
1835
|
limit = 10
|
|
1811
|
-
}) {
|
|
1836
|
+
} = {}) {
|
|
1812
1837
|
const payerSearch = usePayerSearch();
|
|
1813
|
-
const [isLoading, setIsLoading] = (0,
|
|
1814
|
-
const [results, setResults] = (0,
|
|
1838
|
+
const [isLoading, setIsLoading] = (0, import_react6.useState)(false);
|
|
1839
|
+
const [results, setResults] = (0, import_react6.useState)([]);
|
|
1815
1840
|
const normalizedQuery = query.trim().toLowerCase();
|
|
1816
|
-
const reqId = (0,
|
|
1841
|
+
const reqId = (0, import_react6.useRef)(0);
|
|
1817
1842
|
const isMounted = useIsMounted();
|
|
1818
|
-
(0,
|
|
1843
|
+
(0, import_react6.useEffect)(() => {
|
|
1819
1844
|
const thisId = ++reqId.current;
|
|
1820
1845
|
const cachedResults = resultCache.get(normalizedQuery);
|
|
1821
1846
|
if (cachedResults) {
|
|
@@ -1842,23 +1867,23 @@ function usePayerAutocomplete(query, {
|
|
|
1842
1867
|
}
|
|
1843
1868
|
void run();
|
|
1844
1869
|
}, [payerSearch, normalizedQuery, limit]);
|
|
1845
|
-
return (0,
|
|
1870
|
+
return (0, import_react6.useMemo)(
|
|
1846
1871
|
() => ({ isLoading, results: results.map((r) => omit_default(r, "code")) }),
|
|
1847
1872
|
[isLoading, results]
|
|
1848
1873
|
);
|
|
1849
1874
|
}
|
|
1850
1875
|
|
|
1851
1876
|
// src/soft-eligibility/soft-eligibility-provider.tsx
|
|
1852
|
-
var
|
|
1877
|
+
var import_react18 = require("react");
|
|
1853
1878
|
var import_sdk_core10 = require("@usebridge/sdk-core");
|
|
1854
1879
|
|
|
1855
1880
|
// src/soft-eligibility/soft-eligibility-context.ts
|
|
1856
1881
|
var import_sdk_core3 = require("@usebridge/sdk-core");
|
|
1857
|
-
var
|
|
1858
|
-
var SoftEligibilityContext = (0,
|
|
1882
|
+
var import_react7 = require("react");
|
|
1883
|
+
var SoftEligibilityContext = (0, import_react7.createContext)(null);
|
|
1859
1884
|
|
|
1860
1885
|
// src/eligibility-input/eligibility-input-provider.tsx
|
|
1861
|
-
var
|
|
1886
|
+
var import_react17 = require("react");
|
|
1862
1887
|
var import_zustand4 = require("zustand");
|
|
1863
1888
|
|
|
1864
1889
|
// src/eligibility-input/eligibility-input-store.ts
|
|
@@ -1894,24 +1919,24 @@ function createEligibilityInputStore(requirePatient) {
|
|
|
1894
1919
|
}
|
|
1895
1920
|
|
|
1896
1921
|
// src/eligibility-input/eligibility-input-context.ts
|
|
1897
|
-
var
|
|
1922
|
+
var import_react8 = require("react");
|
|
1898
1923
|
var import_zustand2 = require("zustand");
|
|
1899
|
-
var EligibilityInputContext = (0,
|
|
1924
|
+
var EligibilityInputContext = (0, import_react8.createContext)(null);
|
|
1900
1925
|
|
|
1901
1926
|
// src/hard-eligibility/use-create-hard-eligibility-session.ts
|
|
1902
|
-
var
|
|
1927
|
+
var import_react9 = require("react");
|
|
1903
1928
|
function useCreateHardEligibilitySession() {
|
|
1904
1929
|
const bridgeSdk = useBridgeSdk();
|
|
1905
|
-
return (0,
|
|
1930
|
+
return (0, import_react9.useCallback)(
|
|
1906
1931
|
(...args) => bridgeSdk.createHardEligibilitySession(...args),
|
|
1907
1932
|
[bridgeSdk]
|
|
1908
1933
|
);
|
|
1909
1934
|
}
|
|
1910
1935
|
|
|
1911
1936
|
// src/hard-eligibility/hard-eligibility-context.ts
|
|
1912
|
-
var
|
|
1937
|
+
var import_react10 = require("react");
|
|
1913
1938
|
var import_sdk_core4 = require("@usebridge/sdk-core");
|
|
1914
|
-
var HardEligibilityContext = (0,
|
|
1939
|
+
var HardEligibilityContext = (0, import_react10.createContext)(null);
|
|
1915
1940
|
|
|
1916
1941
|
// src/hard-eligibility/hard-eligibility-provider.tsx
|
|
1917
1942
|
var import_sdk_core5 = require("@usebridge/sdk-core");
|
|
@@ -1922,14 +1947,14 @@ var HardEligibilityProvider = ({
|
|
|
1922
1947
|
}) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(HardEligibilityContext.Provider, { value: session, children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(EligibilityInputProvider, { children }) });
|
|
1923
1948
|
|
|
1924
1949
|
// src/hard-eligibility/use-hard-eligibility-state.ts
|
|
1925
|
-
var
|
|
1950
|
+
var import_react12 = require("react");
|
|
1926
1951
|
var import_sdk_core7 = require("@usebridge/sdk-core");
|
|
1927
1952
|
|
|
1928
1953
|
// src/hard-eligibility/use-hard-eligibility.ts
|
|
1929
|
-
var
|
|
1954
|
+
var import_react11 = require("react");
|
|
1930
1955
|
var import_sdk_core6 = require("@usebridge/sdk-core");
|
|
1931
1956
|
function useHardEligibilitySession() {
|
|
1932
|
-
const session = (0,
|
|
1957
|
+
const session = (0, import_react11.useContext)(HardEligibilityContext);
|
|
1933
1958
|
if (!session) throw new Error("useHardEligibilitySession must be within a SoftEligibilityContext");
|
|
1934
1959
|
return session;
|
|
1935
1960
|
}
|
|
@@ -1937,8 +1962,8 @@ function useHardEligibilitySession() {
|
|
|
1937
1962
|
// src/hard-eligibility/use-hard-eligibility-state.ts
|
|
1938
1963
|
function useHardEligibilityState() {
|
|
1939
1964
|
const session = useHardEligibilitySession();
|
|
1940
|
-
const [state, setState] = (0,
|
|
1941
|
-
(0,
|
|
1965
|
+
const [state, setState] = (0, import_react12.useState)(session.state);
|
|
1966
|
+
(0, import_react12.useEffect)(() => {
|
|
1942
1967
|
session.on("update", setState);
|
|
1943
1968
|
return () => {
|
|
1944
1969
|
session.removeListener("update", setState);
|
|
@@ -1948,13 +1973,13 @@ function useHardEligibilityState() {
|
|
|
1948
1973
|
}
|
|
1949
1974
|
|
|
1950
1975
|
// src/hard-eligibility/use-hard-eligibility-submit.ts
|
|
1951
|
-
var
|
|
1976
|
+
var import_react15 = require("react");
|
|
1952
1977
|
|
|
1953
1978
|
// src/eligibility-input/use-eligibility-input.ts
|
|
1954
|
-
var
|
|
1979
|
+
var import_react13 = require("react");
|
|
1955
1980
|
var import_zustand3 = require("zustand");
|
|
1956
1981
|
var useEligibilityInput = () => {
|
|
1957
|
-
const store = (0,
|
|
1982
|
+
const store = (0, import_react13.useContext)(EligibilityInputContext);
|
|
1958
1983
|
if (!store) throw new Error("useEligibilityInputStore must be within an EligibilityInputProvider");
|
|
1959
1984
|
return (0, import_zustand3.useStore)(store);
|
|
1960
1985
|
};
|
|
@@ -1963,30 +1988,30 @@ var useEligibilityInput = () => {
|
|
|
1963
1988
|
var import_sdk_core9 = require("@usebridge/sdk-core");
|
|
1964
1989
|
|
|
1965
1990
|
// src/eligibility-input/use-eligibility-input-field.ts
|
|
1966
|
-
var
|
|
1991
|
+
var import_react14 = require("react");
|
|
1967
1992
|
var import_sdk_core8 = require("@usebridge/sdk-core");
|
|
1968
1993
|
function useEligibilityInputField(field, defaultValue) {
|
|
1969
1994
|
const input = useEligibilityInput();
|
|
1970
1995
|
const inputField = input[field];
|
|
1971
1996
|
const { requirePatient } = input;
|
|
1972
1997
|
const { value, set } = inputField;
|
|
1973
|
-
const hardEligibilityContext = (0,
|
|
1998
|
+
const hardEligibilityContext = (0, import_react14.useContext)(HardEligibilityContext);
|
|
1974
1999
|
let isDisabled = false;
|
|
1975
|
-
const [forceMemberId, setForceMemberId] = (0,
|
|
2000
|
+
const [forceMemberId, setForceMemberId] = (0, import_react14.useState)(false);
|
|
1976
2001
|
const errorForceMemberId = hardEligibilityContext?.state.error?.forceMemberId;
|
|
1977
|
-
(0,
|
|
2002
|
+
(0, import_react14.useEffect)(() => {
|
|
1978
2003
|
if (errorForceMemberId) setForceMemberId(true);
|
|
1979
2004
|
}, [errorForceMemberId]);
|
|
1980
2005
|
try {
|
|
1981
2006
|
const { status } = useHardEligibilityState();
|
|
1982
2007
|
isDisabled = !import_sdk_core8.HardEligibility.canSubmit(status);
|
|
1983
2008
|
if (status === "WAITING_FOR_SERVICE_ELIGIBILITY") isDisabled = true;
|
|
1984
|
-
} catch (
|
|
2009
|
+
} catch (_) {
|
|
1985
2010
|
}
|
|
1986
2011
|
try {
|
|
1987
2012
|
const { status } = useSoftEligibilityState();
|
|
1988
2013
|
isDisabled = !import_sdk_core8.SoftEligibility.canSubmit(status);
|
|
1989
|
-
} catch (
|
|
2014
|
+
} catch (_) {
|
|
1990
2015
|
}
|
|
1991
2016
|
if (requirePatient && !hardEligibilityContext)
|
|
1992
2017
|
throw new Error(`useEligibilityInputField("${field}") requires a HardEligibilityContext`);
|
|
@@ -2029,13 +2054,13 @@ function useEligibilityInputField(field, defaultValue) {
|
|
|
2029
2054
|
throw new Error(`Unknown field: ${field}`);
|
|
2030
2055
|
}
|
|
2031
2056
|
const setValue = set;
|
|
2032
|
-
const hasSetDefaultValue = (0,
|
|
2033
|
-
(0,
|
|
2057
|
+
const hasSetDefaultValue = (0, import_react14.useRef)(false);
|
|
2058
|
+
(0, import_react14.useLayoutEffect)(() => {
|
|
2034
2059
|
if (hasSetDefaultValue.current) return;
|
|
2035
2060
|
if (defaultValue) setValue(defaultValue);
|
|
2036
2061
|
hasSetDefaultValue.current = true;
|
|
2037
2062
|
}, [setValue, defaultValue]);
|
|
2038
|
-
return (0,
|
|
2063
|
+
return (0, import_react14.useMemo)(
|
|
2039
2064
|
() => ({
|
|
2040
2065
|
value,
|
|
2041
2066
|
setValue,
|
|
@@ -2069,7 +2094,7 @@ function useHardEligibilitySubmit() {
|
|
|
2069
2094
|
const usesExistingPolicy = session.usesExistingPolicy;
|
|
2070
2095
|
const inputIsValid = usesExistingPolicy ? Boolean(state.value) : useEligibilityInputIsValid();
|
|
2071
2096
|
const isDisabled = !inputIsValid || !import_sdk_core9.HardEligibility.canSubmit(status);
|
|
2072
|
-
const submit = (0,
|
|
2097
|
+
const submit = (0, import_react15.useCallback)(
|
|
2073
2098
|
({ clinicalInfo } = {}) => {
|
|
2074
2099
|
if (!state.value) throw new Error("State is required");
|
|
2075
2100
|
const submitArgs = {
|
|
@@ -2092,15 +2117,49 @@ function useHardEligibilitySubmit() {
|
|
|
2092
2117
|
},
|
|
2093
2118
|
[session, state, payer, firstName, lastName, dateOfBirth, memberId]
|
|
2094
2119
|
);
|
|
2095
|
-
return (0,
|
|
2120
|
+
return (0, import_react15.useMemo)(() => ({ isDisabled, submit }), [isDisabled, submit]);
|
|
2121
|
+
}
|
|
2122
|
+
|
|
2123
|
+
// src/eligibility-input/eligibility-input-analytics.tsx
|
|
2124
|
+
var import_react16 = require("react");
|
|
2125
|
+
function useEligibilityInputFieldState(field) {
|
|
2126
|
+
const fieldState = useEligibilityInputField(field);
|
|
2127
|
+
return (0, import_react16.useMemo)(
|
|
2128
|
+
() => omit_default(fieldState, "setValue"),
|
|
2129
|
+
[
|
|
2130
|
+
fieldState.value,
|
|
2131
|
+
fieldState.isVisible,
|
|
2132
|
+
fieldState.isValid,
|
|
2133
|
+
fieldState.isRequired,
|
|
2134
|
+
fieldState.isDisabled
|
|
2135
|
+
]
|
|
2136
|
+
);
|
|
2096
2137
|
}
|
|
2138
|
+
var EligibilityInputAnalytics = () => {
|
|
2139
|
+
const { _analytics: analytics } = useBridgeSdk();
|
|
2140
|
+
const firstName = useEligibilityInputFieldState("firstName");
|
|
2141
|
+
const lastName = useEligibilityInputFieldState("lastName");
|
|
2142
|
+
const dateOfBirth = useEligibilityInputFieldState("dateOfBirth");
|
|
2143
|
+
const memberId = useEligibilityInputFieldState("memberId");
|
|
2144
|
+
const payer = useEligibilityInputFieldState("payer");
|
|
2145
|
+
const state = useEligibilityInputFieldState("state");
|
|
2146
|
+
const isValid = useEligibilityInputIsValid();
|
|
2147
|
+
const payload = (0, import_react16.useMemo)(
|
|
2148
|
+
() => ({ firstName, lastName, dateOfBirth, memberId, payer, state, isValid }),
|
|
2149
|
+
[firstName, lastName, dateOfBirth, memberId, payer, state, isValid]
|
|
2150
|
+
);
|
|
2151
|
+
(0, import_react16.useEffect)(() => {
|
|
2152
|
+
analytics.event("input.state.updated", payload);
|
|
2153
|
+
}, [analytics, payload]);
|
|
2154
|
+
return null;
|
|
2155
|
+
};
|
|
2097
2156
|
|
|
2098
2157
|
// src/eligibility-input/eligibility-input-provider.tsx
|
|
2099
2158
|
var import_jsx_runtime3 = require("react/jsx-runtime");
|
|
2100
2159
|
var EligibilityInputProvider = ({ children }) => {
|
|
2101
|
-
const storeRef = (0,
|
|
2102
|
-
const softEligibilityContext = (0,
|
|
2103
|
-
const hardEligibilityContext = (0,
|
|
2160
|
+
const storeRef = (0, import_react17.useRef)(null);
|
|
2161
|
+
const softEligibilityContext = (0, import_react17.useContext)(SoftEligibilityContext);
|
|
2162
|
+
const hardEligibilityContext = (0, import_react17.useContext)(HardEligibilityContext);
|
|
2104
2163
|
if (!storeRef.current) {
|
|
2105
2164
|
let requirePatient;
|
|
2106
2165
|
if (softEligibilityContext) requirePatient = false;
|
|
@@ -2108,7 +2167,10 @@ var EligibilityInputProvider = ({ children }) => {
|
|
|
2108
2167
|
else throw new Error("Missing SoftEligibilityContext or HardEligibilityContext");
|
|
2109
2168
|
storeRef.current = createEligibilityInputStore(requirePatient);
|
|
2110
2169
|
}
|
|
2111
|
-
return /* @__PURE__ */ (0, import_jsx_runtime3.
|
|
2170
|
+
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(EligibilityInputContext.Provider, { value: storeRef.current, children: [
|
|
2171
|
+
children,
|
|
2172
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsx)(EligibilityInputAnalytics, {})
|
|
2173
|
+
] });
|
|
2112
2174
|
};
|
|
2113
2175
|
|
|
2114
2176
|
// src/soft-eligibility/soft-eligibility-provider.tsx
|
|
@@ -2119,24 +2181,24 @@ var SoftEligibilityProvider = ({
|
|
|
2119
2181
|
}) => /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(SoftEligibilityContext.Provider, { value: session, children: /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(EligibilityInputProvider, { children }) });
|
|
2120
2182
|
|
|
2121
2183
|
// src/soft-eligibility/use-create-soft-eligibility-session.ts
|
|
2122
|
-
var
|
|
2184
|
+
var import_react19 = require("react");
|
|
2123
2185
|
function useCreateSoftEligibilitySession() {
|
|
2124
2186
|
const bridgeSdk = useBridgeSdk();
|
|
2125
|
-
return (0,
|
|
2187
|
+
return (0, import_react19.useCallback)(
|
|
2126
2188
|
(...args) => bridgeSdk.createSoftEligibilitySession(...args),
|
|
2127
2189
|
[bridgeSdk]
|
|
2128
2190
|
);
|
|
2129
2191
|
}
|
|
2130
2192
|
|
|
2131
2193
|
// src/soft-eligibility/use-soft-eligibility-state.ts
|
|
2132
|
-
var
|
|
2194
|
+
var import_react21 = require("react");
|
|
2133
2195
|
var import_sdk_core12 = require("@usebridge/sdk-core");
|
|
2134
2196
|
|
|
2135
2197
|
// src/soft-eligibility/use-soft-eligibility.ts
|
|
2136
|
-
var
|
|
2198
|
+
var import_react20 = require("react");
|
|
2137
2199
|
var import_sdk_core11 = require("@usebridge/sdk-core");
|
|
2138
2200
|
function useSoftEligibilitySession() {
|
|
2139
|
-
const session = (0,
|
|
2201
|
+
const session = (0, import_react20.useContext)(SoftEligibilityContext);
|
|
2140
2202
|
if (!session) throw new Error("useSoftEligibilitySession must be within a SoftEligibilityContext");
|
|
2141
2203
|
return session;
|
|
2142
2204
|
}
|
|
@@ -2144,8 +2206,8 @@ function useSoftEligibilitySession() {
|
|
|
2144
2206
|
// src/soft-eligibility/use-soft-eligibility-state.ts
|
|
2145
2207
|
function useSoftEligibilityState() {
|
|
2146
2208
|
const session = useSoftEligibilitySession();
|
|
2147
|
-
const [state, setState] = (0,
|
|
2148
|
-
(0,
|
|
2209
|
+
const [state, setState] = (0, import_react21.useState)(session.state);
|
|
2210
|
+
(0, import_react21.useEffect)(() => {
|
|
2149
2211
|
session.on("update", setState);
|
|
2150
2212
|
return () => {
|
|
2151
2213
|
session.removeListener("update", setState);
|
|
@@ -2155,7 +2217,7 @@ function useSoftEligibilityState() {
|
|
|
2155
2217
|
}
|
|
2156
2218
|
|
|
2157
2219
|
// src/soft-eligibility/use-soft-eligibility-submit.ts
|
|
2158
|
-
var
|
|
2220
|
+
var import_react22 = require("react");
|
|
2159
2221
|
var import_sdk_core13 = require("@usebridge/sdk-core");
|
|
2160
2222
|
function useSoftEligibilitySubmit() {
|
|
2161
2223
|
const session = useSoftEligibilitySession();
|
|
@@ -2163,12 +2225,12 @@ function useSoftEligibilitySubmit() {
|
|
|
2163
2225
|
const { status } = useSoftEligibilityState();
|
|
2164
2226
|
const inputIsValid = useEligibilityInputIsValid();
|
|
2165
2227
|
const isDisabled = !inputIsValid || !import_sdk_core13.SoftEligibility.canSubmit(status);
|
|
2166
|
-
const submit = (0,
|
|
2228
|
+
const submit = (0, import_react22.useCallback)(() => {
|
|
2167
2229
|
if (!payer.value) throw new Error("Payer is required");
|
|
2168
2230
|
if (!state.value) throw new Error("State is required");
|
|
2169
2231
|
return session.submit({ payerId: payer.value.id, state: state.value });
|
|
2170
2232
|
}, [session, payer, state]);
|
|
2171
|
-
return (0,
|
|
2233
|
+
return (0, import_react22.useMemo)(
|
|
2172
2234
|
() => ({
|
|
2173
2235
|
isDisabled,
|
|
2174
2236
|
submit
|