keynesol-shared 1.0.2 → 1.0.3
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/components/Common/ErrorBoundary.js +3 -42
- package/dist/components/Common/ErrorMessage.js +2 -5
- package/dist/components/Common/Loading.js +2 -7
- package/dist/components/Common/LoadingIndicator.js +5 -20
- package/dist/components/Common/ProgramStatus.js +2 -2
- package/dist/components/Common/Skeleton.js +4 -19
- package/dist/components/Common/SkeletonScreen.js +7 -15
- package/dist/components/Wallet/TransactionStatus.js +2 -7
- package/dist/components/Wallet/WalletBalance.js +3 -37
- package/dist/components/Wallet/WalletButton.js +2 -2
- package/dist/components/Wallet/WalletConnectionModal.js +2 -10
- package/dist/components/Wallet/WalletProvider.d.ts +2 -2
- package/dist/components/Wallet/WalletProvider.d.ts.map +1 -1
- package/dist/components/Wallet/WalletProvider.js +3 -37
- package/package.json +1 -1
- package/dist/components/Common/ErrorBoundary.jsx +0 -103
- package/dist/components/Common/ErrorMessage.jsx +0 -40
- package/dist/components/Common/Loading.jsx +0 -44
- package/dist/components/Common/LoadingIndicator.jsx +0 -108
- package/dist/components/Common/ProgramStatus.jsx +0 -27
- package/dist/components/Common/Skeleton.jsx +0 -67
- package/dist/components/Common/SkeletonScreen.jsx +0 -108
- package/dist/components/Wallet/TransactionStatus.jsx +0 -106
- package/dist/components/Wallet/WalletBalance.jsx +0 -86
- package/dist/components/Wallet/WalletButton.jsx +0 -53
- package/dist/components/Wallet/WalletConnectionModal.jsx +0 -170
- package/dist/components/Wallet/WalletProvider.jsx +0 -75
|
@@ -1,47 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
4
|
};
|
|
38
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
6
|
exports.ErrorBoundary = void 0;
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
40
8
|
/**
|
|
41
9
|
* ErrorBoundary Component
|
|
42
10
|
* Requirements: 11.1 - Global error handling with React error boundaries
|
|
43
11
|
*/
|
|
44
|
-
const react_1 =
|
|
12
|
+
const react_1 = require("react");
|
|
45
13
|
const styled_components_1 = __importDefault(require("styled-components"));
|
|
46
14
|
const ErrorMessage_1 = require("./ErrorMessage");
|
|
47
15
|
const Container = styled_components_1.default.div `
|
|
@@ -124,14 +92,7 @@ class ErrorBoundary extends react_1.Component {
|
|
|
124
92
|
return this.props.fallback;
|
|
125
93
|
}
|
|
126
94
|
const isDevelopment = typeof process !== 'undefined' && ((_a = process.env) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === 'development';
|
|
127
|
-
return (
|
|
128
|
-
react_1.default.createElement(ErrorTitle, null, "Something went wrong"),
|
|
129
|
-
react_1.default.createElement(ErrorMessage_1.ErrorMessage, { message: ((_b = this.state.error) === null || _b === void 0 ? void 0 : _b.message) || 'An unexpected error occurred', onRetry: this.handleReset }),
|
|
130
|
-
isDevelopment && this.state.errorInfo && (react_1.default.createElement(ErrorDetails, null,
|
|
131
|
-
react_1.default.createElement(ErrorSummary, null, "Error Details (Development Only)"),
|
|
132
|
-
react_1.default.createElement(ErrorCode, null, (_c = this.state.error) === null || _c === void 0 ? void 0 :
|
|
133
|
-
_c.toString(),
|
|
134
|
-
this.state.errorInfo.componentStack)))));
|
|
95
|
+
return ((0, jsx_runtime_1.jsxs)(Container, { children: [(0, jsx_runtime_1.jsx)(ErrorTitle, { children: "Something went wrong" }), (0, jsx_runtime_1.jsx)(ErrorMessage_1.ErrorMessage, { message: ((_b = this.state.error) === null || _b === void 0 ? void 0 : _b.message) || 'An unexpected error occurred', onRetry: this.handleReset }), isDevelopment && this.state.errorInfo && ((0, jsx_runtime_1.jsxs)(ErrorDetails, { children: [(0, jsx_runtime_1.jsx)(ErrorSummary, { children: "Error Details (Development Only)" }), (0, jsx_runtime_1.jsxs)(ErrorCode, { children: [(_c = this.state.error) === null || _c === void 0 ? void 0 : _c.toString(), this.state.errorInfo.componentStack] })] }))] }));
|
|
135
96
|
}
|
|
136
97
|
return this.props.children;
|
|
137
98
|
}
|
|
@@ -4,13 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.ErrorMessage = void 0;
|
|
7
|
-
const
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
8
|
const styled_components_1 = __importDefault(require("styled-components"));
|
|
9
9
|
const ErrorMessage = ({ message, onRetry }) => {
|
|
10
|
-
return (
|
|
11
|
-
react_1.default.createElement(Icon, null, "\u26A0\uFE0F"),
|
|
12
|
-
react_1.default.createElement(Message, null, message),
|
|
13
|
-
onRetry && react_1.default.createElement(RetryButton, { onClick: onRetry }, "Try Again")));
|
|
10
|
+
return ((0, jsx_runtime_1.jsxs)(Container, { children: [(0, jsx_runtime_1.jsx)(Icon, { children: "\u26A0\uFE0F" }), (0, jsx_runtime_1.jsx)(Message, { children: message }), onRetry && (0, jsx_runtime_1.jsx)(RetryButton, { onClick: onRetry, children: "Try Again" })] }));
|
|
14
11
|
};
|
|
15
12
|
exports.ErrorMessage = ErrorMessage;
|
|
16
13
|
const Container = styled_components_1.default.div `
|
|
@@ -32,17 +32,12 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
36
|
exports.Loading = void 0;
|
|
40
|
-
const
|
|
37
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
41
38
|
const styled_components_1 = __importStar(require("styled-components"));
|
|
42
39
|
const Loading = ({ size = 'medium', text }) => {
|
|
43
|
-
return (
|
|
44
|
-
react_1.default.createElement(Spinner, { size: size }),
|
|
45
|
-
text && react_1.default.createElement(LoadingText, null, text)));
|
|
40
|
+
return ((0, jsx_runtime_1.jsxs)(Container, { children: [(0, jsx_runtime_1.jsx)(Spinner, { size: size }), text && (0, jsx_runtime_1.jsx)(LoadingText, { children: text })] }));
|
|
46
41
|
};
|
|
47
42
|
exports.Loading = Loading;
|
|
48
43
|
const spin = (0, styled_components_1.keyframes) `
|
|
@@ -32,17 +32,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
36
|
exports.LoadingIndicator = void 0;
|
|
40
|
-
|
|
41
|
-
* Loading Indicator Component
|
|
42
|
-
* Displays loading feedback appropriate to context
|
|
43
|
-
* Requirements: 5.2, 5.5
|
|
44
|
-
*/
|
|
45
|
-
const react_1 = __importDefault(require("react"));
|
|
37
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
46
38
|
const styled_components_1 = __importStar(require("styled-components"));
|
|
47
39
|
const spin = (0, styled_components_1.keyframes) `
|
|
48
40
|
to { transform: rotate(360deg); }
|
|
@@ -126,22 +118,15 @@ const LoadingIndicator = ({ type, size = 'medium', message, progress, }) => {
|
|
|
126
118
|
const renderIndicator = () => {
|
|
127
119
|
switch (type) {
|
|
128
120
|
case 'spinner':
|
|
129
|
-
return
|
|
121
|
+
return (0, jsx_runtime_1.jsx)(Spinner, { size: size });
|
|
130
122
|
case 'progress':
|
|
131
|
-
return (
|
|
132
|
-
react_1.default.createElement(ProgressBarContainer, null,
|
|
133
|
-
react_1.default.createElement(ProgressBar, { progress: progress || 0 })),
|
|
134
|
-
progress !== undefined && (react_1.default.createElement(ProgressText, null,
|
|
135
|
-
Math.round(progress),
|
|
136
|
-
"%"))));
|
|
123
|
+
return ((0, jsx_runtime_1.jsxs)("div", { style: { width: '100%', maxWidth: '300px' }, children: [(0, jsx_runtime_1.jsx)(ProgressBarContainer, { children: (0, jsx_runtime_1.jsx)(ProgressBar, { progress: progress || 0 }) }), progress !== undefined && ((0, jsx_runtime_1.jsxs)(ProgressText, { children: [Math.round(progress), "%"] }))] }));
|
|
137
124
|
case 'dots':
|
|
138
|
-
return
|
|
125
|
+
return (0, jsx_runtime_1.jsx)(Dots, {});
|
|
139
126
|
default:
|
|
140
127
|
return null;
|
|
141
128
|
}
|
|
142
129
|
};
|
|
143
|
-
return (
|
|
144
|
-
renderIndicator(),
|
|
145
|
-
message && react_1.default.createElement(Message, null, message)));
|
|
130
|
+
return ((0, jsx_runtime_1.jsxs)(Container, { children: [renderIndicator(), message && (0, jsx_runtime_1.jsx)(Message, { children: message })] }));
|
|
146
131
|
};
|
|
147
132
|
exports.LoadingIndicator = LoadingIndicator;
|
|
@@ -37,6 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
};
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.ProgramStatus = void 0;
|
|
40
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
40
41
|
const react_1 = __importStar(require("react"));
|
|
41
42
|
const styled_components_1 = __importDefault(require("styled-components"));
|
|
42
43
|
const useProgram_1 = require("../../hooks/useProgram");
|
|
@@ -57,8 +58,7 @@ const ProgramStatus = () => {
|
|
|
57
58
|
if (!idlError) {
|
|
58
59
|
return null;
|
|
59
60
|
}
|
|
60
|
-
return (
|
|
61
|
-
react_1.default.createElement(ErrorMessage_1.ErrorMessage, { message: `Failed to load program contract. Please refresh the page. Error: ${idlError}`, onRetry: () => window.location.reload() })));
|
|
61
|
+
return ((0, jsx_runtime_1.jsx)(Container, { children: (0, jsx_runtime_1.jsx)(ErrorMessage_1.ErrorMessage, { message: `Failed to load program contract. Please refresh the page. Error: ${idlError}`, onRetry: () => window.location.reload() }) }));
|
|
62
62
|
};
|
|
63
63
|
exports.ProgramStatus = ProgramStatus;
|
|
64
64
|
const Container = styled_components_1.default.div `
|
|
@@ -32,16 +32,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
36
|
exports.ProfileSkeleton = exports.StatsSkeleton = exports.VaultCardSkeleton = exports.SkeletonAvatar = exports.SkeletonButton = exports.SkeletonTitle = exports.SkeletonText = exports.SkeletonCard = void 0;
|
|
40
|
-
|
|
41
|
-
* Skeleton Screen Components
|
|
42
|
-
* Requirements: 11.3 - Loading states with skeleton screens for better perceived performance
|
|
43
|
-
*/
|
|
44
|
-
const react_1 = __importDefault(require("react"));
|
|
37
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
45
38
|
const styled_components_1 = __importStar(require("styled-components"));
|
|
46
39
|
const shimmer = (0, styled_components_1.keyframes) `
|
|
47
40
|
0% {
|
|
@@ -91,17 +84,9 @@ exports.SkeletonAvatar = (0, styled_components_1.default)(SkeletonBase) `
|
|
|
91
84
|
height: 64px;
|
|
92
85
|
border-radius: 50%;
|
|
93
86
|
`;
|
|
94
|
-
const VaultCardSkeleton = () => (
|
|
87
|
+
const VaultCardSkeleton = () => ((0, jsx_runtime_1.jsx)(exports.SkeletonCard, {}));
|
|
95
88
|
exports.VaultCardSkeleton = VaultCardSkeleton;
|
|
96
|
-
const StatsSkeleton = () => (
|
|
97
|
-
react_1.default.createElement(exports.SkeletonTitle, null),
|
|
98
|
-
react_1.default.createElement(exports.SkeletonText, { width: "100%" }),
|
|
99
|
-
react_1.default.createElement(exports.SkeletonText, { width: "80%" }),
|
|
100
|
-
react_1.default.createElement(exports.SkeletonText, { width: "90%" })));
|
|
89
|
+
const StatsSkeleton = () => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.SkeletonTitle, {}), (0, jsx_runtime_1.jsx)(exports.SkeletonText, { width: "100%" }), (0, jsx_runtime_1.jsx)(exports.SkeletonText, { width: "80%" }), (0, jsx_runtime_1.jsx)(exports.SkeletonText, { width: "90%" })] }));
|
|
101
90
|
exports.StatsSkeleton = StatsSkeleton;
|
|
102
|
-
const ProfileSkeleton = () => (
|
|
103
|
-
react_1.default.createElement(exports.SkeletonAvatar, { width: "80px", height: "80px" }),
|
|
104
|
-
react_1.default.createElement(exports.SkeletonTitle, { width: "40%" }),
|
|
105
|
-
react_1.default.createElement(exports.SkeletonText, { width: "60%" }),
|
|
106
|
-
react_1.default.createElement(exports.SkeletonText, { width: "50%" })));
|
|
91
|
+
const ProfileSkeleton = () => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(exports.SkeletonAvatar, { width: "80px", height: "80px" }), (0, jsx_runtime_1.jsx)(exports.SkeletonTitle, { width: "40%" }), (0, jsx_runtime_1.jsx)(exports.SkeletonText, { width: "60%" }), (0, jsx_runtime_1.jsx)(exports.SkeletonText, { width: "50%" })] }));
|
|
107
92
|
exports.ProfileSkeleton = ProfileSkeleton;
|
|
@@ -32,17 +32,9 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
32
32
|
return result;
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
-
};
|
|
38
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
36
|
exports.SkeletonScreen = void 0;
|
|
40
|
-
|
|
41
|
-
* Skeleton Screen Component
|
|
42
|
-
* Loading placeholder that mimics content structure
|
|
43
|
-
* Requirements: 5.1
|
|
44
|
-
*/
|
|
45
|
-
const react_1 = __importDefault(require("react"));
|
|
37
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
46
38
|
const styled_components_1 = __importStar(require("styled-components"));
|
|
47
39
|
const pulse = (0, styled_components_1.keyframes) `
|
|
48
40
|
0%, 100% {
|
|
@@ -125,19 +117,19 @@ const SkeletonScreen = ({ variant, count = 1, height, width, animation = 'pulse'
|
|
|
125
117
|
const renderSkeleton = () => {
|
|
126
118
|
switch (variant) {
|
|
127
119
|
case 'card':
|
|
128
|
-
return Array.from({ length: count }).map((_, i) => (
|
|
120
|
+
return Array.from({ length: count }).map((_, i) => ((0, jsx_runtime_1.jsx)(CardSkeleton, { "$animation": animation, "$height": height, "$width": width }, i)));
|
|
129
121
|
case 'table':
|
|
130
|
-
return (
|
|
122
|
+
return ((0, jsx_runtime_1.jsx)(TableSkeleton, { children: Array.from({ length: count }).map((_, i) => ((0, jsx_runtime_1.jsx)(TableRowSkeleton, { "$animation": animation, "$height": height }, i))) }));
|
|
131
123
|
case 'chart':
|
|
132
|
-
return (
|
|
124
|
+
return ((0, jsx_runtime_1.jsx)(ChartSkeleton, { "$animation": animation, "$height": height, "$width": width }));
|
|
133
125
|
case 'list':
|
|
134
|
-
return (
|
|
126
|
+
return ((0, jsx_runtime_1.jsx)(ListSkeleton, { children: Array.from({ length: count }).map((_, i) => ((0, jsx_runtime_1.jsx)(ListItemSkeleton, { "$animation": animation, "$height": height }, i))) }));
|
|
135
127
|
case 'text':
|
|
136
|
-
return Array.from({ length: count }).map((_, i) => (
|
|
128
|
+
return Array.from({ length: count }).map((_, i) => ((0, jsx_runtime_1.jsx)(TextSkeleton, { "$animation": animation, "$height": height, "$width": i === count - 1 ? '80%' : width }, i)));
|
|
137
129
|
default:
|
|
138
130
|
return null;
|
|
139
131
|
}
|
|
140
132
|
};
|
|
141
|
-
return
|
|
133
|
+
return (0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: renderSkeleton() });
|
|
142
134
|
};
|
|
143
135
|
exports.SkeletonScreen = SkeletonScreen;
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
6
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
7
7
|
const styled_components_1 = __importDefault(require("styled-components"));
|
|
8
8
|
const StatusContainer = styled_components_1.default.div `
|
|
9
9
|
display: flex;
|
|
@@ -97,11 +97,6 @@ const TransactionStatus = ({ status, message, signature, explorerUrl = 'https://
|
|
|
97
97
|
const networkParam = network ||
|
|
98
98
|
(typeof process !== 'undefined' && ((_a = process.env) === null || _a === void 0 ? void 0 : _a.NEXT_PUBLIC_SOLANA_NETWORK)) ||
|
|
99
99
|
'devnet';
|
|
100
|
-
return (
|
|
101
|
-
react_1.default.createElement(StatusIcon, { status: status }, getIcon()),
|
|
102
|
-
react_1.default.createElement(StatusContent, null,
|
|
103
|
-
react_1.default.createElement(StatusTitle, null, getTitle()),
|
|
104
|
-
react_1.default.createElement(StatusMessage, null, message),
|
|
105
|
-
signature && status === 'confirmed' && (react_1.default.createElement(SignatureLink, { href: `${explorerUrl}/${signature}?cluster=${networkParam}`, target: "_blank", rel: "noopener noreferrer" }, "View on Explorer \u2192")))));
|
|
100
|
+
return ((0, jsx_runtime_1.jsxs)(StatusContainer, { status: status, children: [(0, jsx_runtime_1.jsx)(StatusIcon, { status: status, children: getIcon() }), (0, jsx_runtime_1.jsxs)(StatusContent, { children: [(0, jsx_runtime_1.jsx)(StatusTitle, { children: getTitle() }), (0, jsx_runtime_1.jsx)(StatusMessage, { children: message }), signature && status === 'confirmed' && ((0, jsx_runtime_1.jsx)(SignatureLink, { href: `${explorerUrl}/${signature}?cluster=${networkParam}`, target: "_blank", rel: "noopener noreferrer", children: "View on Explorer \u2192" }))] })] }));
|
|
106
101
|
};
|
|
107
102
|
exports.default = TransactionStatus;
|
|
@@ -1,37 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
3
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
4
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -45,7 +12,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
45
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
46
13
|
};
|
|
47
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
-
const
|
|
15
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
|
+
const react_1 = require("react");
|
|
49
17
|
const styled_components_1 = __importDefault(require("styled-components"));
|
|
50
18
|
const wallet_adapter_react_1 = require("@solana/wallet-adapter-react");
|
|
51
19
|
const web3_js_1 = require("@solana/web3.js");
|
|
@@ -114,8 +82,6 @@ const WalletBalance = () => {
|
|
|
114
82
|
if (!connected) {
|
|
115
83
|
return null;
|
|
116
84
|
}
|
|
117
|
-
return (
|
|
118
|
-
react_1.default.createElement(BalanceLabel, null, "Wallet Balance"),
|
|
119
|
-
loading ? (react_1.default.createElement(LoadingSpinner, null)) : (react_1.default.createElement(BalanceValue, null, balance !== null ? `${balance.toFixed(4)} SOL` : '—'))));
|
|
85
|
+
return ((0, jsx_runtime_1.jsxs)(BalanceContainer, { children: [(0, jsx_runtime_1.jsx)(BalanceLabel, { children: "Wallet Balance" }), loading ? ((0, jsx_runtime_1.jsx)(LoadingSpinner, {})) : ((0, jsx_runtime_1.jsx)(BalanceValue, { children: balance !== null ? `${balance.toFixed(4)} SOL` : '—' }))] }));
|
|
120
86
|
};
|
|
121
87
|
exports.default = WalletBalance;
|
|
@@ -4,7 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.WalletButton = void 0;
|
|
7
|
-
const
|
|
7
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
8
8
|
const wallet_adapter_react_1 = require("@solana/wallet-adapter-react");
|
|
9
9
|
const wallet_adapter_react_ui_1 = require("@solana/wallet-adapter-react-ui");
|
|
10
10
|
const styled_components_1 = __importDefault(require("styled-components"));
|
|
@@ -22,7 +22,7 @@ const WalletButton = () => {
|
|
|
22
22
|
const formatAddress = (address) => {
|
|
23
23
|
return `${address.slice(0, 4)}...${address.slice(-4)}`;
|
|
24
24
|
};
|
|
25
|
-
return (
|
|
25
|
+
return ((0, jsx_runtime_1.jsx)(Button, { onClick: handleClick, connected: connected, children: connected && publicKey ? formatAddress(publicKey.toBase58()) : 'Connect Wallet' }));
|
|
26
26
|
};
|
|
27
27
|
exports.WalletButton = WalletButton;
|
|
28
28
|
const Button = styled_components_1.default.button `
|
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
const
|
|
15
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
16
16
|
const styled_components_1 = __importDefault(require("styled-components"));
|
|
17
17
|
const wallet_adapter_react_1 = require("@solana/wallet-adapter-react");
|
|
18
18
|
const ModalOverlay = styled_components_1.default.div `
|
|
@@ -150,14 +150,6 @@ const WalletConnectionModal = ({ isOpen, onClose }) => {
|
|
|
150
150
|
onClose();
|
|
151
151
|
}
|
|
152
152
|
};
|
|
153
|
-
return (
|
|
154
|
-
react_1.default.createElement(ModalContent, null,
|
|
155
|
-
react_1.default.createElement(ModalHeader, null,
|
|
156
|
-
react_1.default.createElement(ModalTitle, null, "Connect Wallet"),
|
|
157
|
-
react_1.default.createElement(CloseButton, { onClick: onClose }, "\u00D7")),
|
|
158
|
-
react_1.default.createElement(Description, null, "Select a wallet to connect to the Web3 Prediction Platform and start staking."),
|
|
159
|
-
react_1.default.createElement(WalletList, null, wallets.map((wallet) => (react_1.default.createElement(WalletButton, { key: wallet.adapter.name, onClick: () => handleWalletSelect(wallet.adapter.name), disabled: connecting },
|
|
160
|
-
react_1.default.createElement(WalletIcon, null, wallet.adapter.icon ? (react_1.default.createElement("img", { src: wallet.adapter.icon, alt: wallet.adapter.name, width: 32, height: 32 })) : ('👛')),
|
|
161
|
-
react_1.default.createElement(WalletName, null, wallet.adapter.name))))))));
|
|
153
|
+
return ((0, jsx_runtime_1.jsx)(ModalOverlay, { isOpen: isOpen, onClick: handleOverlayClick, children: (0, jsx_runtime_1.jsxs)(ModalContent, { children: [(0, jsx_runtime_1.jsxs)(ModalHeader, { children: [(0, jsx_runtime_1.jsx)(ModalTitle, { children: "Connect Wallet" }), (0, jsx_runtime_1.jsx)(CloseButton, { onClick: onClose, children: "\u00D7" })] }), (0, jsx_runtime_1.jsx)(Description, { children: "Select a wallet to connect to the Web3 Prediction Platform and start staking." }), (0, jsx_runtime_1.jsx)(WalletList, { children: wallets.map((wallet) => ((0, jsx_runtime_1.jsxs)(WalletButton, { onClick: () => handleWalletSelect(wallet.adapter.name), disabled: connecting, children: [(0, jsx_runtime_1.jsx)(WalletIcon, { children: wallet.adapter.icon ? ((0, jsx_runtime_1.jsx)("img", { src: wallet.adapter.icon, alt: wallet.adapter.name, width: 32, height: 32 })) : ('👛') }), (0, jsx_runtime_1.jsx)(WalletName, { children: wallet.adapter.name })] }, wallet.adapter.name))) })] }) }));
|
|
162
154
|
};
|
|
163
155
|
exports.default = WalletConnectionModal;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
2
|
interface WalletProviderProps {
|
|
3
3
|
children: ReactNode;
|
|
4
4
|
network?: 'devnet' | 'mainnet-beta' | 'testnet';
|
|
5
5
|
rpcEndpoint?: string;
|
|
6
6
|
}
|
|
7
|
-
export declare const WalletProvider: ({ children, network: networkProp, rpcEndpoint: rpcEndpointProp }: WalletProviderProps) =>
|
|
7
|
+
export declare const WalletProvider: ({ children, network: networkProp, rpcEndpoint: rpcEndpointProp }: WalletProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
8
|
export {};
|
|
9
9
|
//# sourceMappingURL=WalletProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WalletProvider.d.ts","sourceRoot":"","sources":["../../../src/components/Wallet/WalletProvider.tsx"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"WalletProvider.d.ts","sourceRoot":"","sources":["../../../src/components/Wallet/WalletProvider.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAW,SAAS,EAAE,MAAM,OAAO,CAAC;AASlD,UAAU,mBAAmB;IAC3B,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,SAAS,CAAC;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,GAAI,kEAI5B,mBAAmB,4CAoFrB,CAAC"}
|
|
@@ -1,40 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
3
|
exports.WalletProvider = void 0;
|
|
37
|
-
const
|
|
4
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
+
const react_1 = require("react");
|
|
38
6
|
const wallet_adapter_react_1 = require("@solana/wallet-adapter-react");
|
|
39
7
|
const wallet_adapter_base_1 = require("@solana/wallet-adapter-base");
|
|
40
8
|
const wallet_adapter_wallets_1 = require("@solana/wallet-adapter-wallets");
|
|
@@ -101,8 +69,6 @@ const WalletProvider = ({ children, network: networkProp, rpcEndpoint: rpcEndpoi
|
|
|
101
69
|
// Type assertion to fix React 18/19 compatibility
|
|
102
70
|
const ConnectionProviderComponent = wallet_adapter_react_1.ConnectionProvider;
|
|
103
71
|
// Type assertion to fix React 18/19 compatibility
|
|
104
|
-
return (
|
|
105
|
-
react_1.default.createElement(wallet_adapter_react_1.WalletProvider, { wallets: wallets, autoConnect: true },
|
|
106
|
-
react_1.default.createElement(wallet_adapter_react_ui_1.WalletModalProvider, null, children))));
|
|
72
|
+
return ((0, jsx_runtime_1.jsx)(ConnectionProviderComponent, { endpoint: endpoint, config: connectionConfig, children: (0, jsx_runtime_1.jsx)(wallet_adapter_react_1.WalletProvider, { wallets: wallets, autoConnect: true, children: (0, jsx_runtime_1.jsx)(wallet_adapter_react_ui_1.WalletModalProvider, { children: children }) }) }));
|
|
107
73
|
};
|
|
108
74
|
exports.WalletProvider = WalletProvider;
|
package/package.json
CHANGED
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ErrorBoundary Component
|
|
3
|
-
* Requirements: 11.1 - Global error handling with React error boundaries
|
|
4
|
-
*/
|
|
5
|
-
import React, { Component } from 'react';
|
|
6
|
-
import styled from 'styled-components';
|
|
7
|
-
import { ErrorMessage } from './ErrorMessage';
|
|
8
|
-
const Container = styled.div `
|
|
9
|
-
padding: var(--spacing-xl, 1.5rem);
|
|
10
|
-
display: flex;
|
|
11
|
-
flex-direction: column;
|
|
12
|
-
align-items: center;
|
|
13
|
-
justify-content: center;
|
|
14
|
-
min-height: 400px;
|
|
15
|
-
`;
|
|
16
|
-
const ErrorTitle = styled.h2 `
|
|
17
|
-
font-size: 1.5rem;
|
|
18
|
-
font-weight: 700;
|
|
19
|
-
color: var(--color-error, #dc3545);
|
|
20
|
-
margin-bottom: var(--spacing-md, 1rem);
|
|
21
|
-
`;
|
|
22
|
-
const ErrorDetails = styled.details `
|
|
23
|
-
margin-top: var(--spacing-lg, 1.5rem);
|
|
24
|
-
width: 100%;
|
|
25
|
-
max-width: 800px;
|
|
26
|
-
`;
|
|
27
|
-
const ErrorSummary = styled.summary `
|
|
28
|
-
cursor: pointer;
|
|
29
|
-
color: var(--color-text-secondary, #6b7280);
|
|
30
|
-
font-size: 0.875rem;
|
|
31
|
-
margin-bottom: var(--spacing-md, 1rem);
|
|
32
|
-
|
|
33
|
-
&:hover {
|
|
34
|
-
color: var(--color-text, #1a1a1a);
|
|
35
|
-
}
|
|
36
|
-
`;
|
|
37
|
-
const ErrorCode = styled.pre `
|
|
38
|
-
background: var(--color-background, #ffffff);
|
|
39
|
-
border: 1px solid var(--color-border, #e5e7eb);
|
|
40
|
-
border-radius: var(--border-radius-md, 0.375rem);
|
|
41
|
-
padding: var(--spacing-md, 1rem);
|
|
42
|
-
overflow-x: auto;
|
|
43
|
-
font-size: 0.75rem;
|
|
44
|
-
color: var(--color-text-secondary, #6b7280);
|
|
45
|
-
max-height: 300px;
|
|
46
|
-
overflow-y: auto;
|
|
47
|
-
`;
|
|
48
|
-
export class ErrorBoundary extends Component {
|
|
49
|
-
constructor(props) {
|
|
50
|
-
super(props);
|
|
51
|
-
this.handleReset = () => {
|
|
52
|
-
this.setState({
|
|
53
|
-
hasError: false,
|
|
54
|
-
error: null,
|
|
55
|
-
errorInfo: null,
|
|
56
|
-
});
|
|
57
|
-
};
|
|
58
|
-
this.state = {
|
|
59
|
-
hasError: false,
|
|
60
|
-
error: null,
|
|
61
|
-
errorInfo: null,
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
static getDerivedStateFromError(error) {
|
|
65
|
-
return {
|
|
66
|
-
hasError: true,
|
|
67
|
-
error,
|
|
68
|
-
errorInfo: null,
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
componentDidCatch(error, errorInfo) {
|
|
72
|
-
// Log error to console and monitoring service
|
|
73
|
-
console.error('ErrorBoundary caught an error:', error, errorInfo);
|
|
74
|
-
// TODO: Send to error monitoring service (e.g., Sentry)
|
|
75
|
-
// logErrorToService(error, errorInfo);
|
|
76
|
-
this.setState({
|
|
77
|
-
error,
|
|
78
|
-
errorInfo,
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
render() {
|
|
82
|
-
var _a, _b, _c;
|
|
83
|
-
if (this.state.hasError) {
|
|
84
|
-
if (this.props.fallback) {
|
|
85
|
-
return this.props.fallback;
|
|
86
|
-
}
|
|
87
|
-
const isDevelopment = typeof process !== 'undefined' && ((_a = process.env) === null || _a === void 0 ? void 0 : _a.NODE_ENV) === 'development';
|
|
88
|
-
return (<Container>
|
|
89
|
-
<ErrorTitle>Something went wrong</ErrorTitle>
|
|
90
|
-
<ErrorMessage message={((_b = this.state.error) === null || _b === void 0 ? void 0 : _b.message) || 'An unexpected error occurred'} onRetry={this.handleReset}/>
|
|
91
|
-
|
|
92
|
-
{isDevelopment && this.state.errorInfo && (<ErrorDetails>
|
|
93
|
-
<ErrorSummary>Error Details (Development Only)</ErrorSummary>
|
|
94
|
-
<ErrorCode>
|
|
95
|
-
{(_c = this.state.error) === null || _c === void 0 ? void 0 : _c.toString()}
|
|
96
|
-
{this.state.errorInfo.componentStack}
|
|
97
|
-
</ErrorCode>
|
|
98
|
-
</ErrorDetails>)}
|
|
99
|
-
</Container>);
|
|
100
|
-
}
|
|
101
|
-
return this.props.children;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import styled from 'styled-components';
|
|
3
|
-
export const ErrorMessage = ({ message, onRetry }) => {
|
|
4
|
-
return (<Container>
|
|
5
|
-
<Icon>⚠️</Icon>
|
|
6
|
-
<Message>{message}</Message>
|
|
7
|
-
{onRetry && <RetryButton onClick={onRetry}>Try Again</RetryButton>}
|
|
8
|
-
</Container>);
|
|
9
|
-
};
|
|
10
|
-
const Container = styled.div `
|
|
11
|
-
background-color: rgba(239, 68, 68, 0.1);
|
|
12
|
-
border: 1px solid var(--color-error, #dc3545);
|
|
13
|
-
border-radius: var(--border-radius-lg, 0.5rem);
|
|
14
|
-
padding: var(--spacing-xl, 1.5rem);
|
|
15
|
-
text-align: center;
|
|
16
|
-
`;
|
|
17
|
-
const Icon = styled.div `
|
|
18
|
-
font-size: 3rem;
|
|
19
|
-
margin-bottom: var(--spacing-md, 1rem);
|
|
20
|
-
`;
|
|
21
|
-
const Message = styled.p `
|
|
22
|
-
color: var(--color-error, #dc3545);
|
|
23
|
-
font-size: 1rem;
|
|
24
|
-
margin-bottom: var(--spacing-md, 1rem);
|
|
25
|
-
`;
|
|
26
|
-
const RetryButton = styled.button `
|
|
27
|
-
background-color: var(--color-error, #dc3545);
|
|
28
|
-
color: white;
|
|
29
|
-
padding: var(--spacing-sm, 0.5rem) var(--spacing-lg, 1.5rem);
|
|
30
|
-
border-radius: var(--border-radius-md, 0.375rem);
|
|
31
|
-
font-weight: 600;
|
|
32
|
-
transition: all 0.3s ease;
|
|
33
|
-
border: none;
|
|
34
|
-
cursor: pointer;
|
|
35
|
-
|
|
36
|
-
&:hover {
|
|
37
|
-
transform: translateY(-2px);
|
|
38
|
-
box-shadow: 0 4px 12px rgba(239, 68, 68, 0.3);
|
|
39
|
-
}
|
|
40
|
-
`;
|