@bigmi/react 0.7.1 → 0.8.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.
Files changed (97) hide show
  1. package/dist/cjs/context.d.ts +15 -0
  2. package/dist/cjs/context.js +16 -0
  3. package/dist/cjs/context.js.map +1 -0
  4. package/dist/cjs/errors/context.d.ts +13 -0
  5. package/dist/cjs/errors/context.js +13 -0
  6. package/dist/cjs/errors/context.js.map +1 -0
  7. package/dist/cjs/hooks/useAccount.d.ts +11 -0
  8. package/dist/cjs/hooks/useAccount.js +26 -0
  9. package/dist/cjs/hooks/useAccount.js.map +1 -0
  10. package/dist/cjs/hooks/useConfig.d.ts +13 -0
  11. package/dist/cjs/hooks/useConfig.js +15 -0
  12. package/dist/cjs/hooks/useConfig.js.map +1 -0
  13. package/dist/cjs/hooks/useConnect.d.ts +20 -0
  14. package/dist/cjs/hooks/useConnect.js +32 -0
  15. package/dist/cjs/hooks/useConnect.js.map +1 -0
  16. package/dist/cjs/hooks/useConnectors.d.ts +11 -0
  17. package/dist/cjs/hooks/useConnectors.js +15 -0
  18. package/dist/cjs/hooks/useConnectors.js.map +1 -0
  19. package/dist/cjs/hooks/useReconnect.d.ts +7 -0
  20. package/dist/cjs/hooks/useReconnect.js +14 -0
  21. package/dist/cjs/hooks/useReconnect.js.map +1 -0
  22. package/dist/cjs/hooks/useSyncExternalStoreWithTracked.d.ts +5 -0
  23. package/dist/cjs/hooks/useSyncExternalStoreWithTracked.js +41 -0
  24. package/dist/cjs/hooks/useSyncExternalStoreWithTracked.js.map +1 -0
  25. package/dist/cjs/hydrate.d.ts +21 -0
  26. package/dist/cjs/hydrate.js +45 -0
  27. package/dist/cjs/hydrate.js.map +1 -0
  28. package/dist/cjs/index.d.ts +6 -0
  29. package/dist/cjs/index.js +12 -0
  30. package/dist/cjs/package.json +1 -0
  31. package/dist/cjs/types.d.ts +12 -0
  32. package/dist/cjs/types.js +0 -0
  33. package/dist/cjs/utils/query.d.ts +9 -0
  34. package/dist/cjs/utils/query.js +1 -0
  35. package/dist/cjs/version.d.ts +6 -0
  36. package/dist/cjs/version.js +9 -0
  37. package/dist/cjs/version.js.map +1 -0
  38. package/dist/esm/context.d.ts +14 -9
  39. package/dist/esm/context.d.ts.map +1 -0
  40. package/dist/esm/context.js +12 -8
  41. package/dist/esm/context.js.map +1 -1
  42. package/dist/esm/errors/context.d.ts +11 -6
  43. package/dist/esm/errors/context.d.ts.map +1 -0
  44. package/dist/esm/errors/context.js +11 -7
  45. package/dist/esm/errors/context.js.map +1 -1
  46. package/dist/esm/hooks/useAccount.d.ts +11 -6
  47. package/dist/esm/hooks/useAccount.d.ts.map +1 -0
  48. package/dist/esm/hooks/useAccount.js +23 -7
  49. package/dist/esm/hooks/useAccount.js.map +1 -1
  50. package/dist/esm/hooks/useConfig.d.ts +12 -7
  51. package/dist/esm/hooks/useConfig.d.ts.map +1 -0
  52. package/dist/esm/hooks/useConfig.js +12 -11
  53. package/dist/esm/hooks/useConfig.js.map +1 -1
  54. package/dist/esm/hooks/useConnect.d.ts +18 -13
  55. package/dist/esm/hooks/useConnect.d.ts.map +1 -0
  56. package/dist/esm/hooks/useConnect.js +29 -28
  57. package/dist/esm/hooks/useConnect.js.map +1 -1
  58. package/dist/esm/hooks/useConnectors.d.ts +11 -6
  59. package/dist/esm/hooks/useConnectors.d.ts.map +1 -0
  60. package/dist/esm/hooks/useConnectors.js +12 -7
  61. package/dist/esm/hooks/useConnectors.js.map +1 -1
  62. package/dist/esm/hooks/useReconnect.d.ts +7 -2
  63. package/dist/esm/hooks/useReconnect.d.ts.map +1 -0
  64. package/dist/esm/hooks/useReconnect.js +11 -7
  65. package/dist/esm/hooks/useReconnect.js.map +1 -1
  66. package/dist/esm/hooks/useSyncExternalStoreWithTracked.d.ts +5 -1
  67. package/dist/esm/hooks/useSyncExternalStoreWithTracked.d.ts.map +1 -0
  68. package/dist/esm/hooks/useSyncExternalStoreWithTracked.js +38 -42
  69. package/dist/esm/hooks/useSyncExternalStoreWithTracked.js.map +1 -1
  70. package/dist/esm/hydrate.d.ts +17 -13
  71. package/dist/esm/hydrate.d.ts.map +1 -0
  72. package/dist/esm/hydrate.js +40 -58
  73. package/dist/esm/hydrate.js.map +1 -1
  74. package/dist/esm/index.d.ts +6 -6
  75. package/dist/esm/index.js +6 -6
  76. package/dist/esm/package.json +1 -0
  77. package/dist/esm/types.d.ts +11 -6
  78. package/dist/esm/types.d.ts.map +1 -0
  79. package/dist/esm/types.js +0 -1
  80. package/dist/esm/utils/query.d.ts +9 -4
  81. package/dist/esm/utils/query.d.ts.map +1 -0
  82. package/dist/esm/utils/query.js +1 -2
  83. package/dist/esm/version.d.ts +6 -2
  84. package/dist/esm/version.d.ts.map +1 -0
  85. package/dist/esm/version.js +6 -2
  86. package/dist/esm/version.js.map +1 -1
  87. package/package.json +3 -3
  88. package/src/context.ts +10 -5
  89. package/src/hooks/useAccount.ts +15 -1
  90. package/src/hooks/useConnectors.ts +3 -1
  91. package/src/hooks/useReconnect.ts +1 -1
  92. package/src/hooks/useSyncExternalStoreWithTracked.ts +1 -1
  93. package/src/hydrate.ts +5 -2
  94. package/src/version.ts +1 -1
  95. package/dist/esm/index.js.map +0 -1
  96. package/dist/esm/types.js.map +0 -1
  97. package/dist/esm/utils/query.js.map +0 -1
@@ -1,61 +1,43 @@
1
- 'use client';
2
- import { reconnect } from '@bigmi/client';
3
- import { useEffect, useRef } from 'react';
4
- export function hydrate(config, parameters) {
5
- const { initialState, reconnectOnMount } = parameters;
6
- if (initialState && !config._internal.store.persist.hasHydrated()) {
7
- config.setState({
8
- ...initialState,
9
- chainId: config.chains.some((x) => x.id === initialState.chainId)
10
- ? initialState.chainId
11
- : config.chains[0].id,
12
- connections: reconnectOnMount ? initialState.connections : new Map(),
13
- status: reconnectOnMount ? 'reconnecting' : 'disconnected',
14
- });
15
- }
16
- return {
17
- async onMount() {
18
- if (config._internal.ssr) {
19
- await config._internal.store.persist.rehydrate();
20
- }
21
- if (reconnectOnMount) {
22
- reconnect(config);
23
- }
24
- else if (config.storage) {
25
- // Reset connections that may have been hydrated from storage.
26
- config.setState((x) => ({
27
- ...x,
28
- connections: new Map(),
29
- }));
30
- }
31
- },
32
- };
1
+ "use client";
2
+ import { useEffect, useRef } from "react";
3
+ import { reconnect } from "@bigmi/client";
4
+ //#region src/hydrate.ts
5
+ function hydrate(config, parameters) {
6
+ const { initialState, reconnectOnMount } = parameters;
7
+ if (initialState && !config._internal.store.persist.hasHydrated()) config.setState({
8
+ ...initialState,
9
+ chainId: config.chains.some((x) => x.id === initialState.chainId) ? initialState.chainId : config.chains[0].id,
10
+ connections: reconnectOnMount ? initialState.connections : /* @__PURE__ */ new Map(),
11
+ status: reconnectOnMount ? "reconnecting" : "disconnected"
12
+ });
13
+ return { async onMount() {
14
+ if (config._internal.ssr) await config._internal.store.persist.rehydrate();
15
+ if (reconnectOnMount) reconnect(config);
16
+ else if (config.storage) config.setState((x) => ({
17
+ ...x,
18
+ connections: /* @__PURE__ */ new Map()
19
+ }));
20
+ } };
33
21
  }
34
- export function Hydrate(parameters) {
35
- const { children, config, initialState, reconnectOnMount = true } = parameters;
36
- const { onMount } = hydrate(config, {
37
- initialState,
38
- reconnectOnMount,
39
- });
40
- // Hydrate for non-SSR
41
- if (!config._internal.ssr) {
42
- onMount();
43
- }
44
- // Hydrate for SSR
45
- const active = useRef(true);
46
- // biome-ignore lint/correctness/useExhaustiveDependencies: `queryKey` not required
47
- useEffect(() => {
48
- if (!active.current) {
49
- return;
50
- }
51
- if (!config._internal.ssr) {
52
- return;
53
- }
54
- onMount();
55
- return () => {
56
- active.current = false;
57
- };
58
- }, []);
59
- return children;
22
+ function Hydrate(parameters) {
23
+ const { children, config, initialState, reconnectOnMount = true } = parameters;
24
+ const { onMount } = hydrate(config, {
25
+ initialState,
26
+ reconnectOnMount
27
+ });
28
+ if (!config._internal.ssr) onMount();
29
+ const active = useRef(true);
30
+ useEffect(() => {
31
+ if (!active.current) return;
32
+ if (!config._internal.ssr) return;
33
+ onMount();
34
+ return () => {
35
+ active.current = false;
36
+ };
37
+ }, []);
38
+ return children;
60
39
  }
40
+ //#endregion
41
+ export { Hydrate, hydrate };
42
+
61
43
  //# sourceMappingURL=hydrate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hydrate.js","sourceRoot":"","sources":["../../src/hydrate.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,EAAe,SAAS,EAAc,MAAM,eAAe,CAAA;AAElE,OAAO,EAAqB,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAe5D,MAAM,UAAU,OAAO,CAAC,MAAc,EAAE,UAA6B;IACnE,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,UAAU,CAAA;IAErD,IAAI,YAAY,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;QAClE,MAAM,CAAC,QAAQ,CAAC;YACd,GAAG,YAAY;YACf,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,YAAY,CAAC,OAAO,CAAC;gBAC/D,CAAC,CAAC,YAAY,CAAC,OAAO;gBACtB,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;YACvB,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,GAAG,EAAE;YACpE,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc;SAC3D,CAAC,CAAA;IACJ,CAAC;IAED,OAAO;QACL,KAAK,CAAC,OAAO;YACX,IAAI,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;gBACzB,MAAM,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,CAAA;YAClD,CAAC;YAED,IAAI,gBAAgB,EAAE,CAAC;gBACrB,SAAS,CAAC,MAAM,CAAC,CAAA;YACnB,CAAC;iBAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBAC1B,8DAA8D;gBAC9D,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACtB,GAAG,CAAC;oBACJ,WAAW,EAAE,IAAI,GAAG,EAAE;iBACvB,CAAC,CAAC,CAAA;YACL,CAAC;QACH,CAAC;KACF,CAAA;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,UAAiD;IACvE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,gBAAgB,GAAG,IAAI,EAAE,GAAG,UAAU,CAAA;IAE9E,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE;QAClC,YAAY;QACZ,gBAAgB;KACjB,CAAC,CAAA;IAEF,sBAAsB;IACtB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QAC1B,OAAO,EAAE,CAAA;IACX,CAAC;IAED,kBAAkB;IAClB,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAC3B,mFAAmF;IACnF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YAC1B,OAAM;QACR,CAAC;QACD,OAAO,EAAE,CAAA;QACT,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,OAAO,GAAG,KAAK,CAAA;QACxB,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,QAAwB,CAAA;AACjC,CAAC"}
1
+ {"version":3,"file":"hydrate.js","names":[],"sources":["../../src/hydrate.ts"],"sourcesContent":["'use client'\n\nimport { type Config, reconnect, type State } from '@bigmi/client'\n\nimport { type ReactElement, useEffect, useRef } from 'react'\n\nimport type { ResolvedRegister } from './types.js'\n\nexport type HydrateProps = {\n config: ResolvedRegister['config']\n initialState?: State | undefined\n reconnectOnMount?: boolean | undefined\n}\n\ntype HydrateParameters = {\n initialState?: State | undefined\n reconnectOnMount?: boolean | undefined\n}\n\nexport function hydrate(\n config: Config,\n parameters: HydrateParameters\n): { onMount(): Promise<void> } {\n const { initialState, reconnectOnMount } = parameters\n\n if (initialState && !config._internal.store.persist.hasHydrated()) {\n config.setState({\n ...initialState,\n chainId: config.chains.some((x) => x.id === initialState.chainId)\n ? initialState.chainId\n : config.chains[0].id,\n connections: reconnectOnMount ? initialState.connections : new Map(),\n status: reconnectOnMount ? 'reconnecting' : 'disconnected',\n })\n }\n\n return {\n async onMount(): Promise<void> {\n if (config._internal.ssr) {\n await config._internal.store.persist.rehydrate()\n }\n\n if (reconnectOnMount) {\n reconnect(config)\n } else if (config.storage) {\n // Reset connections that may have been hydrated from storage.\n config.setState((x) => ({\n ...x,\n connections: new Map(),\n }))\n }\n },\n }\n}\n\nexport function Hydrate(parameters: React.PropsWithChildren<HydrateProps>) {\n const { children, config, initialState, reconnectOnMount = true } = parameters\n\n const { onMount } = hydrate(config, {\n initialState,\n reconnectOnMount,\n })\n\n // Hydrate for non-SSR\n if (!config._internal.ssr) {\n onMount()\n }\n\n // Hydrate for SSR\n const active = useRef(true)\n // biome-ignore lint/correctness/useExhaustiveDependencies: `queryKey` not required\n useEffect(() => {\n if (!active.current) {\n return\n }\n if (!config._internal.ssr) {\n return\n }\n onMount()\n return () => {\n active.current = false\n }\n }, [])\n\n return children as ReactElement\n}\n"],"mappings":";;;;AAmBA,SAAgB,QACd,QACA,YAC8B;CAC9B,MAAM,EAAE,cAAc,qBAAqB;AAE3C,KAAI,gBAAgB,CAAC,OAAO,UAAU,MAAM,QAAQ,aAAa,CAC/D,QAAO,SAAS;EACd,GAAG;EACH,SAAS,OAAO,OAAO,MAAM,MAAM,EAAE,OAAO,aAAa,QAAQ,GAC7D,aAAa,UACb,OAAO,OAAO,GAAG;EACrB,aAAa,mBAAmB,aAAa,8BAAc,IAAI,KAAK;EACpE,QAAQ,mBAAmB,iBAAiB;EAC7C,CAAC;AAGJ,QAAO,EACL,MAAM,UAAyB;AAC7B,MAAI,OAAO,UAAU,IACnB,OAAM,OAAO,UAAU,MAAM,QAAQ,WAAW;AAGlD,MAAI,iBACF,WAAU,OAAO;WACR,OAAO,QAEhB,QAAO,UAAU,OAAO;GACtB,GAAG;GACH,6BAAa,IAAI,KAAK;GACvB,EAAE;IAGR;;AAGH,SAAgB,QAAQ,YAAmD;CACzE,MAAM,EAAE,UAAU,QAAQ,cAAc,mBAAmB,SAAS;CAEpE,MAAM,EAAE,YAAY,QAAQ,QAAQ;EAClC;EACA;EACD,CAAC;AAGF,KAAI,CAAC,OAAO,UAAU,IACpB,UAAS;CAIX,MAAM,SAAS,OAAO,KAAK;AAE3B,iBAAgB;AACd,MAAI,CAAC,OAAO,QACV;AAEF,MAAI,CAAC,OAAO,UAAU,IACpB;AAEF,WAAS;AACT,eAAa;AACX,UAAO,UAAU;;IAElB,EAAE,CAAC;AAEN,QAAO"}
@@ -1,6 +1,6 @@
1
- export type { BigmiProviderProps } from './context.js';
2
- export { BigmiContext, BigmiProvider } from './context.js';
3
- export { useAccount } from './hooks/useAccount.js';
4
- export { useConfig } from './hooks/useConfig.js';
5
- export { useConnect } from './hooks/useConnect.js';
6
- export { useReconnect } from './hooks/useReconnect.js';
1
+ import { BigmiContext, BigmiProvider, BigmiProviderProps } from "./context.js";
2
+ import { useConfig } from "./hooks/useConfig.js";
3
+ import { useAccount } from "./hooks/useAccount.js";
4
+ import { useConnect } from "./hooks/useConnect.js";
5
+ import { useReconnect } from "./hooks/useReconnect.js";
6
+ export { BigmiContext, BigmiProvider, type BigmiProviderProps, useAccount, useConfig, useConnect, useReconnect };
package/dist/esm/index.js CHANGED
@@ -1,6 +1,6 @@
1
- export { BigmiContext, BigmiProvider } from './context.js';
2
- export { useAccount } from './hooks/useAccount.js';
3
- export { useConfig } from './hooks/useConfig.js';
4
- export { useConnect } from './hooks/useConnect.js';
5
- export { useReconnect } from './hooks/useReconnect.js';
6
- //# sourceMappingURL=index.js.map
1
+ import { BigmiContext, BigmiProvider } from "./context.js";
2
+ import { useConfig } from "./hooks/useConfig.js";
3
+ import { useAccount } from "./hooks/useAccount.js";
4
+ import { useConnect } from "./hooks/useConnect.js";
5
+ import { useReconnect } from "./hooks/useReconnect.js";
6
+ export { BigmiContext, BigmiProvider, useAccount, useConfig, useConnect, useReconnect };
@@ -0,0 +1 @@
1
+ {"type":"module","sideEffects":false}
@@ -1,7 +1,12 @@
1
- import type { Config } from '@bigmi/client';
2
- export type Register = {};
3
- export type ResolvedRegister = {
4
- config: Register extends {
5
- config: infer config extends Config;
6
- } ? config : Config;
1
+ import { Config } from "@bigmi/client";
2
+
3
+ //#region src/types.d.ts
4
+ type Register = {};
5
+ type ResolvedRegister = {
6
+ config: Register extends {
7
+ config: infer config extends Config;
8
+ } ? config : Config;
7
9
  };
10
+ //#endregion
11
+ export { Register, ResolvedRegister };
12
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","names":[],"sources":["../../src/types.ts"],"mappings":";;;KAGY,QAAA;AAAA,KACA,gBAAA;EACV,MAAA,EAAQ,QAAA;IAAmB,MAAA,uBAA6B,MAAA;EAAA,IACpD,MAAA,GACA,MAAA;AAAA"}
package/dist/esm/types.js CHANGED
@@ -1,2 +1 @@
1
1
  export {};
2
- //# sourceMappingURL=types.js.map
@@ -1,4 +1,9 @@
1
- import type { Compute, UnionStrictOmit } from '@bigmi/core';
2
- import type { UseMutationOptions, UseMutationResult } from '@tanstack/react-query';
3
- export type UseMutationParameters<data = unknown, error = Error, variables = void, context = unknown> = Compute<Omit<UseMutationOptions<data, error, Compute<variables>, context>, 'mutationFn' | 'mutationKey' | 'throwOnError'>>;
4
- export type UseMutationReturnType<data = unknown, error = Error, variables = void, context = unknown> = Compute<UnionStrictOmit<UseMutationResult<data, error, variables, context>, 'mutate' | 'mutateAsync'>>;
1
+ import { Compute, UnionStrictOmit } from "@bigmi/core";
2
+ import { UseMutationOptions, UseMutationResult } from "@tanstack/react-query";
3
+
4
+ //#region src/utils/query.d.ts
5
+ type UseMutationParameters<data = unknown, error = Error, variables = void, context = unknown> = Compute<Omit<UseMutationOptions<data, error, Compute<variables>, context>, "mutationFn" | "mutationKey" | "throwOnError">>;
6
+ type UseMutationReturnType<data = unknown, error = Error, variables = void, context = unknown> = Compute<UnionStrictOmit<UseMutationResult<data, error, variables, context>, "mutate" | "mutateAsync">>;
7
+ //#endregion
8
+ export { UseMutationParameters, UseMutationReturnType };
9
+ //# sourceMappingURL=query.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query.d.ts","names":[],"sources":["../../../src/utils/query.ts"],"mappings":";;;;KAQY,qBAAA,yBAEF,KAAA,yCAGN,OAAA,CACF,IAAA,CACE,kBAAA,CAAmB,IAAA,EAAM,KAAA,EAAO,OAAA,CAAQ,SAAA,GAAY,OAAA;AAAA,KAK5C,qBAAA,yBAEF,KAAA,yCAGN,OAAA,CACF,eAAA,CACE,iBAAA,CAAkB,IAAA,EAAM,KAAA,EAAO,SAAA,EAAW,OAAA"}
@@ -1,3 +1,2 @@
1
- 'use client';
1
+ "use client";
2
2
  export {};
3
- //# sourceMappingURL=query.js.map
@@ -1,2 +1,6 @@
1
- export declare const name = "@bigmi/react";
2
- export declare const version = "0.7.1";
1
+ //#region src/version.d.ts
2
+ declare const name = "@bigmi/react";
3
+ declare const version = "0.8.0";
4
+ //#endregion
5
+ export { name, version };
6
+ //# sourceMappingURL=version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.d.ts","names":[],"sources":["../../src/version.ts"],"mappings":";cAAa,IAAA;AAAA,cACA,OAAA"}
@@ -1,3 +1,7 @@
1
- export const name = '@bigmi/react';
2
- export const version = '0.7.1';
1
+ //#region src/version.ts
2
+ const name = "@bigmi/react";
3
+ const version = "0.8.0";
4
+ //#endregion
5
+ export { name, version };
6
+
3
7
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/version.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,IAAI,GAAG,cAAc,CAAA;AAClC,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAA"}
1
+ {"version":3,"file":"version.js","names":[],"sources":["../../src/version.ts"],"sourcesContent":["export const name = '@bigmi/react'\nexport const version = '0.8.0'\n"],"mappings":";AAAA,MAAa,OAAO;AACpB,MAAa,UAAU"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigmi/react",
3
- "version": "0.7.1",
3
+ "version": "0.8.0",
4
4
  "description": "React primitives for Bitcoin apps.",
5
5
  "type": "module",
6
6
  "main": "./dist/esm/index.js",
@@ -29,8 +29,8 @@
29
29
  "hooks"
30
30
  ],
31
31
  "dependencies": {
32
- "@bigmi/client": "^0.7.1",
33
- "@bigmi/core": "^0.7.1"
32
+ "@bigmi/core": "^0.8.0",
33
+ "@bigmi/client": "^0.8.0"
34
34
  },
35
35
  "peerDependencies": {
36
36
  "@tanstack/react-query": ">=5.68.0",
package/src/context.ts CHANGED
@@ -1,12 +1,17 @@
1
1
  'use client'
2
2
  import type { State } from '@bigmi/client'
3
- import { createContext, createElement, type PropsWithChildren } from 'react'
3
+ import {
4
+ type Context,
5
+ createContext,
6
+ createElement,
7
+ type PropsWithChildren,
8
+ type ReactElement,
9
+ } from 'react'
4
10
  import { Hydrate } from './hydrate.js'
5
11
  import type { ResolvedRegister } from './types.js'
6
12
 
7
- export const BigmiContext = createContext<
8
- ResolvedRegister['config'] | undefined
9
- >(undefined)
13
+ export const BigmiContext: Context<ResolvedRegister['config'] | undefined> =
14
+ createContext<ResolvedRegister['config'] | undefined>(undefined)
10
15
 
11
16
  export type BigmiProviderProps = {
12
17
  config: ResolvedRegister['config']
@@ -16,7 +21,7 @@ export type BigmiProviderProps = {
16
21
 
17
22
  export function BigmiProvider(
18
23
  parameters: PropsWithChildren<BigmiProviderProps>
19
- ) {
24
+ ): ReactElement {
20
25
  const { children, config } = parameters
21
26
 
22
27
  const props = { value: config }
@@ -17,6 +17,19 @@ export type UseAccountParameters<config extends Config = Config> =
17
17
  export type UseAccountReturnType<config extends Config = Config> =
18
18
  GetAccountReturnType<config>
19
19
 
20
+ const DISCONNECTED_ACCOUNT: GetAccountReturnType = {
21
+ account: undefined,
22
+ accounts: undefined,
23
+ chain: undefined,
24
+ chainId: undefined,
25
+ connector: undefined,
26
+ isConnected: false,
27
+ isConnecting: false,
28
+ isDisconnected: true,
29
+ isReconnecting: false,
30
+ status: 'disconnected',
31
+ }
32
+
20
33
  export function useAccount<C extends Config = ResolvedRegister['config']>(
21
34
  parameters: UseAccountParameters<C> = {}
22
35
  ): UseAccountReturnType<C> {
@@ -24,6 +37,7 @@ export function useAccount<C extends Config = ResolvedRegister['config']>(
24
37
 
25
38
  return useSyncExternalStoreWithTracked(
26
39
  (onChange) => watchAccount(config, { onChange }),
27
- () => getAccount(config)
40
+ () => getAccount(config),
41
+ () => DISCONNECTED_ACCOUNT as UseAccountReturnType<C>
28
42
  )
29
43
  }
@@ -16,6 +16,8 @@ export type UseConnectorsParameters<config extends Config = Config> =
16
16
  export type UseConnectorsReturnType<config extends Config = Config> =
17
17
  GetConnectorsReturnType<config>
18
18
 
19
+ const EMPTY_CONNECTORS: readonly [] = []
20
+
19
21
  export function useConnectors<
20
22
  config extends Config = ResolvedRegister['config'],
21
23
  >(
@@ -26,6 +28,6 @@ export function useConnectors<
26
28
  return useSyncExternalStore(
27
29
  (onChange) => watchConnectors(config, { onChange }),
28
30
  () => getConnectors(config),
29
- () => getConnectors(config)
31
+ () => EMPTY_CONNECTORS as UseConnectorsReturnType<config>
30
32
  )
31
33
  }
@@ -4,7 +4,7 @@ import { type Config, reconnect } from '@bigmi/client'
4
4
 
5
5
  import { useEffect } from 'react'
6
6
 
7
- export const useReconnect = (config: Config) => {
7
+ export const useReconnect = (config: Config): void => {
8
8
  useEffect(() => {
9
9
  reconnect(config)
10
10
  }, [config])
@@ -13,7 +13,7 @@ export function useSyncExternalStoreWithTracked<
13
13
  getSnapshot: () => Snapshot,
14
14
  getServerSnapshot: (() => Snapshot) | undefined = getSnapshot,
15
15
  isEqual: (a: Selection, b: Selection) => boolean = deepEqual
16
- ) {
16
+ ): Selection {
17
17
  const trackedKeys = useRef<Set<string>>(new Set())
18
18
  const previousResult = useRef<Selection | undefined>(undefined)
19
19
  const snapshotCache = useRef(getSnapshot())
package/src/hydrate.ts CHANGED
@@ -17,7 +17,10 @@ type HydrateParameters = {
17
17
  reconnectOnMount?: boolean | undefined
18
18
  }
19
19
 
20
- export function hydrate(config: Config, parameters: HydrateParameters) {
20
+ export function hydrate(
21
+ config: Config,
22
+ parameters: HydrateParameters
23
+ ): { onMount(): Promise<void> } {
21
24
  const { initialState, reconnectOnMount } = parameters
22
25
 
23
26
  if (initialState && !config._internal.store.persist.hasHydrated()) {
@@ -32,7 +35,7 @@ export function hydrate(config: Config, parameters: HydrateParameters) {
32
35
  }
33
36
 
34
37
  return {
35
- async onMount() {
38
+ async onMount(): Promise<void> {
36
39
  if (config._internal.ssr) {
37
40
  await config._internal.store.persist.rehydrate()
38
41
  }
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  export const name = '@bigmi/react'
2
- export const version = '0.7.1'
2
+ export const version = '0.8.0'
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -1 +0,0 @@
1
- {"version":3,"file":"query.js","sourceRoot":"","sources":["../../../src/utils/query.ts"],"names":[],"mappings":"AAAA,YAAY,CAAA"}