Skip to content

Commit 899e0b0

Browse files
authored
Merge pull request #955 from tkhq/ethan/fixed-some-more-sessionless-stuff
fixed session requirement for handleConnectExternalWallet
2 parents 109dd29 + c534b5b commit 899e0b0

File tree

3 files changed

+122
-71
lines changed

3 files changed

+122
-71
lines changed

.changeset/dirty-bags-show.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@turnkey/react-wallet-kit": patch
3+
---
4+
5+
Methods no longer rely on the session state variable, meaning functions that modify session can be placed in-line with methods reliant on session updates

packages/react-wallet-kit/src/components/user/ConnectWallet.tsx

Lines changed: 45 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,11 @@ import { isWalletConnect } from "../../utils/utils";
1313
interface ConnectWalletModalProps {
1414
providers: WalletProvider[];
1515
successPageDuration?: number | undefined;
16+
onSuccess: () => void;
17+
onError: (error: any) => void;
1618
}
1719
export function ConnectWalletModal(props: ConnectWalletModalProps) {
18-
const { providers, successPageDuration } = props;
20+
const { providers, successPageDuration, onSuccess, onError } = props;
1921
const { pushPage, closeModal } = useModal();
2022
const { connectWalletAccount, disconnectWalletAccount } = useTurnkey();
2123

@@ -49,22 +51,27 @@ export function ConnectWalletModal(props: ConnectWalletModalProps) {
4951
}
5052
closeOnComplete={false}
5153
action={async () => {
52-
await connectWalletAccount(provider);
53-
if (successPageDuration && successPageDuration > 0) {
54-
pushPage({
55-
key: "Connecting Success",
56-
content: (
57-
<SuccessPage
58-
text="Successfully connected wallet!"
59-
onComplete={() => closeModal()}
60-
duration={successPageDuration}
61-
/>
62-
),
63-
preventBack: true,
64-
showTitle: false,
65-
});
66-
} else {
67-
closeModal();
54+
try {
55+
await connectWalletAccount(provider);
56+
onSuccess();
57+
if (successPageDuration && successPageDuration > 0) {
58+
pushPage({
59+
key: "Connecting Success",
60+
content: (
61+
<SuccessPage
62+
text="Successfully connected wallet!"
63+
onComplete={() => closeModal()}
64+
duration={successPageDuration}
65+
/>
66+
),
67+
preventBack: true,
68+
showTitle: false,
69+
});
70+
} else {
71+
closeModal();
72+
}
73+
} catch (error) {
74+
onError(error);
6875
}
6976
}}
7077
/>
@@ -80,22 +87,27 @@ export function ConnectWalletModal(props: ConnectWalletModalProps) {
8087
<DisconnectWalletScreen
8188
provider={provider}
8289
onDisconnect={async () => {
83-
await disconnectWalletAccount(provider);
84-
if (successPageDuration) {
85-
pushPage({
86-
key: "Disconnect Success",
87-
content: (
88-
<SuccessPage
89-
text="Successfully disconnected wallet!"
90-
onComplete={() => closeModal()}
91-
duration={successPageDuration}
92-
/>
93-
),
94-
preventBack: true,
95-
showTitle: false,
96-
});
97-
} else {
98-
closeModal();
90+
try {
91+
await disconnectWalletAccount(provider);
92+
onSuccess();
93+
if (successPageDuration) {
94+
pushPage({
95+
key: "Disconnect Success",
96+
content: (
97+
<SuccessPage
98+
text="Successfully disconnected wallet!"
99+
onComplete={() => closeModal()}
100+
duration={successPageDuration}
101+
/>
102+
),
103+
preventBack: true,
104+
showTitle: false,
105+
});
106+
} else {
107+
closeModal();
108+
}
109+
} catch (error) {
110+
onError(error);
99111
}
100112
}}
101113
/>

0 commit comments

Comments
 (0)