@sundaeswap/wallet-lite 0.0.42 → 0.0.43
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/cjs/react-components/hooks/useWalletHandles.js +41 -40
- package/dist/cjs/react-components/hooks/useWalletHandles.js.map +1 -1
- package/dist/esm/react-components/hooks/useWalletHandles.js +20 -19
- package/dist/esm/react-components/hooks/useWalletHandles.js.map +1 -1
- package/dist/types/react-components/hooks/useWalletHandles.d.ts.map +1 -1
- package/dist/types/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/react-components/hooks/useWalletHandles.ts +24 -23
package/package.json
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import {
|
|
2
2
|
useCallback,
|
|
3
|
+
useDeferredValue,
|
|
3
4
|
useEffect,
|
|
4
5
|
useMemo,
|
|
5
6
|
useState,
|
|
6
|
-
useTransition,
|
|
7
7
|
} from "react";
|
|
8
8
|
|
|
9
9
|
import { IHandle } from "@koralabs/adahandle-sdk";
|
|
@@ -18,10 +18,11 @@ export const useWalletHandles = <
|
|
|
18
18
|
AssetMetadata extends IAssetAmountMetadata = IAssetAmountMetadata,
|
|
19
19
|
>() => {
|
|
20
20
|
const state = useWalletObserver<THandleMetadata<AssetMetadata>>();
|
|
21
|
-
const [isPending, startTransition] = useTransition();
|
|
22
21
|
const [handles, setHandles] = useState<
|
|
23
22
|
TAssetAmountMap<THandleMetadata<AssetMetadata>>
|
|
24
23
|
>(new WalletAssetMap());
|
|
24
|
+
const [isLoading, setIsLoading] = useState(true);
|
|
25
|
+
const deferredHandles = useDeferredValue(handles);
|
|
25
26
|
|
|
26
27
|
const memoizedHandleDep = useMemo(
|
|
27
28
|
() => [...state.balance.getHandles().keys()],
|
|
@@ -41,6 +42,7 @@ export const useWalletHandles = <
|
|
|
41
42
|
}
|
|
42
43
|
|
|
43
44
|
try {
|
|
45
|
+
setIsLoading(true);
|
|
44
46
|
const {
|
|
45
47
|
default: HandleClient,
|
|
46
48
|
HandleClientContext,
|
|
@@ -84,6 +86,7 @@ export const useWalletHandles = <
|
|
|
84
86
|
);
|
|
85
87
|
});
|
|
86
88
|
|
|
89
|
+
setIsLoading(false);
|
|
87
90
|
return walletHandles;
|
|
88
91
|
} catch (e) {
|
|
89
92
|
console.error(e);
|
|
@@ -94,29 +97,27 @@ export const useWalletHandles = <
|
|
|
94
97
|
useEffect(() => {
|
|
95
98
|
const fetchHandles = async () => {
|
|
96
99
|
const newHandles = await syncHandles();
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
handleMetadataChanged = true;
|
|
110
|
-
}
|
|
100
|
+
setHandles((prevHandles) => {
|
|
101
|
+
let handleMetadataChanged = false;
|
|
102
|
+
|
|
103
|
+
if (newHandles.size !== prevHandles?.size) {
|
|
104
|
+
handleMetadataChanged = true;
|
|
105
|
+
} else {
|
|
106
|
+
for (const [key, val] of newHandles) {
|
|
107
|
+
if (
|
|
108
|
+
!prevHandles.has(key) ||
|
|
109
|
+
prevHandles.get(key)?.amount !== val?.amount
|
|
110
|
+
) {
|
|
111
|
+
handleMetadataChanged = true;
|
|
111
112
|
}
|
|
112
113
|
}
|
|
114
|
+
}
|
|
113
115
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
116
|
+
if (!handleMetadataChanged) {
|
|
117
|
+
return prevHandles;
|
|
118
|
+
}
|
|
117
119
|
|
|
118
|
-
|
|
119
|
-
});
|
|
120
|
+
return newHandles;
|
|
120
121
|
});
|
|
121
122
|
};
|
|
122
123
|
|
|
@@ -124,7 +125,7 @@ export const useWalletHandles = <
|
|
|
124
125
|
}, [memoizedHandleDep, syncHandles]);
|
|
125
126
|
|
|
126
127
|
return {
|
|
127
|
-
handles,
|
|
128
|
-
loadingHandles:
|
|
128
|
+
handles: deferredHandles,
|
|
129
|
+
loadingHandles: isLoading,
|
|
129
130
|
};
|
|
130
131
|
};
|