@varity-labs/ui-kit 2.0.0-beta.7 → 2.0.0-beta.9
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/README.md +1 -1
- 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/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/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/package.json +21 -20
- package/dist/components/Analytics/__tests__/DataTable.test.d.ts +0 -2
- package/dist/components/Analytics/__tests__/DataTable.test.d.ts.map +0 -1
- package/dist/components/Analytics/__tests__/DataTable.test.js +0 -113
- package/dist/components/Analytics/__tests__/DataTable.test.js.map +0 -1
- package/dist/components/Dashboard/__tests__/EmptyState.test.d.ts +0 -2
- package/dist/components/Dashboard/__tests__/EmptyState.test.d.ts.map +0 -1
- package/dist/components/Dashboard/__tests__/EmptyState.test.js +0 -81
- package/dist/components/Dashboard/__tests__/EmptyState.test.js.map +0 -1
- package/dist/components/Dashboard/__tests__/KPICard.test.d.ts +0 -2
- package/dist/components/Dashboard/__tests__/KPICard.test.d.ts.map +0 -1
- package/dist/components/Dashboard/__tests__/KPICard.test.js +0 -78
- package/dist/components/Dashboard/__tests__/KPICard.test.js.map +0 -1
- package/dist/components/Privy/__tests__/InitScreens.test.d.ts +0 -2
- package/dist/components/Privy/__tests__/InitScreens.test.d.ts.map +0 -1
- package/dist/components/Privy/__tests__/InitScreens.test.js +0 -74
- package/dist/components/Privy/__tests__/InitScreens.test.js.map +0 -1
- 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
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"}
|
|
@@ -1,201 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* useDashboard - Dashboard state management hook
|
|
3
|
-
*
|
|
4
|
-
* Manages dashboard configuration, layout, and data.
|
|
5
|
-
*/
|
|
6
|
-
import { useState, useCallback, useEffect } from 'react';
|
|
7
|
-
import { useVarityAPI } from './useVarityAPI';
|
|
8
|
-
/**
|
|
9
|
-
* useDashboard Hook
|
|
10
|
-
*
|
|
11
|
-
* Manage dashboard configuration and widgets.
|
|
12
|
-
*
|
|
13
|
-
* @example
|
|
14
|
-
* ```tsx
|
|
15
|
-
* const { config, addWidget, save } = useDashboard({
|
|
16
|
-
* dashboardId: 'my-dashboard',
|
|
17
|
-
* autoSave: true
|
|
18
|
-
* })
|
|
19
|
-
*
|
|
20
|
-
* // Add a widget
|
|
21
|
-
* addWidget({
|
|
22
|
-
* id: 'widget-1',
|
|
23
|
-
* type: 'kpi',
|
|
24
|
-
* title: 'Total Revenue',
|
|
25
|
-
* config: { metric: 'revenue' },
|
|
26
|
-
* position: { x: 0, y: 0, width: 4, height: 2 }
|
|
27
|
-
* })
|
|
28
|
-
* ```
|
|
29
|
-
*/
|
|
30
|
-
export const useDashboard = (options = {}) => {
|
|
31
|
-
const { client } = useVarityAPI();
|
|
32
|
-
const [config, setConfig] = useState(null);
|
|
33
|
-
const [loading, setLoading] = useState(false);
|
|
34
|
-
const [error, setError] = useState(null);
|
|
35
|
-
const [hasChanges, setHasChanges] = useState(false);
|
|
36
|
-
const { dashboardId, autoSave = false, autoSaveInterval = 30000 } = options;
|
|
37
|
-
const load = useCallback(async (id) => {
|
|
38
|
-
setLoading(true);
|
|
39
|
-
setError(null);
|
|
40
|
-
try {
|
|
41
|
-
const dashboard = await client.dashboard.get(id);
|
|
42
|
-
setConfig(dashboard);
|
|
43
|
-
setHasChanges(false);
|
|
44
|
-
}
|
|
45
|
-
catch (err) {
|
|
46
|
-
const error = err instanceof Error ? err : new Error('Failed to load dashboard');
|
|
47
|
-
setError(error);
|
|
48
|
-
}
|
|
49
|
-
finally {
|
|
50
|
-
setLoading(false);
|
|
51
|
-
}
|
|
52
|
-
}, [client]);
|
|
53
|
-
const save = useCallback(async () => {
|
|
54
|
-
if (!config)
|
|
55
|
-
return;
|
|
56
|
-
setLoading(true);
|
|
57
|
-
setError(null);
|
|
58
|
-
try {
|
|
59
|
-
await client.dashboard.save(config);
|
|
60
|
-
setHasChanges(false);
|
|
61
|
-
}
|
|
62
|
-
catch (err) {
|
|
63
|
-
const error = err instanceof Error ? err : new Error('Failed to save dashboard');
|
|
64
|
-
setError(error);
|
|
65
|
-
throw error;
|
|
66
|
-
}
|
|
67
|
-
finally {
|
|
68
|
-
setLoading(false);
|
|
69
|
-
}
|
|
70
|
-
}, [client, config]);
|
|
71
|
-
// Load dashboard on mount
|
|
72
|
-
useEffect(() => {
|
|
73
|
-
if (dashboardId) {
|
|
74
|
-
load(dashboardId);
|
|
75
|
-
}
|
|
76
|
-
}, [dashboardId, load]);
|
|
77
|
-
// Auto-save if enabled
|
|
78
|
-
useEffect(() => {
|
|
79
|
-
if (!autoSave || !hasChanges || !config)
|
|
80
|
-
return;
|
|
81
|
-
const interval = setInterval(() => {
|
|
82
|
-
save();
|
|
83
|
-
}, autoSaveInterval);
|
|
84
|
-
return () => clearInterval(interval);
|
|
85
|
-
}, [autoSave, hasChanges, config, autoSaveInterval, save]);
|
|
86
|
-
const updateConfig = useCallback((updates) => {
|
|
87
|
-
setConfig((prev) => prev ? { ...prev, ...updates } : null);
|
|
88
|
-
setHasChanges(true);
|
|
89
|
-
}, []);
|
|
90
|
-
const addWidget = useCallback((widget) => {
|
|
91
|
-
setConfig((prev) => {
|
|
92
|
-
if (!prev)
|
|
93
|
-
return null;
|
|
94
|
-
return {
|
|
95
|
-
...prev,
|
|
96
|
-
widgets: [...prev.widgets, widget]
|
|
97
|
-
};
|
|
98
|
-
});
|
|
99
|
-
setHasChanges(true);
|
|
100
|
-
}, []);
|
|
101
|
-
const removeWidget = useCallback((widgetId) => {
|
|
102
|
-
setConfig((prev) => {
|
|
103
|
-
if (!prev)
|
|
104
|
-
return null;
|
|
105
|
-
return {
|
|
106
|
-
...prev,
|
|
107
|
-
widgets: prev.widgets.filter((w) => w.id !== widgetId)
|
|
108
|
-
};
|
|
109
|
-
});
|
|
110
|
-
setHasChanges(true);
|
|
111
|
-
}, []);
|
|
112
|
-
const updateWidget = useCallback((widgetId, updates) => {
|
|
113
|
-
setConfig((prev) => {
|
|
114
|
-
if (!prev)
|
|
115
|
-
return null;
|
|
116
|
-
return {
|
|
117
|
-
...prev,
|
|
118
|
-
widgets: prev.widgets.map((w) => w.id === widgetId ? { ...w, ...updates } : w)
|
|
119
|
-
};
|
|
120
|
-
});
|
|
121
|
-
setHasChanges(true);
|
|
122
|
-
}, []);
|
|
123
|
-
const reset = useCallback(() => {
|
|
124
|
-
setConfig(null);
|
|
125
|
-
setHasChanges(false);
|
|
126
|
-
setError(null);
|
|
127
|
-
}, []);
|
|
128
|
-
return {
|
|
129
|
-
config,
|
|
130
|
-
loading,
|
|
131
|
-
error,
|
|
132
|
-
updateConfig,
|
|
133
|
-
addWidget,
|
|
134
|
-
removeWidget,
|
|
135
|
-
updateWidget,
|
|
136
|
-
save,
|
|
137
|
-
load,
|
|
138
|
-
reset
|
|
139
|
-
};
|
|
140
|
-
};
|
|
141
|
-
/**
|
|
142
|
-
* useWidgetData Hook
|
|
143
|
-
*
|
|
144
|
-
* Fetch data for a specific dashboard widget.
|
|
145
|
-
*
|
|
146
|
-
* @example
|
|
147
|
-
* ```tsx
|
|
148
|
-
* const { data, loading } = useWidgetData({
|
|
149
|
-
* id: 'widget-1',
|
|
150
|
-
* type: 'kpi',
|
|
151
|
-
* config: { metric: 'revenue' }
|
|
152
|
-
* })
|
|
153
|
-
* ```
|
|
154
|
-
*/
|
|
155
|
-
export const useWidgetData = (widget) => {
|
|
156
|
-
const { client } = useVarityAPI();
|
|
157
|
-
const [data, setData] = useState(null);
|
|
158
|
-
const [loading, setLoading] = useState(false);
|
|
159
|
-
const [error, setError] = useState(null);
|
|
160
|
-
const fetchData = useCallback(async () => {
|
|
161
|
-
setLoading(true);
|
|
162
|
-
setError(null);
|
|
163
|
-
try {
|
|
164
|
-
let result;
|
|
165
|
-
switch (widget.type) {
|
|
166
|
-
case 'kpi':
|
|
167
|
-
result = await client.analytics.getKPIs({ period: 'current_month' });
|
|
168
|
-
break;
|
|
169
|
-
case 'chart':
|
|
170
|
-
result = await client.analytics.getTrends({
|
|
171
|
-
startDate: widget.config.startDate,
|
|
172
|
-
endDate: widget.config.endDate
|
|
173
|
-
});
|
|
174
|
-
break;
|
|
175
|
-
case 'table':
|
|
176
|
-
result = await client.analytics.getData(widget.config);
|
|
177
|
-
break;
|
|
178
|
-
default:
|
|
179
|
-
result = null;
|
|
180
|
-
}
|
|
181
|
-
setData(result);
|
|
182
|
-
}
|
|
183
|
-
catch (err) {
|
|
184
|
-
const error = err instanceof Error ? err : new Error('Failed to fetch widget data');
|
|
185
|
-
setError(error);
|
|
186
|
-
}
|
|
187
|
-
finally {
|
|
188
|
-
setLoading(false);
|
|
189
|
-
}
|
|
190
|
-
}, [client, widget]);
|
|
191
|
-
useEffect(() => {
|
|
192
|
-
fetchData();
|
|
193
|
-
}, [fetchData]);
|
|
194
|
-
return {
|
|
195
|
-
data,
|
|
196
|
-
loading,
|
|
197
|
-
error,
|
|
198
|
-
refetch: fetchData
|
|
199
|
-
};
|
|
200
|
-
};
|
|
201
|
-
//# sourceMappingURL=useDashboard.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDashboard.js","sourceRoot":"","sources":["../../src/hooks/useDashboard.ts"],"names":[],"mappings":"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"}
|