@varity-labs/ui-kit 2.0.0-beta.1 → 2.0.0-beta.10
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/LICENSE +3 -3
- package/README.md +66 -35
- package/dist/components/Dashboard/DashboardHeader.js +4 -4
- package/dist/components/Dashboard/DashboardHeader.js.map +1 -1
- package/dist/components/Dashboard/DashboardLayout.d.ts +3 -3
- package/dist/components/Dashboard/DashboardLayout.d.ts.map +1 -1
- package/dist/components/Dashboard/DashboardLayout.js +1 -1
- package/dist/components/Onramp/BuyUSDCButton.d.ts +4 -4
- package/dist/components/Onramp/BuyUSDCButton.d.ts.map +1 -1
- package/dist/components/Onramp/BuyUSDCButton.js +5 -5
- package/dist/components/Onramp/BuyUSDCButton.js.map +1 -1
- package/dist/components/Onramp/OnrampWidget.d.ts +4 -4
- package/dist/components/Onramp/OnrampWidget.d.ts.map +1 -1
- package/dist/components/Onramp/OnrampWidget.js +10 -11
- package/dist/components/Onramp/OnrampWidget.js.map +1 -1
- package/dist/components/Onramp/index.d.ts +3 -4
- package/dist/components/Onramp/index.d.ts.map +1 -1
- package/dist/components/Onramp/index.js +3 -4
- package/dist/components/Onramp/index.js.map +1 -1
- package/dist/components/PaymentWidget/PaymentWidget.d.ts +15 -6
- package/dist/components/PaymentWidget/PaymentWidget.d.ts.map +1 -1
- package/dist/components/PaymentWidget/PaymentWidget.js +79 -47
- package/dist/components/PaymentWidget/PaymentWidget.js.map +1 -1
- package/dist/components/PaymentWidget/useSeamlessPayment.d.ts +51 -0
- package/dist/components/PaymentWidget/useSeamlessPayment.d.ts.map +1 -0
- package/dist/components/PaymentWidget/useSeamlessPayment.js +167 -0
- package/dist/components/PaymentWidget/useSeamlessPayment.js.map +1 -0
- package/dist/components/PaymentWidget/useVarityPayment.js +1 -1
- package/dist/components/PaymentWidget/useVarityPayment.js.map +1 -1
- package/dist/components/Payments/CheckoutModal.d.ts.map +1 -1
- package/dist/components/Payments/CheckoutModal.js +16 -5
- package/dist/components/Payments/CheckoutModal.js.map +1 -1
- package/dist/components/Payments/constants.d.ts +1 -1
- package/dist/components/Payments/constants.d.ts.map +1 -1
- package/dist/components/Payments/constants.js +1 -1
- package/dist/components/Payments/constants.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/modules/cache/CacheClient.d.ts +48 -0
- package/dist/modules/cache/CacheClient.d.ts.map +1 -0
- package/dist/modules/cache/CacheClient.js +59 -0
- package/dist/modules/cache/CacheClient.js.map +1 -0
- package/dist/providers/PrivyStack.d.ts +21 -49
- package/dist/providers/PrivyStack.d.ts.map +1 -1
- package/dist/providers/PrivyStack.js +16 -46
- package/dist/providers/PrivyStack.js.map +1 -1
- package/dist/providers/VarityDashboardProvider.js.map +1 -1
- package/dist/providers/WalletSyncProvider.d.ts +17 -24
- package/dist/providers/WalletSyncProvider.d.ts.map +1 -1
- package/dist/providers/WalletSyncProvider.js +16 -27
- package/dist/providers/WalletSyncProvider.js.map +1 -1
- package/dist/providers/ZeroDevProvider.d.ts +69 -0
- package/dist/providers/ZeroDevProvider.d.ts.map +1 -0
- package/dist/providers/ZeroDevProvider.js +208 -0
- package/dist/providers/ZeroDevProvider.js.map +1 -0
- package/dist/providers/index.d.ts +1 -0
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +2 -0
- package/dist/providers/index.js.map +1 -1
- package/dist/wallets/SmartWalletProvider.js +1 -1
- package/dist/wallets/SmartWalletProvider.js.map +1 -1
- package/dist/wallets/config.d.ts +23 -0
- package/dist/wallets/config.d.ts.map +1 -1
- package/dist/wallets/config.js +24 -1
- package/dist/wallets/config.js.map +1 -1
- package/dist/wallets/index.d.ts +1 -1
- package/dist/wallets/index.d.ts.map +1 -1
- package/dist/wallets/index.js +1 -1
- package/dist/wallets/index.js.map +1 -1
- package/package.json +9 -7
- package/dist/core/VarityClient.d.ts +0 -76
- package/dist/core/VarityClient.d.ts.map +0 -1
- package/dist/core/VarityClient.js +0 -99
- package/dist/core/VarityClient.js.map +0 -1
- package/dist/core/config.d.ts +0 -136
- package/dist/core/config.d.ts.map +0 -1
- package/dist/core/config.js +0 -156
- package/dist/core/config.js.map +0 -1
- package/dist/hooks/useAnalytics.d.ts +0 -94
- package/dist/hooks/useAnalytics.d.ts.map +0 -1
- package/dist/hooks/useAnalytics.js +0 -116
- package/dist/hooks/useAnalytics.js.map +0 -1
- package/dist/hooks/useAuth.d.ts +0 -71
- package/dist/hooks/useAuth.d.ts.map +0 -1
- package/dist/hooks/useAuth.js +0 -198
- package/dist/hooks/useAuth.js.map +0 -1
- package/dist/hooks/useDashboard.d.ts +0 -110
- package/dist/hooks/useDashboard.d.ts.map +0 -1
- package/dist/hooks/useDashboard.js +0 -201
- package/dist/hooks/useDashboard.js.map +0 -1
- package/dist/hooks/useVarityAPI.d.ts +0 -88
- package/dist/hooks/useVarityAPI.d.ts.map +0 -1
- package/dist/hooks/useVarityAPI.js +0 -138
- package/dist/hooks/useVarityAPI.js.map +0 -1
- package/dist/hooks/useWalletAuth.d.ts +0 -108
- package/dist/hooks/useWalletAuth.d.ts.map +0 -1
- package/dist/hooks/useWalletAuth.js +0 -415
- package/dist/hooks/useWalletAuth.js.map +0 -1
- package/dist/modules/cache/index.d.ts +0 -12
- package/dist/modules/cache/index.d.ts.map +0 -1
- package/dist/modules/cache/index.js +0 -13
- package/dist/modules/cache/index.js.map +0 -1
- package/dist/types/api-extensions.d.ts +0 -92
- package/dist/types/api-extensions.d.ts.map +0 -1
- package/dist/types/api-extensions.js +0 -7
- package/dist/types/api-extensions.js.map +0 -1
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useAnalytics - Analytics data fetching and tracking hook
|
|
3
|
-
*
|
|
4
|
-
* Provides easy access to analytics data with automatic caching and refresh.
|
|
5
|
-
*/
|
|
6
|
-
import { useState, useEffect, useCallback } from 'react';
|
|
7
|
-
import { useVarityAPI } from './useVarityAPI';
|
|
8
|
-
/**
|
|
9
|
-
* useAnalytics Hook
|
|
10
|
-
*
|
|
11
|
-
* Fetch and track analytics data.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```tsx
|
|
15
|
-
* const { data, loading, trackEvent } = useAnalytics({
|
|
16
|
-
* period: 'current_month',
|
|
17
|
-
* refreshInterval: 30000
|
|
18
|
-
* })
|
|
19
|
-
*
|
|
20
|
-
* // Track custom event
|
|
21
|
-
* await trackEvent('button_clicked', { buttonId: 'export' })
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
export const useAnalytics = (options = {}) => {
|
|
25
|
-
const { client } = useVarityAPI();
|
|
26
|
-
const [data, setData] = useState(null);
|
|
27
|
-
const [loading, setLoading] = useState(false);
|
|
28
|
-
const [error, setError] = useState(null);
|
|
29
|
-
const { period = 'current_month', refreshInterval, cache = true } = options;
|
|
30
|
-
const fetchAnalytics = useCallback(async () => {
|
|
31
|
-
setLoading(true);
|
|
32
|
-
setError(null);
|
|
33
|
-
try {
|
|
34
|
-
// Fetch KPIs
|
|
35
|
-
const kpisResponse = await client.analytics.getKPIs({ period });
|
|
36
|
-
// Fetch trends if available
|
|
37
|
-
let timeSeries;
|
|
38
|
-
if (options.startDate && options.endDate) {
|
|
39
|
-
const trendsResponse = await client.analytics.getTrends({
|
|
40
|
-
startDate: options.startDate,
|
|
41
|
-
endDate: options.endDate
|
|
42
|
-
});
|
|
43
|
-
timeSeries = trendsResponse.data;
|
|
44
|
-
}
|
|
45
|
-
setData({
|
|
46
|
-
kpis: kpisResponse.kpis || [],
|
|
47
|
-
timeSeries,
|
|
48
|
-
metrics: kpisResponse.metrics
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
catch (err) {
|
|
52
|
-
const error = err instanceof Error ? err : new Error('Failed to fetch analytics');
|
|
53
|
-
setError(error);
|
|
54
|
-
}
|
|
55
|
-
finally {
|
|
56
|
-
setLoading(false);
|
|
57
|
-
}
|
|
58
|
-
}, [client, period, options.startDate, options.endDate]);
|
|
59
|
-
// Fetch on mount and when dependencies change
|
|
60
|
-
useEffect(() => {
|
|
61
|
-
fetchAnalytics();
|
|
62
|
-
}, [fetchAnalytics]);
|
|
63
|
-
// Auto-refresh if interval is set
|
|
64
|
-
useEffect(() => {
|
|
65
|
-
if (!refreshInterval)
|
|
66
|
-
return;
|
|
67
|
-
const interval = setInterval(() => {
|
|
68
|
-
fetchAnalytics();
|
|
69
|
-
}, refreshInterval);
|
|
70
|
-
return () => clearInterval(interval);
|
|
71
|
-
}, [refreshInterval, fetchAnalytics]);
|
|
72
|
-
const trackEvent = useCallback(async (eventName, properties) => {
|
|
73
|
-
try {
|
|
74
|
-
// Track event via analytics API
|
|
75
|
-
await client.analytics.trackEvent({
|
|
76
|
-
event: eventName,
|
|
77
|
-
properties: properties || {},
|
|
78
|
-
timestamp: new Date().toISOString()
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
catch (err) {
|
|
82
|
-
console.error('Failed to track event:', err);
|
|
83
|
-
}
|
|
84
|
-
}, [client]);
|
|
85
|
-
return {
|
|
86
|
-
data,
|
|
87
|
-
loading,
|
|
88
|
-
error,
|
|
89
|
-
refetch: fetchAnalytics,
|
|
90
|
-
trackEvent
|
|
91
|
-
};
|
|
92
|
-
};
|
|
93
|
-
/**
|
|
94
|
-
* useKPI Hook
|
|
95
|
-
*
|
|
96
|
-
* Fetch a single KPI with real-time updates.
|
|
97
|
-
*
|
|
98
|
-
* @example
|
|
99
|
-
* ```tsx
|
|
100
|
-
* const { value, trend, loading } = useKPI('total_revenue', { period: 'current_month' })
|
|
101
|
-
* ```
|
|
102
|
-
*/
|
|
103
|
-
export const useKPI = (kpiId, options = {}) => {
|
|
104
|
-
const { data, loading, error, refetch } = useAnalytics(options);
|
|
105
|
-
const kpi = data?.kpis?.find((k) => k.id === kpiId) || null;
|
|
106
|
-
return {
|
|
107
|
-
value: kpi?.value || null,
|
|
108
|
-
unit: kpi?.unit,
|
|
109
|
-
trend: kpi?.trend,
|
|
110
|
-
trendValue: kpi?.trendValue,
|
|
111
|
-
loading,
|
|
112
|
-
error,
|
|
113
|
-
refetch
|
|
114
|
-
};
|
|
115
|
-
};
|
|
116
|
-
//# sourceMappingURL=useAnalytics.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAnalytics.js","sourceRoot":"","sources":["../../src/hooks/useAnalytics.ts"],"names":[],"mappings":"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"}
|
package/dist/hooks/useAuth.d.ts
DELETED
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useAuth - Authentication state management hook
|
|
3
|
-
*
|
|
4
|
-
* Manages user authentication state with SIWE (Sign-In with Ethereum).
|
|
5
|
-
*/
|
|
6
|
-
import { Metadata } from '@varity-labs/types';
|
|
7
|
-
export interface User {
|
|
8
|
-
/** User's wallet address */
|
|
9
|
-
address: string;
|
|
10
|
-
/** User's display name */
|
|
11
|
-
name?: string;
|
|
12
|
-
/** User's email */
|
|
13
|
-
email?: string;
|
|
14
|
-
/** User's avatar URL */
|
|
15
|
-
avatarUrl?: string;
|
|
16
|
-
/** Additional user metadata */
|
|
17
|
-
metadata?: Metadata;
|
|
18
|
-
}
|
|
19
|
-
export interface UseAuthReturn {
|
|
20
|
-
/** Current user (null if not authenticated) */
|
|
21
|
-
user: User | null;
|
|
22
|
-
/** Whether user is authenticated */
|
|
23
|
-
isAuthenticated: boolean;
|
|
24
|
-
/** Whether auth is loading */
|
|
25
|
-
isLoading: boolean;
|
|
26
|
-
/** Authentication error */
|
|
27
|
-
error: Error | null;
|
|
28
|
-
/** Login with SIWE */
|
|
29
|
-
login: (message: string, signature: string) => Promise<void>;
|
|
30
|
-
/** Logout */
|
|
31
|
-
logout: () => Promise<void>;
|
|
32
|
-
/** Refresh user data */
|
|
33
|
-
refreshUser: () => Promise<void>;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* useAuth Hook
|
|
37
|
-
*
|
|
38
|
-
* Manages authentication state with Sign-In with Ethereum (SIWE).
|
|
39
|
-
*
|
|
40
|
-
* @example
|
|
41
|
-
* ```tsx
|
|
42
|
-
* const { user, isAuthenticated, login, logout } = useAuth()
|
|
43
|
-
*
|
|
44
|
-
* // Login
|
|
45
|
-
* await login(siweMessage, signature)
|
|
46
|
-
*
|
|
47
|
-
* // Logout
|
|
48
|
-
* await logout()
|
|
49
|
-
* ```
|
|
50
|
-
*/
|
|
51
|
-
export declare const useAuth: () => UseAuthReturn;
|
|
52
|
-
/**
|
|
53
|
-
* useWalletConnect Hook
|
|
54
|
-
*
|
|
55
|
-
* Helper hook for connecting external wallets (MetaMask, etc).
|
|
56
|
-
*
|
|
57
|
-
* @example
|
|
58
|
-
* ```tsx
|
|
59
|
-
* const { connect, disconnect, address, isConnected } = useWalletConnect()
|
|
60
|
-
* await connect()
|
|
61
|
-
* ```
|
|
62
|
-
*/
|
|
63
|
-
export declare const useWalletConnect: () => {
|
|
64
|
-
address: string | null;
|
|
65
|
-
isConnected: boolean;
|
|
66
|
-
isLoading: boolean;
|
|
67
|
-
error: Error | null;
|
|
68
|
-
connect: () => Promise<void>;
|
|
69
|
-
disconnect: () => void;
|
|
70
|
-
};
|
|
71
|
-
//# sourceMappingURL=useAuth.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.d.ts","sourceRoot":"","sources":["../../src/hooks/useAuth.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAE7C,MAAM,WAAW,IAAI;IACnB,4BAA4B;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,0BAA0B;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,mBAAmB;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,QAAQ,CAAA;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IACjB,oCAAoC;IACpC,eAAe,EAAE,OAAO,CAAA;IACxB,8BAA8B;IAC9B,SAAS,EAAE,OAAO,CAAA;IAClB,2BAA2B;IAC3B,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,sBAAsB;IACtB,KAAK,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D,aAAa;IACb,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC3B,wBAAwB;IACxB,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CACjC;AAED;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,OAAO,QAAO,aA+F1B,CAAA;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,gBAAgB;;;;;;;CA0E5B,CAAA"}
|
package/dist/hooks/useAuth.js
DELETED
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useAuth - Authentication state management hook
|
|
3
|
-
*
|
|
4
|
-
* Manages user authentication state with SIWE (Sign-In with Ethereum).
|
|
5
|
-
*/
|
|
6
|
-
import { useState, useCallback, useEffect } from 'react';
|
|
7
|
-
import { useVarityAPI } from './useVarityAPI';
|
|
8
|
-
/**
|
|
9
|
-
* useAuth Hook
|
|
10
|
-
*
|
|
11
|
-
* Manages authentication state with Sign-In with Ethereum (SIWE).
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```tsx
|
|
15
|
-
* const { user, isAuthenticated, login, logout } = useAuth()
|
|
16
|
-
*
|
|
17
|
-
* // Login
|
|
18
|
-
* await login(siweMessage, signature)
|
|
19
|
-
*
|
|
20
|
-
* // Logout
|
|
21
|
-
* await logout()
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
export const useAuth = () => {
|
|
25
|
-
const { client, isAuthenticated, setAuthenticated } = useVarityAPI();
|
|
26
|
-
const [user, setUser] = useState(null);
|
|
27
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
28
|
-
const [error, setError] = useState(null);
|
|
29
|
-
const refreshUser = useCallback(async () => {
|
|
30
|
-
setIsLoading(true);
|
|
31
|
-
setError(null);
|
|
32
|
-
try {
|
|
33
|
-
const userData = await client.auth.me();
|
|
34
|
-
setUser({
|
|
35
|
-
address: userData.address,
|
|
36
|
-
name: userData.name,
|
|
37
|
-
email: userData.email,
|
|
38
|
-
avatarUrl: userData.avatarUrl,
|
|
39
|
-
metadata: userData.metadata
|
|
40
|
-
});
|
|
41
|
-
setAuthenticated(true);
|
|
42
|
-
}
|
|
43
|
-
catch (err) {
|
|
44
|
-
const error = err instanceof Error ? err : new Error('Failed to fetch user');
|
|
45
|
-
setError(error);
|
|
46
|
-
setUser(null);
|
|
47
|
-
setAuthenticated(false);
|
|
48
|
-
// Clear invalid token
|
|
49
|
-
localStorage.removeItem('varity_token');
|
|
50
|
-
}
|
|
51
|
-
finally {
|
|
52
|
-
setIsLoading(false);
|
|
53
|
-
}
|
|
54
|
-
}, [client, setAuthenticated]);
|
|
55
|
-
const login = useCallback(async (message, signature) => {
|
|
56
|
-
setIsLoading(true);
|
|
57
|
-
setError(null);
|
|
58
|
-
try {
|
|
59
|
-
const response = await client.auth.login(message, signature);
|
|
60
|
-
// Store token
|
|
61
|
-
if (response.token) {
|
|
62
|
-
localStorage.setItem('varity_token', response.token);
|
|
63
|
-
client.setAPIKey(response.token);
|
|
64
|
-
}
|
|
65
|
-
// Set user data
|
|
66
|
-
setUser({
|
|
67
|
-
address: response.address,
|
|
68
|
-
name: response.name,
|
|
69
|
-
email: response.email,
|
|
70
|
-
avatarUrl: response.avatarUrl,
|
|
71
|
-
metadata: response.metadata
|
|
72
|
-
});
|
|
73
|
-
setAuthenticated(true);
|
|
74
|
-
}
|
|
75
|
-
catch (err) {
|
|
76
|
-
const error = err instanceof Error ? err : new Error('Login failed');
|
|
77
|
-
setError(error);
|
|
78
|
-
throw error;
|
|
79
|
-
}
|
|
80
|
-
finally {
|
|
81
|
-
setIsLoading(false);
|
|
82
|
-
}
|
|
83
|
-
}, [client, setAuthenticated]);
|
|
84
|
-
// Load user on mount if token exists
|
|
85
|
-
useEffect(() => {
|
|
86
|
-
const token = localStorage.getItem('varity_token');
|
|
87
|
-
if (token) {
|
|
88
|
-
refreshUser();
|
|
89
|
-
}
|
|
90
|
-
}, [refreshUser]);
|
|
91
|
-
const logout = useCallback(async () => {
|
|
92
|
-
setIsLoading(true);
|
|
93
|
-
setError(null);
|
|
94
|
-
try {
|
|
95
|
-
await client.auth.logout();
|
|
96
|
-
}
|
|
97
|
-
catch (err) {
|
|
98
|
-
// Log error but continue with logout
|
|
99
|
-
console.error('Logout error:', err);
|
|
100
|
-
}
|
|
101
|
-
finally {
|
|
102
|
-
// Clear local state regardless of API call success
|
|
103
|
-
localStorage.removeItem('varity_token');
|
|
104
|
-
setUser(null);
|
|
105
|
-
setAuthenticated(false);
|
|
106
|
-
setIsLoading(false);
|
|
107
|
-
}
|
|
108
|
-
}, [client, setAuthenticated]);
|
|
109
|
-
return {
|
|
110
|
-
user,
|
|
111
|
-
isAuthenticated,
|
|
112
|
-
isLoading,
|
|
113
|
-
error,
|
|
114
|
-
login,
|
|
115
|
-
logout,
|
|
116
|
-
refreshUser
|
|
117
|
-
};
|
|
118
|
-
};
|
|
119
|
-
/**
|
|
120
|
-
* useWalletConnect Hook
|
|
121
|
-
*
|
|
122
|
-
* Helper hook for connecting external wallets (MetaMask, etc).
|
|
123
|
-
*
|
|
124
|
-
* @example
|
|
125
|
-
* ```tsx
|
|
126
|
-
* const { connect, disconnect, address, isConnected } = useWalletConnect()
|
|
127
|
-
* await connect()
|
|
128
|
-
* ```
|
|
129
|
-
*/
|
|
130
|
-
export const useWalletConnect = () => {
|
|
131
|
-
const [address, setAddress] = useState(null);
|
|
132
|
-
const [isConnected, setIsConnected] = useState(false);
|
|
133
|
-
const [isLoading, setIsLoading] = useState(false);
|
|
134
|
-
const [error, setError] = useState(null);
|
|
135
|
-
const connect = useCallback(async () => {
|
|
136
|
-
setIsLoading(true);
|
|
137
|
-
setError(null);
|
|
138
|
-
try {
|
|
139
|
-
// Check if MetaMask is installed
|
|
140
|
-
const ethereum = window.ethereum;
|
|
141
|
-
if (!ethereum) {
|
|
142
|
-
throw new Error('MetaMask is not installed');
|
|
143
|
-
}
|
|
144
|
-
// Request account access
|
|
145
|
-
const result = await ethereum.request({
|
|
146
|
-
method: 'eth_requestAccounts'
|
|
147
|
-
});
|
|
148
|
-
// Type guard for accounts array
|
|
149
|
-
const accounts = Array.isArray(result) ? result : [];
|
|
150
|
-
if (accounts.length === 0) {
|
|
151
|
-
throw new Error('No accounts found');
|
|
152
|
-
}
|
|
153
|
-
setAddress(accounts[0]);
|
|
154
|
-
setIsConnected(true);
|
|
155
|
-
}
|
|
156
|
-
catch (err) {
|
|
157
|
-
const error = err instanceof Error ? err : new Error('Failed to connect wallet');
|
|
158
|
-
setError(error);
|
|
159
|
-
throw error;
|
|
160
|
-
}
|
|
161
|
-
finally {
|
|
162
|
-
setIsLoading(false);
|
|
163
|
-
}
|
|
164
|
-
}, []);
|
|
165
|
-
const disconnect = useCallback(() => {
|
|
166
|
-
setAddress(null);
|
|
167
|
-
setIsConnected(false);
|
|
168
|
-
}, []);
|
|
169
|
-
// Listen for account changes
|
|
170
|
-
useEffect(() => {
|
|
171
|
-
const ethereum = window.ethereum;
|
|
172
|
-
if (!ethereum)
|
|
173
|
-
return;
|
|
174
|
-
const handleAccountsChanged = (...args) => {
|
|
175
|
-
// Type guard for accounts parameter
|
|
176
|
-
const accounts = Array.isArray(args[0]) ? args[0] : [];
|
|
177
|
-
if (accounts.length === 0) {
|
|
178
|
-
disconnect();
|
|
179
|
-
}
|
|
180
|
-
else {
|
|
181
|
-
setAddress(accounts[0]);
|
|
182
|
-
}
|
|
183
|
-
};
|
|
184
|
-
ethereum.on('accountsChanged', handleAccountsChanged);
|
|
185
|
-
return () => {
|
|
186
|
-
ethereum.removeListener('accountsChanged', handleAccountsChanged);
|
|
187
|
-
};
|
|
188
|
-
}, [disconnect]);
|
|
189
|
-
return {
|
|
190
|
-
address,
|
|
191
|
-
isConnected,
|
|
192
|
-
isLoading,
|
|
193
|
-
error,
|
|
194
|
-
connect,
|
|
195
|
-
disconnect
|
|
196
|
-
};
|
|
197
|
-
};
|
|
198
|
-
//# sourceMappingURL=useAuth.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useAuth.js","sourceRoot":"","sources":["../../src/hooks/useAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useDashboard - Dashboard state management hook
|
|
3
|
-
*
|
|
4
|
-
* Manages dashboard configuration, layout, and data.
|
|
5
|
-
*/
|
|
6
|
-
export interface DashboardWidget {
|
|
7
|
-
/** Widget ID */
|
|
8
|
-
id: string;
|
|
9
|
-
/** Widget type */
|
|
10
|
-
type: 'kpi' | 'chart' | 'table' | 'ai-chat' | 'custom';
|
|
11
|
-
/** Widget title */
|
|
12
|
-
title: string;
|
|
13
|
-
/** Widget configuration */
|
|
14
|
-
config: Record<string, any>;
|
|
15
|
-
/** Widget position */
|
|
16
|
-
position: {
|
|
17
|
-
x: number;
|
|
18
|
-
y: number;
|
|
19
|
-
width: number;
|
|
20
|
-
height: number;
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
export interface DashboardConfig {
|
|
24
|
-
/** Dashboard ID */
|
|
25
|
-
id: string;
|
|
26
|
-
/** Dashboard title */
|
|
27
|
-
title: string;
|
|
28
|
-
/** Dashboard description */
|
|
29
|
-
description?: string;
|
|
30
|
-
/** Dashboard widgets */
|
|
31
|
-
widgets: DashboardWidget[];
|
|
32
|
-
/** Dashboard layout */
|
|
33
|
-
layout?: 'grid' | 'flex' | 'custom';
|
|
34
|
-
/** Dashboard theme */
|
|
35
|
-
theme?: string;
|
|
36
|
-
}
|
|
37
|
-
export interface UseDashboardOptions {
|
|
38
|
-
/** Dashboard ID to load */
|
|
39
|
-
dashboardId?: string;
|
|
40
|
-
/** Auto-save changes */
|
|
41
|
-
autoSave?: boolean;
|
|
42
|
-
/** Auto-save interval in milliseconds */
|
|
43
|
-
autoSaveInterval?: number;
|
|
44
|
-
}
|
|
45
|
-
export interface UseDashboardReturn {
|
|
46
|
-
/** Dashboard configuration */
|
|
47
|
-
config: DashboardConfig | null;
|
|
48
|
-
/** Loading state */
|
|
49
|
-
loading: boolean;
|
|
50
|
-
/** Error state */
|
|
51
|
-
error: Error | null;
|
|
52
|
-
/** Update dashboard config */
|
|
53
|
-
updateConfig: (config: Partial<DashboardConfig>) => void;
|
|
54
|
-
/** Add widget */
|
|
55
|
-
addWidget: (widget: DashboardWidget) => void;
|
|
56
|
-
/** Remove widget */
|
|
57
|
-
removeWidget: (widgetId: string) => void;
|
|
58
|
-
/** Update widget */
|
|
59
|
-
updateWidget: (widgetId: string, updates: Partial<DashboardWidget>) => void;
|
|
60
|
-
/** Save dashboard */
|
|
61
|
-
save: () => Promise<void>;
|
|
62
|
-
/** Load dashboard */
|
|
63
|
-
load: (dashboardId: string) => Promise<void>;
|
|
64
|
-
/** Reset dashboard */
|
|
65
|
-
reset: () => void;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* useDashboard Hook
|
|
69
|
-
*
|
|
70
|
-
* Manage dashboard configuration and widgets.
|
|
71
|
-
*
|
|
72
|
-
* @example
|
|
73
|
-
* ```tsx
|
|
74
|
-
* const { config, addWidget, save } = useDashboard({
|
|
75
|
-
* dashboardId: 'my-dashboard',
|
|
76
|
-
* autoSave: true
|
|
77
|
-
* })
|
|
78
|
-
*
|
|
79
|
-
* // Add a widget
|
|
80
|
-
* addWidget({
|
|
81
|
-
* id: 'widget-1',
|
|
82
|
-
* type: 'kpi',
|
|
83
|
-
* title: 'Total Revenue',
|
|
84
|
-
* config: { metric: 'revenue' },
|
|
85
|
-
* position: { x: 0, y: 0, width: 4, height: 2 }
|
|
86
|
-
* })
|
|
87
|
-
* ```
|
|
88
|
-
*/
|
|
89
|
-
export declare const useDashboard: (options?: UseDashboardOptions) => UseDashboardReturn;
|
|
90
|
-
/**
|
|
91
|
-
* useWidgetData Hook
|
|
92
|
-
*
|
|
93
|
-
* Fetch data for a specific dashboard widget.
|
|
94
|
-
*
|
|
95
|
-
* @example
|
|
96
|
-
* ```tsx
|
|
97
|
-
* const { data, loading } = useWidgetData({
|
|
98
|
-
* id: 'widget-1',
|
|
99
|
-
* type: 'kpi',
|
|
100
|
-
* config: { metric: 'revenue' }
|
|
101
|
-
* })
|
|
102
|
-
* ```
|
|
103
|
-
*/
|
|
104
|
-
export declare const useWidgetData: (widget: DashboardWidget) => {
|
|
105
|
-
data: any;
|
|
106
|
-
loading: boolean;
|
|
107
|
-
error: Error | null;
|
|
108
|
-
refetch: () => Promise<void>;
|
|
109
|
-
};
|
|
110
|
-
//# sourceMappingURL=useDashboard.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDashboard.d.ts","sourceRoot":"","sources":["../../src/hooks/useDashboard.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,eAAe;IAC9B,gBAAgB;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,kBAAkB;IAClB,IAAI,EAAE,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAA;IACtD,mBAAmB;IACnB,KAAK,EAAE,MAAM,CAAA;IACb,2BAA2B;IAC3B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC3B,sBAAsB;IACtB,QAAQ,EAAE;QACR,CAAC,EAAE,MAAM,CAAA;QACT,CAAC,EAAE,MAAM,CAAA;QACT,KAAK,EAAE,MAAM,CAAA;QACb,MAAM,EAAE,MAAM,CAAA;KACf,CAAA;CACF;AAED,MAAM,WAAW,eAAe;IAC9B,mBAAmB;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAA;IACb,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wBAAwB;IACxB,OAAO,EAAE,eAAe,EAAE,CAAA;IAC1B,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAA;IACnC,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,mBAAmB;IAClC,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,yCAAyC;IACzC,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,8BAA8B;IAC9B,MAAM,EAAE,eAAe,GAAG,IAAI,CAAA;IAC9B,oBAAoB;IACpB,OAAO,EAAE,OAAO,CAAA;IAChB,kBAAkB;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAA;IACnB,8BAA8B;IAC9B,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,CAAA;IACxD,iBAAiB;IACjB,SAAS,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAA;IAC5C,oBAAoB;IACpB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IACxC,oBAAoB;IACpB,YAAY,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,CAAC,KAAK,IAAI,CAAA;IAC3E,qBAAqB;IACrB,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IACzB,qBAAqB;IACrB,IAAI,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5C,sBAAsB;IACtB,KAAK,EAAE,MAAM,IAAI,CAAA;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,YAAY,GAAI,UAAS,mBAAwB,KAAG,kBAqHhE,CAAA;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,aAAa,GAAI,QAAQ,eAAe;;;;;CA8CpD,CAAA"}
|