Skip to content

Commit 14308e9

Browse files
committed
Button text reactive
1 parent 4558b85 commit 14308e9

File tree

4 files changed

+18
-16
lines changed

4 files changed

+18
-16
lines changed

hyle-wallet/src/components/HyleWallet.tsx

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,15 @@ export const HyleWallet = ({
5656
const [selectedProvider, setSelectedProvider] = useState<ProviderOption | null>(null);
5757
const [showLogin, setShowLogin] = useState(true); // true = login (default), false = create/sign-up
5858
const { isLoading: isLoadingConfig, error: configError } = useConfig();
59-
const { wallet } = useWallet();
59+
const { wallet, logout } = useWallet();
60+
61+
const handleButtonClick = () => {
62+
if (wallet) {
63+
logout();
64+
} else {
65+
setIsOpen(true);
66+
}
67+
};
6068

6169
// Get available providers dynamically
6270
const availableProviders = authProviderManager.getAvailableProviders() as ProviderOption[];
@@ -68,8 +76,6 @@ export const HyleWallet = ({
6876
}
6977
}, [wallet, isOpen]);
7078

71-
const openModal = () => setIsOpen(true);
72-
7379
const closeModal = () => {
7480
setIsOpen(false);
7581
setSelectedProvider(null);
@@ -83,7 +89,6 @@ export const HyleWallet = ({
8389
if (configError) {
8490
return <div>Error loading configuration: {configError}</div>;
8591
}
86-
8792

8893
const renderProviderButton = (providerType: ProviderOption) => {
8994
const provider = authProviderManager.getProvider(providerType);
@@ -120,10 +125,10 @@ export const HyleWallet = ({
120125
return (
121126
<>
122127
{button ? (
123-
button({ onClick: openModal })
128+
button({ onClick: handleButtonClick })
124129
) : (
125-
<button className="hyle-wallet-btn" onClick={openModal}>
126-
Connect Wallet
130+
<button className="hyle-wallet-btn" onClick={handleButtonClick}>
131+
{wallet ? "Log Out" : "Connect Wallet"}
127132
</button>
128133
)}
129134

hyle-wallet/src/hooks/useWallet.tsx

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,6 @@ export const WalletProvider: React.FC<{ children: React.ReactNode }> = ({ childr
3535
}
3636
}, [wallet]);
3737

38-
const clear = () => {
39-
setWallet(null);
40-
setError(null);
41-
setStage('idle');
42-
localStorage.removeItem('wallet');
43-
};
44-
4538
const login = useCallback(async (provider: ProviderOption, credentials: AuthCredentials) => {
4639
const authProvider = authProviderManager.getProvider(provider);
4740
if (!authProvider) {
@@ -117,7 +110,10 @@ export const WalletProvider: React.FC<{ children: React.ReactNode }> = ({ childr
117110
}, []);
118111

119112
const logout = useCallback(() => {
120-
clear();
113+
localStorage.removeItem('wallet');
114+
setWallet(null);
115+
setError(null);
116+
setStage('idle');
121117
}, []);
122118

123119
return (

hyle-wallet/src/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ export {
2121
export type { ProviderOption };
2222
export { WalletProvider, useWallet } from './hooks/useWallet';
2323
export { useSessionKey } from './hooks/useSessionKey';
24+
export { sessionKeyService } from './services/SessionKeyService';
2425

2526
// Register the Web Component
2627
class HyleWalletElement extends HTMLElement {

hyle-wallet/src/services/SessionKeyService.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { Secp256k1Blob, serializeIdentityAction, serializeSecp256k1Blob, WalletA
44
import { Buffer } from 'buffer';
55
import { Blob } from "hyle";
66

7-
class SessionKeyService {
7+
export class SessionKeyService {
88
private ec: EC.ec;
99

1010
constructor() {

0 commit comments

Comments
 (0)