@chainloyalty/react 1.1.0 → 1.2.0
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/Leaderboard.d.ts.map +1 -1
- package/dist/Leaderboard.js +22 -21
- package/dist/Leaderboard.js.map +1 -1
- package/dist/RewardsDashboard.d.ts.map +1 -1
- package/dist/RewardsDashboard.js +21 -14
- package/dist/RewardsDashboard.js.map +1 -1
- package/package.json +2 -2
- package/src/Leaderboard.tsx +56 -51
- package/src/RewardsDashboard.tsx +61 -48
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Leaderboard.d.ts","sourceRoot":"","sources":["../src/Leaderboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAiBnD,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;
|
|
1
|
+
{"version":3,"file":"Leaderboard.d.ts","sourceRoot":"","sources":["../src/Leaderboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAiBnD,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,OAAO,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,CAAC,EAAE;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC/B;AAiMD,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA6RlD,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
package/dist/Leaderboard.js
CHANGED
|
@@ -93,7 +93,7 @@ const getRankIcon = (rank) => {
|
|
|
93
93
|
return '🥉';
|
|
94
94
|
return null;
|
|
95
95
|
};
|
|
96
|
-
const LeaderboardRow = ({ entry, accentColor, isCurrentUser = false, onCopyAddress, }) => {
|
|
96
|
+
const LeaderboardRow = ({ entry, accentColor, theme, isCurrentUser = false, onCopyAddress, }) => {
|
|
97
97
|
const [copied, setCopied] = useState(false);
|
|
98
98
|
const handleCopy = () => {
|
|
99
99
|
copyToClipboard(entry.walletAddress);
|
|
@@ -105,12 +105,16 @@ const LeaderboardRow = ({ entry, accentColor, isCurrentUser = false, onCopyAddre
|
|
|
105
105
|
};
|
|
106
106
|
const rankIcon = getRankIcon(entry.rank);
|
|
107
107
|
const rankColor = getRankColor(entry.rank);
|
|
108
|
-
return (_jsxs("tr", { className:
|
|
108
|
+
return (_jsxs("tr", { className: "border-b transition-all hover:opacity-80", style: {
|
|
109
|
+
borderColor: theme.border,
|
|
110
|
+
backgroundColor: isCurrentUser ? 'rgba(0,0,0,0.1)' : 'transparent'
|
|
111
|
+
}, children: [_jsx("td", { className: "px-4 py-3 text-sm", children: _jsxs("div", { className: "flex items-center justify-center", children: [rankIcon && _jsx("span", { className: "text-lg mr-2", children: rankIcon }), _jsxs("span", { className: "font-bold", style: {
|
|
109
112
|
color: rankColor,
|
|
110
|
-
}, children: ["#", entry.rank] })] }) }), _jsx("td", { className: "px-4 py-3 text-sm", children: _jsxs("div", { className: "flex items-center gap-2 group", children: [_jsx("span", { className: "
|
|
111
|
-
backgroundColor:
|
|
112
|
-
borderColor:
|
|
113
|
-
|
|
113
|
+
}, children: ["#", entry.rank] })] }) }), _jsx("td", { className: "px-4 py-3 text-sm", children: _jsxs("div", { className: "flex items-center gap-2 group", children: [_jsx("span", { className: "font-mono", style: { color: theme.foreground }, children: shortenAddress(entry.walletAddress) }), _jsx("button", { onClick: handleCopy, className: "p-1.5 rounded-md transition-all opacity-0 group-hover:opacity-100", style: { color: theme.mutedForeground }, title: entry.walletAddress, children: copied ? (_jsx(CheckCircle, { className: "w-4 h-4", style: { color: '#3FB950' } })) : (_jsx(Copy, { className: "w-4 h-4" })) }), entry.displayName && (_jsxs("span", { className: "hidden sm:inline text-xs", style: { color: theme.mutedForeground }, children: ["(", entry.displayName, ")"] }))] }) }), _jsx("td", { className: "px-4 py-3 text-sm", children: _jsxs("div", { className: "text-right", children: [_jsx("p", { className: "font-bold", style: { color: accentColor }, children: entry.points.toLocaleString() }), _jsx("p", { className: "text-xs hidden sm:block", style: { color: theme.mutedForeground }, children: "points" })] }) }), _jsx("td", { className: "px-4 py-3 text-sm", children: _jsxs("div", { className: "inline-flex items-center gap-1 px-2 py-1 rounded-lg", style: {
|
|
114
|
+
backgroundColor: theme.muted,
|
|
115
|
+
borderColor: theme.border,
|
|
116
|
+
border: '1px solid',
|
|
117
|
+
}, children: [_jsx(Award, { className: "w-4 h-4", style: { color: accentColor } }), _jsx("span", { className: "font-semibold", style: { color: theme.foreground }, children: entry.badgesCount })] }) })] }));
|
|
114
118
|
};
|
|
115
119
|
// ============================================================================
|
|
116
120
|
// Main Leaderboard Component
|
|
@@ -126,7 +130,6 @@ export const Leaderboard = ({ walletAddress = null, customColors = {}, itemsPerP
|
|
|
126
130
|
// Override with customColors if provided (backward compatibility)
|
|
127
131
|
const accentColor = customColors.accent1 || theme.accent;
|
|
128
132
|
const accentColor2 = customColors.accent2 || theme.primary;
|
|
129
|
-
const backgroundColor = customColors.background || theme.card;
|
|
130
133
|
// Fetch data when timeframe changes
|
|
131
134
|
useEffect(() => {
|
|
132
135
|
setLoading(true);
|
|
@@ -156,35 +159,33 @@ export const Leaderboard = ({ walletAddress = null, customColors = {}, itemsPerP
|
|
|
156
159
|
const currentUserRank = walletAddress
|
|
157
160
|
? data.find((entry) => entry.walletAddress.toLowerCase() === walletAddress.toLowerCase())
|
|
158
161
|
: null;
|
|
159
|
-
return (_jsxs("div", { className: "rounded-lg border
|
|
162
|
+
return (_jsxs("div", { className: "rounded-lg border overflow-hidden", style: { backgroundColor: theme.card, borderColor: theme.border }, children: [_jsxs("div", { className: "p-6", style: { borderBottom: `1px solid ${theme.border}` }, children: [_jsxs("div", { className: "flex items-center justify-between mb-4", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Trophy, { className: "w-6 h-6", style: { color: accentColor2 } }), _jsx("h2", { className: "text-2xl font-bold", style: { color: theme.foreground }, children: "Leaderboard" })] }), _jsx("button", { onClick: handleRefresh, disabled: loading, className: "p-2 rounded-lg transition-all disabled:opacity-50", style: { color: theme.mutedForeground }, title: "Refresh leaderboard", children: _jsx(RefreshCw, { className: `w-5 h-5 ${loading ? 'animate-spin' : ''}` }) })] }), _jsxs("div", { className: "grid grid-cols-2 md:grid-cols-3 gap-3 mb-4", children: [_jsxs("div", { className: "p-3 rounded-lg border", style: { backgroundColor: theme.muted, borderColor: theme.border }, children: [_jsx("p", { className: "text-xs", style: { color: theme.mutedForeground }, children: "Total Users" }), _jsx("p", { className: "text-2xl font-bold", style: { color: theme.foreground }, children: data.length.toLocaleString() })] }), currentUserRank && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "p-3 rounded-lg border", style: {
|
|
160
163
|
borderColor: accentColor,
|
|
161
|
-
backgroundColor:
|
|
162
|
-
}, children: [_jsx("p", { className: "text-xs
|
|
164
|
+
backgroundColor: theme.card,
|
|
165
|
+
}, children: [_jsx("p", { className: "text-xs", style: { color: theme.mutedForeground }, children: "Your Rank" }), _jsxs("p", { className: "text-2xl font-bold", style: { color: accentColor }, children: ["#", currentUserRank.rank] })] }), _jsxs("div", { className: "p-3 rounded-lg border", style: {
|
|
163
166
|
borderColor: accentColor2,
|
|
164
|
-
backgroundColor:
|
|
165
|
-
}, children: [_jsx("p", { className: "text-xs
|
|
166
|
-
? '
|
|
167
|
-
: '
|
|
167
|
+
backgroundColor: theme.card,
|
|
168
|
+
}, children: [_jsx("p", { className: "text-xs", style: { color: theme.mutedForeground }, children: "Your Points" }), _jsx("p", { className: "text-2xl font-bold", style: { color: accentColor2 }, children: currentUserRank.points.toLocaleString() })] })] }))] }), !hideTimeframeFilter && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Calendar, { className: "w-4 h-4", style: { color: theme.mutedForeground } }), _jsx("div", { className: "flex gap-2", children: ['alltime', 'month'].map((tf) => (_jsx("button", { onClick: () => setTimeframe(tf), className: `px-3 py-1.5 rounded-lg text-sm font-medium transition-all ${timeframe === tf
|
|
169
|
+
? ''
|
|
170
|
+
: ''}`, style: timeframe === tf
|
|
168
171
|
? {
|
|
169
172
|
backgroundColor: accentColor,
|
|
170
173
|
color: 'white',
|
|
171
174
|
}
|
|
172
|
-
: {}, children: tf === 'alltime' ? 'All Time' : 'This Month' }, tf))) })] }))] }), _jsxs("div", { style: { backgroundColor:
|
|
175
|
+
: { color: theme.mutedForeground }, children: tf === 'alltime' ? 'All Time' : 'This Month' }, tf))) })] }))] }), _jsxs("div", { style: { backgroundColor: theme.background }, children: [loading && !data.length && (_jsx("div", { className: "p-6 space-y-3", children: [...Array(5)].map((_, i) => (_jsx("div", { className: "h-12 rounded-lg animate-pulse", style: { backgroundColor: theme.muted } }, i))) })), error && !data.length && (_jsxs("div", { className: "p-6 text-center", children: [_jsx("p", { className: "mb-4", style: { color: '#ef4444' }, children: error }), _jsx("button", { onClick: handleRefresh, className: "px-4 py-2 rounded-lg text-sm transition-all text-white", style: { backgroundColor: accentColor }, children: "Try Again" })] })), !loading && !error && data.length === 0 && (_jsxs("div", { className: "p-12 text-center", children: [_jsx(TrendingUp, { className: "w-12 h-12 mx-auto mb-4", style: { color: theme.mutedForeground } }), _jsx("h3", { className: "text-lg font-semibold mb-2", style: { color: theme.foreground }, children: "No Leaderboard Data" }), _jsx("p", { style: { color: theme.mutedForeground }, children: "The leaderboard will be populated as users start earning points." })] })), data.length > 0 && (_jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full", children: [_jsx("thead", { children: _jsxs("tr", { className: "border-b", style: { borderColor: theme.border, backgroundColor: theme.muted }, children: [_jsx("th", { className: "px-4 py-3 text-left text-xs font-semibold uppercase", style: { color: theme.mutedForeground }, children: "Rank" }), _jsx("th", { className: "px-4 py-3 text-left text-xs font-semibold uppercase", style: { color: theme.mutedForeground }, children: "Wallet" }), _jsx("th", { className: "px-4 py-3 text-right text-xs font-semibold uppercase", style: { color: theme.mutedForeground }, children: "Points" }), _jsx("th", { className: "px-4 py-3 text-center text-xs font-semibold uppercase", style: { color: theme.mutedForeground }, children: "Badges" })] }) }), _jsx("tbody", { children: displayedData.map((entry) => (_jsx(LeaderboardRow, { entry: entry, accentColor: accentColor, theme: theme, isCurrentUser: walletAddress
|
|
173
176
|
? entry.walletAddress.toLowerCase() === walletAddress.toLowerCase()
|
|
174
177
|
: false, onCopyAddress: () => {
|
|
175
178
|
// Toast notification would go here
|
|
176
179
|
console.log('Copied:', entry.walletAddress);
|
|
177
|
-
} }, entry.rank))) })] }) }))] }), !compactMode && data.length > itemsPerPage && (_jsxs("div", { className: "px-6 py-4 border-t
|
|
180
|
+
} }, entry.rank))) })] }) }))] }), !compactMode && data.length > itemsPerPage && (_jsxs("div", { className: "px-6 py-4 border-t flex items-center justify-between", style: { borderColor: theme.border }, children: [_jsxs("div", { className: "text-sm", style: { color: theme.mutedForeground }, children: ["Showing ", startIndex + 1, " to ", Math.min(endIndex, data.length), " of ", data.length] }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { onClick: () => setCurrentPage((p) => Math.max(1, p - 1)), disabled: currentPage === 1, className: "px-3 py-1.5 rounded-lg text-sm font-medium transition-all disabled:opacity-50 disabled:cursor-not-allowed", style: { color: theme.mutedForeground }, children: "\u2190 Previous" }), _jsx("div", { className: "flex items-center gap-1", children: [...Array(Math.min(5, totalPages))].map((_, i) => {
|
|
178
181
|
const pageNum = i + 1;
|
|
179
|
-
return (_jsx("button", { onClick: () => setCurrentPage(pageNum), className:
|
|
180
|
-
? 'text-white'
|
|
181
|
-
: 'text-gray-400 hover:text-white hover:bg-gray-700'}`, style: currentPage === pageNum
|
|
182
|
+
return (_jsx("button", { onClick: () => setCurrentPage(pageNum), className: "px-3 py-1.5 rounded-lg text-sm font-medium transition-all", style: currentPage === pageNum
|
|
182
183
|
? {
|
|
183
184
|
backgroundColor: accentColor,
|
|
184
185
|
color: 'white',
|
|
185
186
|
}
|
|
186
|
-
: {}, children: pageNum }, pageNum));
|
|
187
|
-
}) }), _jsx("button", { onClick: () => setCurrentPage((p) => Math.min(totalPages, p + 1)), disabled: currentPage === totalPages, className: "px-3 py-1.5 rounded-lg text-sm font-medium
|
|
187
|
+
: { color: theme.mutedForeground }, children: pageNum }, pageNum));
|
|
188
|
+
}) }), _jsx("button", { onClick: () => setCurrentPage((p) => Math.min(totalPages, p + 1)), disabled: currentPage === totalPages, className: "px-3 py-1.5 rounded-lg text-sm font-medium transition-all disabled:opacity-50 disabled:cursor-not-allowed", style: { color: theme.mutedForeground }, children: "Next \u2192" })] })] })), _jsx("div", { className: "px-6 py-3 border-t flex items-center justify-end text-xs", style: { borderColor: theme.border, color: theme.mutedForeground }, children: _jsxs("span", { className: "flex items-center gap-1", children: [_jsx(ExternalLink, { className: "w-3 h-3" }), "@chainloyalty/react"] }) })] }));
|
|
188
189
|
};
|
|
189
190
|
export default Leaderboard;
|
|
190
191
|
//# sourceMappingURL=Leaderboard.js.map
|
package/dist/Leaderboard.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Leaderboard.js","sourceRoot":"","sources":["../src/Leaderboard.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Leaderboard.js","sourceRoot":"","sources":["../src/Leaderboard.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RewardsDashboard.d.ts","sourceRoot":"","sources":["../src/RewardsDashboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAkBnD,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CAClD;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,eAAe,CAAC;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"RewardsDashboard.d.ts","sourceRoot":"","sources":["../src/RewardsDashboard.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAA8B,MAAM,OAAO,CAAC;AAkBnD,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;CAClD;AAED,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,UAAU,GAAG,UAAU,GAAG,WAAW,GAAG,cAAc,GAAG,eAAe,CAAC;IAC/E,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,qBAAqB;IACpC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,kBAAkB,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE;QACb,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,aAAa,EAAE,iBAAiB,EAAE,CAAC;IACnC,IAAI,EAAE,QAAQ,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AA4SD,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC,EAAE,CAAC,qBAAqB,CAwO5D,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
|
package/dist/RewardsDashboard.js
CHANGED
|
@@ -168,22 +168,28 @@ const getRarityColor = (rarity) => {
|
|
|
168
168
|
};
|
|
169
169
|
return rarityColors[rarity] || '#A0AEC0';
|
|
170
170
|
};
|
|
171
|
-
const RewardHistory = ({ items, accentColor }) => {
|
|
172
|
-
return (_jsx("div", { className: "space-y-3", children: items.map((item) => (_jsxs("div", { className: "flex items-start justify-between p-3 rounded-lg border
|
|
171
|
+
const RewardHistory = ({ items, accentColor, theme }) => {
|
|
172
|
+
return (_jsx("div", { className: "space-y-3", children: items.map((item) => (_jsxs("div", { className: "flex items-start justify-between p-3 rounded-lg border transition-colors hover:opacity-80", style: {
|
|
173
|
+
borderColor: theme.border,
|
|
174
|
+
borderLeftColor: accentColor,
|
|
175
|
+
borderLeftWidth: '3px',
|
|
176
|
+
backgroundColor: 'transparent',
|
|
177
|
+
}, children: [_jsxs("div", { className: "flex-1", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-sm font-semibold", style: { color: theme.foreground }, children: item.title }), _jsx("span", { className: "text-xs px-2 py-0.5 rounded-full", style: { backgroundColor: theme.muted, color: theme.mutedForeground }, children: item.type })] }), item.description && (_jsx("p", { className: "text-xs mt-1", style: { color: theme.mutedForeground }, children: item.description })), _jsx("p", { className: "text-xs mt-1", style: { color: theme.mutedForeground }, children: formatDate(item.timestamp) })] }), _jsxs("div", { className: "ml-4 text-right", children: [_jsxs("p", { className: "text-lg font-bold", style: { color: accentColor }, children: ["+", item.points] }), _jsx("p", { className: "text-xs", style: { color: theme.mutedForeground }, children: "points" })] })] }, item.id))) }));
|
|
173
178
|
};
|
|
174
|
-
const BadgeGrid = ({ badges, compactMode = false }) => {
|
|
179
|
+
const BadgeGrid = ({ badges, theme, compactMode = false }) => {
|
|
175
180
|
const displayBadges = compactMode ? badges.slice(0, 4) : badges;
|
|
176
181
|
return (_jsx("div", { className: `grid gap-3 ${compactMode ? 'grid-cols-2 sm:grid-cols-3 md:grid-cols-4' : 'grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5'}`, children: displayBadges.map((badge) => (_jsxs("div", { className: "group relative p-3 rounded-lg border transition-all hover:scale-105 cursor-pointer", style: {
|
|
177
182
|
borderColor: getRarityColor(badge.rarity),
|
|
178
|
-
backgroundColor:
|
|
179
|
-
|
|
183
|
+
backgroundColor: theme.card,
|
|
184
|
+
opacity: 0.9,
|
|
185
|
+
}, title: `${badge.name} - ${badge.description}`, children: [_jsx("div", { className: "text-3xl mb-1 text-center", children: badge.icon }), _jsx("p", { className: "text-xs font-semibold text-center truncate", style: { color: theme.foreground }, children: badge.name }), _jsx("p", { className: "text-xs text-center mt-0.5", style: { color: theme.mutedForeground }, children: new Date(badge.earnedAt).toLocaleDateString() }), _jsx("div", { className: "hidden group-hover:block absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 p-2 border rounded-lg text-xs w-32 text-center whitespace-normal z-10", style: { backgroundColor: theme.muted, borderColor: theme.border, color: theme.mutedForeground }, children: badge.description })] }, badge.id))) }));
|
|
180
186
|
};
|
|
181
|
-
const TierCard = ({ tier, accentColor }) => {
|
|
187
|
+
const TierCard = ({ tier, accentColor, theme }) => {
|
|
182
188
|
const progressPercent = (tier.currentProgress / tier.nextMilestone) * 100;
|
|
183
189
|
return (_jsxs("div", { className: "p-4 rounded-lg border", style: {
|
|
184
190
|
borderColor: accentColor,
|
|
185
|
-
backgroundColor:
|
|
186
|
-
}, children: [_jsx("div", { className: "flex items-start justify-between mb-3", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-3xl", children: tier.icon }), _jsxs("div", { children: [_jsx("p", { className: "text-sm font-semibold
|
|
191
|
+
backgroundColor: theme.card,
|
|
192
|
+
}, children: [_jsx("div", { className: "flex items-start justify-between mb-3", children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("span", { className: "text-3xl", children: tier.icon }), _jsxs("div", { children: [_jsx("p", { className: "text-sm font-semibold", style: { color: theme.foreground }, children: tier.name }), _jsxs("p", { className: "text-xs", style: { color: theme.mutedForeground }, children: ["Level ", tier.level] })] })] }) }), _jsxs("div", { className: "space-y-2", children: [_jsxs("div", { className: "flex justify-between text-xs", style: { color: theme.mutedForeground }, children: [_jsxs("span", { children: [tier.currentProgress.toLocaleString(), " points"] }), _jsxs("span", { children: [tier.nextMilestone.toLocaleString(), " goal"] })] }), _jsx("div", { className: "w-full rounded-full h-2 overflow-hidden", style: { backgroundColor: theme.muted }, children: _jsx("div", { className: "h-full rounded-full transition-all duration-500", style: {
|
|
187
193
|
width: `${Math.min(progressPercent, 100)}%`,
|
|
188
194
|
backgroundColor: accentColor,
|
|
189
195
|
} }) })] })] }));
|
|
@@ -237,24 +243,25 @@ export const RewardsDashboard = ({ walletAddress = null, onConnectWallet, custom
|
|
|
237
243
|
};
|
|
238
244
|
// Disconnected state
|
|
239
245
|
if (!walletAddress) {
|
|
240
|
-
return (_jsx("div", { className: "p-6 rounded-lg border
|
|
246
|
+
return (_jsx("div", { className: "p-6 rounded-lg border max-w-2xl", style: { backgroundColor: theme.card, borderColor: theme.border }, children: _jsxs("div", { className: "text-center", children: [_jsx(Lock, { className: "w-12 h-12 mx-auto mb-4", style: { color: theme.mutedForeground } }), _jsx("h2", { className: "text-xl font-bold mb-2", style: { color: theme.foreground }, children: "Connect Your Wallet" }), _jsx("p", { className: "mb-6", style: { color: theme.mutedForeground }, children: "Connect your wallet to view your rewards, badges, and track your achievements." }), onConnectWallet && (_jsxs("button", { onClick: onConnectWallet, className: "inline-flex items-center gap-2 px-6 py-2 rounded-lg font-semibold transition-all hover:opacity-90", style: {
|
|
241
247
|
backgroundColor: accentColor,
|
|
248
|
+
color: '#fff',
|
|
242
249
|
}, children: [_jsx(Wallet, { className: "w-5 h-5" }), "Connect Wallet"] }))] }) }));
|
|
243
250
|
}
|
|
244
251
|
// Loading state
|
|
245
252
|
if (loading && !data) {
|
|
246
|
-
return (_jsx("div", { className: "p-6 rounded-lg border
|
|
253
|
+
return (_jsx("div", { className: "p-6 rounded-lg border max-w-2xl", style: { backgroundColor: theme.card, borderColor: theme.border }, children: _jsxs("div", { className: "space-y-4", children: [_jsx("div", { className: "h-20 rounded-lg animate-pulse", style: { backgroundColor: theme.muted } }), _jsx("div", { className: "h-40 rounded-lg animate-pulse", style: { backgroundColor: theme.muted } }), _jsx("div", { className: "h-32 rounded-lg animate-pulse", style: { backgroundColor: theme.muted } })] }) }));
|
|
247
254
|
}
|
|
248
255
|
// Error state
|
|
249
256
|
if (error && !data) {
|
|
250
|
-
return (_jsxs("div", { className: "p-6 rounded-lg border
|
|
257
|
+
return (_jsxs("div", { className: "p-6 rounded-lg border max-w-2xl", style: { backgroundColor: theme.card, borderColor: '#dc2626' }, children: [_jsxs("p", { style: { color: '#ef4444' }, children: ["Failed to load rewards: ", error] }), _jsx("button", { onClick: handleRefresh, className: "mt-4 px-4 py-2 rounded-lg text-white text-sm transition-all", style: { backgroundColor: accentColor }, children: "Try Again" })] }));
|
|
251
258
|
}
|
|
252
259
|
if (!data)
|
|
253
260
|
return null;
|
|
254
|
-
return (_jsxs("div", { className: "rounded-lg border border-gray-700 overflow-hidden", style: { backgroundColor }, children: [_jsxs("div", { className: "p-6 border-b border-gray-700", children: [_jsxs("div", { className: "flex items-center justify-between mb-4", children: [_jsx("h2", { className: "text-2xl font-bold
|
|
261
|
+
return (_jsxs("div", { className: "rounded-lg border border-gray-700 overflow-hidden", style: { backgroundColor }, children: [_jsxs("div", { className: "p-6 border-b border-gray-700", children: [_jsxs("div", { className: "flex items-center justify-between mb-4", children: [_jsx("h2", { className: "text-2xl font-bold", style: { color: theme.foreground }, children: "Rewards Dashboard" }), _jsx("button", { onClick: handleRefresh, disabled: loading, className: "p-2 rounded-lg transition-all disabled:opacity-50", style: { color: theme.mutedForeground }, children: _jsx(RefreshCw, { className: `w-5 h-5 ${loading ? 'animate-spin' : ''}` }) })] }), _jsxs("div", { className: "flex items-center justify-between p-3 rounded-lg border", style: { backgroundColor: theme.muted, borderColor: theme.border }, children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Wallet, { className: "w-5 h-5", style: { color: accentColor } }), _jsxs("div", { children: [_jsx("p", { className: "text-xs", style: { color: theme.mutedForeground }, children: "Connected Wallet" }), _jsx("p", { className: "text-sm font-mono font-semibold", style: { color: theme.foreground }, children: shortenAddress(walletAddress) })] })] }), _jsx("button", { onClick: handleCopyAddress, className: "p-2 rounded-lg transition-all", style: { color: theme.mutedForeground }, title: walletAddress, children: copied ? _jsx(CheckCircle, { className: "w-5 h-5", style: { color: accentColor2 } }) : _jsx(Copy, { className: "w-5 h-5" }) })] })] }), _jsxs("div", { className: `p-6 space-y-6 ${compactMode ? 'max-w-3xl' : ''}`, style: { backgroundColor: theme.background }, children: [_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4", children: [_jsxs("div", { className: "p-6 rounded-lg border text-center", style: {
|
|
255
262
|
borderColor: accentColor,
|
|
256
|
-
backgroundColor:
|
|
257
|
-
}, children: [_jsx("p", { className: "text-sm
|
|
263
|
+
backgroundColor: theme.card,
|
|
264
|
+
}, children: [_jsx("p", { className: "text-sm mb-2", style: { color: theme.mutedForeground }, children: "Total Points" }), _jsx("p", { className: "text-4xl font-bold", style: { color: accentColor }, children: data.totalPoints.toLocaleString() }), _jsxs("div", { className: "flex items-center justify-center gap-1 mt-2 text-xs", style: { color: theme.mutedForeground }, children: [_jsx(TrendingUp, { className: "w-4 h-4" }), _jsx("span", { children: "Keep earning rewards" })] })] }), !hideTier && (_jsx(TierCard, { tier: data.tier, accentColor: accentColor2, theme: theme }))] }), !hideBadges && data.badges.length > 0 && (_jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2 mb-4", children: [_jsx(Award, { className: "w-5 h-5", style: { color: accentColor } }), _jsxs("h3", { className: "text-lg font-semibold", style: { color: theme.foreground }, children: ["Badges (", data.badges.length, ")"] })] }), _jsx(BadgeGrid, { badges: data.badges, theme: theme, compactMode: compactMode })] })), !hideHistory && data.rewardHistory.length > 0 && (_jsxs("div", { children: [_jsxs("div", { className: "flex items-center gap-2 mb-4", children: [_jsx(Zap, { className: "w-5 h-5", style: { color: accentColor2 } }), _jsx("h3", { className: "text-lg font-semibold", style: { color: theme.foreground }, children: "Recent Rewards" })] }), _jsx(RewardHistory, { items: compactMode ? data.rewardHistory.slice(0, 3) : data.rewardHistory, accentColor: accentColor, theme: theme })] }))] }), _jsxs("div", { className: "px-6 py-3 border-t flex items-center justify-between text-xs", style: { borderColor: theme.border, color: theme.mutedForeground }, children: [_jsxs("span", { children: ["Last updated: ", formatDate(data.lastUpdated)] }), _jsxs("span", { className: "flex items-center gap-1", children: [_jsx(ExternalLink, { className: "w-3 h-3" }), "@chainloyalty/react"] })] })] }));
|
|
258
265
|
};
|
|
259
266
|
export default RewardsDashboard;
|
|
260
267
|
//# sourceMappingURL=RewardsDashboard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RewardsDashboard.js","sourceRoot":"","sources":["../src/RewardsDashboard.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RewardsDashboard.js","sourceRoot":"","sources":["../src/RewardsDashboard.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chainloyalty/react",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "ChainLoyalty React Components - Event tracking, rewards dashboard, and leaderboard with automatic theme detection",
|
|
5
|
+
"description": "ChainLoyalty React Components - Event tracking, rewards dashboard, and leaderboard with automatic light/dark theme detection",
|
|
6
6
|
"main": "dist/index.js",
|
|
7
7
|
"types": "dist/index.d.ts",
|
|
8
8
|
"scripts": {
|
package/src/Leaderboard.tsx
CHANGED
|
@@ -143,6 +143,7 @@ const getRankIcon = (rank: number): React.ReactNode => {
|
|
|
143
143
|
interface LeaderboardRowProps {
|
|
144
144
|
entry: LeaderboardEntry;
|
|
145
145
|
accentColor: string;
|
|
146
|
+
theme: ReturnType<typeof getThemeColors>;
|
|
146
147
|
isCurrentUser?: boolean;
|
|
147
148
|
onCopyAddress?: (address: string) => void;
|
|
148
149
|
}
|
|
@@ -150,6 +151,7 @@ interface LeaderboardRowProps {
|
|
|
150
151
|
const LeaderboardRow: React.FC<LeaderboardRowProps> = ({
|
|
151
152
|
entry,
|
|
152
153
|
accentColor,
|
|
154
|
+
theme,
|
|
153
155
|
isCurrentUser = false,
|
|
154
156
|
onCopyAddress,
|
|
155
157
|
}) => {
|
|
@@ -169,9 +171,11 @@ const LeaderboardRow: React.FC<LeaderboardRowProps> = ({
|
|
|
169
171
|
|
|
170
172
|
return (
|
|
171
173
|
<tr
|
|
172
|
-
className=
|
|
173
|
-
|
|
174
|
-
|
|
174
|
+
className="border-b transition-all hover:opacity-80"
|
|
175
|
+
style={{
|
|
176
|
+
borderColor: theme.border,
|
|
177
|
+
backgroundColor: isCurrentUser ? 'rgba(0,0,0,0.1)' : 'transparent'
|
|
178
|
+
}}
|
|
175
179
|
>
|
|
176
180
|
{/* Rank */}
|
|
177
181
|
<td className="px-4 py-3 text-sm">
|
|
@@ -191,12 +195,13 @@ const LeaderboardRow: React.FC<LeaderboardRowProps> = ({
|
|
|
191
195
|
{/* Wallet Address */}
|
|
192
196
|
<td className="px-4 py-3 text-sm">
|
|
193
197
|
<div className="flex items-center gap-2 group">
|
|
194
|
-
<span className="
|
|
198
|
+
<span className="font-mono" style={{ color: theme.foreground }}>
|
|
195
199
|
{shortenAddress(entry.walletAddress)}
|
|
196
200
|
</span>
|
|
197
201
|
<button
|
|
198
202
|
onClick={handleCopy}
|
|
199
|
-
className="p-1.5 rounded-md
|
|
203
|
+
className="p-1.5 rounded-md transition-all opacity-0 group-hover:opacity-100"
|
|
204
|
+
style={{ color: theme.mutedForeground }}
|
|
200
205
|
title={entry.walletAddress}
|
|
201
206
|
>
|
|
202
207
|
{copied ? (
|
|
@@ -206,7 +211,7 @@ const LeaderboardRow: React.FC<LeaderboardRowProps> = ({
|
|
|
206
211
|
)}
|
|
207
212
|
</button>
|
|
208
213
|
{entry.displayName && (
|
|
209
|
-
<span className="hidden sm:inline text-xs
|
|
214
|
+
<span className="hidden sm:inline text-xs" style={{ color: theme.mutedForeground }}>({entry.displayName})</span>
|
|
210
215
|
)}
|
|
211
216
|
</div>
|
|
212
217
|
</td>
|
|
@@ -217,7 +222,7 @@ const LeaderboardRow: React.FC<LeaderboardRowProps> = ({
|
|
|
217
222
|
<p className="font-bold" style={{ color: accentColor }}>
|
|
218
223
|
{entry.points.toLocaleString()}
|
|
219
224
|
</p>
|
|
220
|
-
<p className="text-xs
|
|
225
|
+
<p className="text-xs hidden sm:block" style={{ color: theme.mutedForeground }}>points</p>
|
|
221
226
|
</div>
|
|
222
227
|
</td>
|
|
223
228
|
|
|
@@ -226,12 +231,13 @@ const LeaderboardRow: React.FC<LeaderboardRowProps> = ({
|
|
|
226
231
|
<div
|
|
227
232
|
className="inline-flex items-center gap-1 px-2 py-1 rounded-lg"
|
|
228
233
|
style={{
|
|
229
|
-
backgroundColor:
|
|
230
|
-
borderColor:
|
|
234
|
+
backgroundColor: theme.muted,
|
|
235
|
+
borderColor: theme.border,
|
|
236
|
+
border: '1px solid',
|
|
231
237
|
}}
|
|
232
238
|
>
|
|
233
239
|
<Award className="w-4 h-4" style={{ color: accentColor }} />
|
|
234
|
-
<span className="font-semibold
|
|
240
|
+
<span className="font-semibold" style={{ color: theme.foreground }}>{entry.badgesCount}</span>
|
|
235
241
|
</div>
|
|
236
242
|
</td>
|
|
237
243
|
</tr>
|
|
@@ -261,7 +267,6 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
261
267
|
// Override with customColors if provided (backward compatibility)
|
|
262
268
|
const accentColor = customColors.accent1 || theme.accent;
|
|
263
269
|
const accentColor2 = customColors.accent2 || theme.primary;
|
|
264
|
-
const backgroundColor = customColors.background || theme.card;
|
|
265
270
|
|
|
266
271
|
// Fetch data when timeframe changes
|
|
267
272
|
useEffect(() => {
|
|
@@ -299,20 +304,21 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
299
304
|
|
|
300
305
|
return (
|
|
301
306
|
<div
|
|
302
|
-
className="rounded-lg border
|
|
303
|
-
style={{ backgroundColor }}
|
|
307
|
+
className="rounded-lg border overflow-hidden"
|
|
308
|
+
style={{ backgroundColor: theme.card, borderColor: theme.border }}
|
|
304
309
|
>
|
|
305
310
|
{/* Header */}
|
|
306
|
-
<div className="p-6 border
|
|
311
|
+
<div className="p-6" style={{ borderBottom: `1px solid ${theme.border}` }}>
|
|
307
312
|
<div className="flex items-center justify-between mb-4">
|
|
308
313
|
<div className="flex items-center gap-3">
|
|
309
314
|
<Trophy className="w-6 h-6" style={{ color: accentColor2 }} />
|
|
310
|
-
<h2 className="text-2xl font-bold
|
|
315
|
+
<h2 className="text-2xl font-bold" style={{ color: theme.foreground }}>Leaderboard</h2>
|
|
311
316
|
</div>
|
|
312
317
|
<button
|
|
313
318
|
onClick={handleRefresh}
|
|
314
319
|
disabled={loading}
|
|
315
|
-
className="p-2 rounded-lg
|
|
320
|
+
className="p-2 rounded-lg transition-all disabled:opacity-50"
|
|
321
|
+
style={{ color: theme.mutedForeground }}
|
|
316
322
|
title="Refresh leaderboard"
|
|
317
323
|
>
|
|
318
324
|
<RefreshCw className={`w-5 h-5 ${loading ? 'animate-spin' : ''}`} />
|
|
@@ -322,11 +328,11 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
322
328
|
{/* Stats */}
|
|
323
329
|
<div className="grid grid-cols-2 md:grid-cols-3 gap-3 mb-4">
|
|
324
330
|
<div
|
|
325
|
-
className="p-3 rounded-lg border
|
|
326
|
-
style={{ backgroundColor:
|
|
331
|
+
className="p-3 rounded-lg border"
|
|
332
|
+
style={{ backgroundColor: theme.muted, borderColor: theme.border }}
|
|
327
333
|
>
|
|
328
|
-
<p className="text-xs
|
|
329
|
-
<p className="text-2xl font-bold
|
|
334
|
+
<p className="text-xs" style={{ color: theme.mutedForeground }}>Total Users</p>
|
|
335
|
+
<p className="text-2xl font-bold" style={{ color: theme.foreground }}>{data.length.toLocaleString()}</p>
|
|
330
336
|
</div>
|
|
331
337
|
|
|
332
338
|
{currentUserRank && (
|
|
@@ -335,10 +341,10 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
335
341
|
className="p-3 rounded-lg border"
|
|
336
342
|
style={{
|
|
337
343
|
borderColor: accentColor,
|
|
338
|
-
backgroundColor:
|
|
344
|
+
backgroundColor: theme.card,
|
|
339
345
|
}}
|
|
340
346
|
>
|
|
341
|
-
<p className="text-xs
|
|
347
|
+
<p className="text-xs" style={{ color: theme.mutedForeground }}>Your Rank</p>
|
|
342
348
|
<p className="text-2xl font-bold" style={{ color: accentColor }}>
|
|
343
349
|
#{currentUserRank.rank}
|
|
344
350
|
</p>
|
|
@@ -348,10 +354,10 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
348
354
|
className="p-3 rounded-lg border"
|
|
349
355
|
style={{
|
|
350
356
|
borderColor: accentColor2,
|
|
351
|
-
backgroundColor:
|
|
357
|
+
backgroundColor: theme.card,
|
|
352
358
|
}}
|
|
353
359
|
>
|
|
354
|
-
<p className="text-xs
|
|
360
|
+
<p className="text-xs" style={{ color: theme.mutedForeground }}>Your Points</p>
|
|
355
361
|
<p className="text-2xl font-bold" style={{ color: accentColor2 }}>
|
|
356
362
|
{currentUserRank.points.toLocaleString()}
|
|
357
363
|
</p>
|
|
@@ -363,7 +369,7 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
363
369
|
{/* Filters */}
|
|
364
370
|
{!hideTimeframeFilter && (
|
|
365
371
|
<div className="flex items-center gap-2">
|
|
366
|
-
<Calendar className="w-4 h-4
|
|
372
|
+
<Calendar className="w-4 h-4" style={{ color: theme.mutedForeground }} />
|
|
367
373
|
<div className="flex gap-2">
|
|
368
374
|
{(['alltime', 'month'] as const).map((tf) => (
|
|
369
375
|
<button
|
|
@@ -371,8 +377,8 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
371
377
|
onClick={() => setTimeframe(tf)}
|
|
372
378
|
className={`px-3 py-1.5 rounded-lg text-sm font-medium transition-all ${
|
|
373
379
|
timeframe === tf
|
|
374
|
-
? '
|
|
375
|
-
: '
|
|
380
|
+
? ''
|
|
381
|
+
: ''
|
|
376
382
|
}`}
|
|
377
383
|
style={
|
|
378
384
|
timeframe === tf
|
|
@@ -380,7 +386,7 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
380
386
|
backgroundColor: accentColor,
|
|
381
387
|
color: 'white',
|
|
382
388
|
}
|
|
383
|
-
: {}
|
|
389
|
+
: { color: theme.mutedForeground }
|
|
384
390
|
}
|
|
385
391
|
>
|
|
386
392
|
{tf === 'alltime' ? 'All Time' : 'This Month'}
|
|
@@ -392,12 +398,12 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
392
398
|
</div>
|
|
393
399
|
|
|
394
400
|
{/* Content */}
|
|
395
|
-
<div style={{ backgroundColor:
|
|
401
|
+
<div style={{ backgroundColor: theme.background }}>
|
|
396
402
|
{/* Loading State */}
|
|
397
403
|
{loading && !data.length && (
|
|
398
404
|
<div className="p-6 space-y-3">
|
|
399
405
|
{[...Array(5)].map((_, i) => (
|
|
400
|
-
<div key={i} className="h-12
|
|
406
|
+
<div key={i} className="h-12 rounded-lg animate-pulse" style={{ backgroundColor: theme.muted }} />
|
|
401
407
|
))}
|
|
402
408
|
</div>
|
|
403
409
|
)}
|
|
@@ -405,10 +411,10 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
405
411
|
{/* Error State */}
|
|
406
412
|
{error && !data.length && (
|
|
407
413
|
<div className="p-6 text-center">
|
|
408
|
-
<p className="
|
|
414
|
+
<p className="mb-4" style={{ color: '#ef4444' }}>{error}</p>
|
|
409
415
|
<button
|
|
410
416
|
onClick={handleRefresh}
|
|
411
|
-
className="px-4 py-2 rounded-lg text-
|
|
417
|
+
className="px-4 py-2 rounded-lg text-sm transition-all text-white"
|
|
412
418
|
style={{ backgroundColor: accentColor }}
|
|
413
419
|
>
|
|
414
420
|
Try Again
|
|
@@ -419,9 +425,9 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
419
425
|
{/* Empty State */}
|
|
420
426
|
{!loading && !error && data.length === 0 && (
|
|
421
427
|
<div className="p-12 text-center">
|
|
422
|
-
<TrendingUp className="w-12 h-12 mx-auto mb-4
|
|
423
|
-
<h3 className="text-lg font-semibold
|
|
424
|
-
<p
|
|
428
|
+
<TrendingUp className="w-12 h-12 mx-auto mb-4" style={{ color: theme.mutedForeground }} />
|
|
429
|
+
<h3 className="text-lg font-semibold mb-2" style={{ color: theme.foreground }}>No Leaderboard Data</h3>
|
|
430
|
+
<p style={{ color: theme.mutedForeground }}>The leaderboard will be populated as users start earning points.</p>
|
|
425
431
|
</div>
|
|
426
432
|
)}
|
|
427
433
|
|
|
@@ -430,17 +436,17 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
430
436
|
<div className="overflow-x-auto">
|
|
431
437
|
<table className="w-full">
|
|
432
438
|
<thead>
|
|
433
|
-
<tr className="border-b border
|
|
434
|
-
<th className="px-4 py-3 text-left text-xs font-semibold
|
|
439
|
+
<tr className="border-b" style={{ borderColor: theme.border, backgroundColor: theme.muted }}>
|
|
440
|
+
<th className="px-4 py-3 text-left text-xs font-semibold uppercase" style={{ color: theme.mutedForeground }}>
|
|
435
441
|
Rank
|
|
436
442
|
</th>
|
|
437
|
-
<th className="px-4 py-3 text-left text-xs font-semibold
|
|
443
|
+
<th className="px-4 py-3 text-left text-xs font-semibold uppercase" style={{ color: theme.mutedForeground }}>
|
|
438
444
|
Wallet
|
|
439
445
|
</th>
|
|
440
|
-
<th className="px-4 py-3 text-right text-xs font-semibold
|
|
446
|
+
<th className="px-4 py-3 text-right text-xs font-semibold uppercase" style={{ color: theme.mutedForeground }}>
|
|
441
447
|
Points
|
|
442
448
|
</th>
|
|
443
|
-
<th className="px-4 py-3 text-center text-xs font-semibold
|
|
449
|
+
<th className="px-4 py-3 text-center text-xs font-semibold uppercase" style={{ color: theme.mutedForeground }}>
|
|
444
450
|
Badges
|
|
445
451
|
</th>
|
|
446
452
|
</tr>
|
|
@@ -451,6 +457,7 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
451
457
|
key={entry.rank}
|
|
452
458
|
entry={entry}
|
|
453
459
|
accentColor={accentColor}
|
|
460
|
+
theme={theme}
|
|
454
461
|
isCurrentUser={
|
|
455
462
|
walletAddress
|
|
456
463
|
? entry.walletAddress.toLowerCase() === walletAddress.toLowerCase()
|
|
@@ -470,15 +477,16 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
470
477
|
|
|
471
478
|
{/* Pagination */}
|
|
472
479
|
{!compactMode && data.length > itemsPerPage && (
|
|
473
|
-
<div className="px-6 py-4 border-t
|
|
474
|
-
<div className="text-sm
|
|
480
|
+
<div className="px-6 py-4 border-t flex items-center justify-between" style={{ borderColor: theme.border }}>
|
|
481
|
+
<div className="text-sm" style={{ color: theme.mutedForeground }}>
|
|
475
482
|
Showing {startIndex + 1} to {Math.min(endIndex, data.length)} of {data.length}
|
|
476
483
|
</div>
|
|
477
484
|
<div className="flex gap-2">
|
|
478
485
|
<button
|
|
479
486
|
onClick={() => setCurrentPage((p) => Math.max(1, p - 1))}
|
|
480
487
|
disabled={currentPage === 1}
|
|
481
|
-
className="px-3 py-1.5 rounded-lg text-sm font-medium
|
|
488
|
+
className="px-3 py-1.5 rounded-lg text-sm font-medium transition-all disabled:opacity-50 disabled:cursor-not-allowed"
|
|
489
|
+
style={{ color: theme.mutedForeground }}
|
|
482
490
|
>
|
|
483
491
|
← Previous
|
|
484
492
|
</button>
|
|
@@ -489,18 +497,14 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
489
497
|
<button
|
|
490
498
|
key={pageNum}
|
|
491
499
|
onClick={() => setCurrentPage(pageNum)}
|
|
492
|
-
className=
|
|
493
|
-
currentPage === pageNum
|
|
494
|
-
? 'text-white'
|
|
495
|
-
: 'text-gray-400 hover:text-white hover:bg-gray-700'
|
|
496
|
-
}`}
|
|
500
|
+
className="px-3 py-1.5 rounded-lg text-sm font-medium transition-all"
|
|
497
501
|
style={
|
|
498
502
|
currentPage === pageNum
|
|
499
503
|
? {
|
|
500
504
|
backgroundColor: accentColor,
|
|
501
505
|
color: 'white',
|
|
502
506
|
}
|
|
503
|
-
: {}
|
|
507
|
+
: { color: theme.mutedForeground }
|
|
504
508
|
}
|
|
505
509
|
>
|
|
506
510
|
{pageNum}
|
|
@@ -511,7 +515,8 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
511
515
|
<button
|
|
512
516
|
onClick={() => setCurrentPage((p) => Math.min(totalPages, p + 1))}
|
|
513
517
|
disabled={currentPage === totalPages}
|
|
514
|
-
className="px-3 py-1.5 rounded-lg text-sm font-medium
|
|
518
|
+
className="px-3 py-1.5 rounded-lg text-sm font-medium transition-all disabled:opacity-50 disabled:cursor-not-allowed"
|
|
519
|
+
style={{ color: theme.mutedForeground }}
|
|
515
520
|
>
|
|
516
521
|
Next →
|
|
517
522
|
</button>
|
|
@@ -520,7 +525,7 @@ export const Leaderboard: React.FC<LeaderboardProps> = ({
|
|
|
520
525
|
)}
|
|
521
526
|
|
|
522
527
|
{/* Footer */}
|
|
523
|
-
<div className="px-6 py-3 border-t
|
|
528
|
+
<div className="px-6 py-3 border-t flex items-center justify-end text-xs" style={{ borderColor: theme.border, color: theme.mutedForeground }}>
|
|
524
529
|
<span className="flex items-center gap-1">
|
|
525
530
|
<ExternalLink className="w-3 h-3" />
|
|
526
531
|
@chainloyalty/react
|
package/src/RewardsDashboard.tsx
CHANGED
|
@@ -245,34 +245,40 @@ const getRarityColor = (rarity: string): string => {
|
|
|
245
245
|
interface RewardHistoryProps {
|
|
246
246
|
items: RewardHistoryItem[];
|
|
247
247
|
accentColor: string;
|
|
248
|
+
theme: ReturnType<typeof getThemeColors>;
|
|
248
249
|
}
|
|
249
250
|
|
|
250
|
-
const RewardHistory: React.FC<RewardHistoryProps> = ({ items, accentColor }) => {
|
|
251
|
+
const RewardHistory: React.FC<RewardHistoryProps> = ({ items, accentColor, theme }) => {
|
|
251
252
|
return (
|
|
252
253
|
<div className="space-y-3">
|
|
253
254
|
{items.map((item) => (
|
|
254
255
|
<div
|
|
255
256
|
key={item.id}
|
|
256
|
-
className="flex items-start justify-between p-3 rounded-lg border
|
|
257
|
-
style={{
|
|
257
|
+
className="flex items-start justify-between p-3 rounded-lg border transition-colors hover:opacity-80"
|
|
258
|
+
style={{
|
|
259
|
+
borderColor: theme.border,
|
|
260
|
+
borderLeftColor: accentColor,
|
|
261
|
+
borderLeftWidth: '3px',
|
|
262
|
+
backgroundColor: 'transparent',
|
|
263
|
+
}}
|
|
258
264
|
>
|
|
259
265
|
<div className="flex-1">
|
|
260
266
|
<div className="flex items-center gap-2">
|
|
261
|
-
<span className="text-sm font-semibold
|
|
262
|
-
<span className="text-xs px-2 py-0.5 rounded-full
|
|
267
|
+
<span className="text-sm font-semibold" style={{ color: theme.foreground }}>{item.title}</span>
|
|
268
|
+
<span className="text-xs px-2 py-0.5 rounded-full" style={{ backgroundColor: theme.muted, color: theme.mutedForeground }}>
|
|
263
269
|
{item.type}
|
|
264
270
|
</span>
|
|
265
271
|
</div>
|
|
266
272
|
{item.description && (
|
|
267
|
-
<p className="text-xs
|
|
273
|
+
<p className="text-xs mt-1" style={{ color: theme.mutedForeground }}>{item.description}</p>
|
|
268
274
|
)}
|
|
269
|
-
<p className="text-xs
|
|
275
|
+
<p className="text-xs mt-1" style={{ color: theme.mutedForeground }}>{formatDate(item.timestamp)}</p>
|
|
270
276
|
</div>
|
|
271
277
|
<div className="ml-4 text-right">
|
|
272
278
|
<p className="text-lg font-bold" style={{ color: accentColor }}>
|
|
273
279
|
+{item.points}
|
|
274
280
|
</p>
|
|
275
|
-
<p className="text-xs
|
|
281
|
+
<p className="text-xs" style={{ color: theme.mutedForeground }}>points</p>
|
|
276
282
|
</div>
|
|
277
283
|
</div>
|
|
278
284
|
))}
|
|
@@ -286,10 +292,11 @@ const RewardHistory: React.FC<RewardHistoryProps> = ({ items, accentColor }) =>
|
|
|
286
292
|
|
|
287
293
|
interface BadgeGridProps {
|
|
288
294
|
badges: Badge[];
|
|
295
|
+
theme: ReturnType<typeof getThemeColors>;
|
|
289
296
|
compactMode?: boolean;
|
|
290
297
|
}
|
|
291
298
|
|
|
292
|
-
const BadgeGrid: React.FC<BadgeGridProps> = ({ badges, compactMode = false }) => {
|
|
299
|
+
const BadgeGrid: React.FC<BadgeGridProps> = ({ badges, theme, compactMode = false }) => {
|
|
293
300
|
const displayBadges = compactMode ? badges.slice(0, 4) : badges;
|
|
294
301
|
|
|
295
302
|
return (
|
|
@@ -302,18 +309,19 @@ const BadgeGrid: React.FC<BadgeGridProps> = ({ badges, compactMode = false }) =>
|
|
|
302
309
|
className="group relative p-3 rounded-lg border transition-all hover:scale-105 cursor-pointer"
|
|
303
310
|
style={{
|
|
304
311
|
borderColor: getRarityColor(badge.rarity),
|
|
305
|
-
backgroundColor:
|
|
312
|
+
backgroundColor: theme.card,
|
|
313
|
+
opacity: 0.9,
|
|
306
314
|
}}
|
|
307
315
|
title={`${badge.name} - ${badge.description}`}
|
|
308
316
|
>
|
|
309
317
|
<div className="text-3xl mb-1 text-center">{badge.icon}</div>
|
|
310
|
-
<p className="text-xs font-semibold text-
|
|
311
|
-
<p className="text-xs text-
|
|
318
|
+
<p className="text-xs font-semibold text-center truncate" style={{ color: theme.foreground }}>{badge.name}</p>
|
|
319
|
+
<p className="text-xs text-center mt-0.5" style={{ color: theme.mutedForeground }}>
|
|
312
320
|
{new Date(badge.earnedAt).toLocaleDateString()}
|
|
313
321
|
</p>
|
|
314
322
|
|
|
315
323
|
{/* Tooltip on hover */}
|
|
316
|
-
<div className="hidden group-hover:block absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 p-2
|
|
324
|
+
<div className="hidden group-hover:block absolute bottom-full left-1/2 transform -translate-x-1/2 mb-2 p-2 border rounded-lg text-xs w-32 text-center whitespace-normal z-10" style={{ backgroundColor: theme.muted, borderColor: theme.border, color: theme.mutedForeground }}>
|
|
317
325
|
{badge.description}
|
|
318
326
|
</div>
|
|
319
327
|
</div>
|
|
@@ -329,9 +337,10 @@ const BadgeGrid: React.FC<BadgeGridProps> = ({ badges, compactMode = false }) =>
|
|
|
329
337
|
interface TierCardProps {
|
|
330
338
|
tier: TierInfo;
|
|
331
339
|
accentColor: string;
|
|
340
|
+
theme: ReturnType<typeof getThemeColors>;
|
|
332
341
|
}
|
|
333
342
|
|
|
334
|
-
const TierCard: React.FC<TierCardProps> = ({ tier, accentColor }) => {
|
|
343
|
+
const TierCard: React.FC<TierCardProps> = ({ tier, accentColor, theme }) => {
|
|
335
344
|
const progressPercent = (tier.currentProgress / tier.nextMilestone) * 100;
|
|
336
345
|
|
|
337
346
|
return (
|
|
@@ -339,24 +348,24 @@ const TierCard: React.FC<TierCardProps> = ({ tier, accentColor }) => {
|
|
|
339
348
|
className="p-4 rounded-lg border"
|
|
340
349
|
style={{
|
|
341
350
|
borderColor: accentColor,
|
|
342
|
-
backgroundColor:
|
|
351
|
+
backgroundColor: theme.card,
|
|
343
352
|
}}
|
|
344
353
|
>
|
|
345
354
|
<div className="flex items-start justify-between mb-3">
|
|
346
355
|
<div className="flex items-center gap-2">
|
|
347
356
|
<span className="text-3xl">{tier.icon}</span>
|
|
348
357
|
<div>
|
|
349
|
-
<p className="text-sm font-semibold
|
|
350
|
-
<p className="text-xs
|
|
358
|
+
<p className="text-sm font-semibold" style={{ color: theme.foreground }}>{tier.name}</p>
|
|
359
|
+
<p className="text-xs" style={{ color: theme.mutedForeground }}>Level {tier.level}</p>
|
|
351
360
|
</div>
|
|
352
361
|
</div>
|
|
353
362
|
</div>
|
|
354
363
|
<div className="space-y-2">
|
|
355
|
-
<div className="flex justify-between text-xs
|
|
364
|
+
<div className="flex justify-between text-xs" style={{ color: theme.mutedForeground }}>
|
|
356
365
|
<span>{tier.currentProgress.toLocaleString()} points</span>
|
|
357
366
|
<span>{tier.nextMilestone.toLocaleString()} goal</span>
|
|
358
367
|
</div>
|
|
359
|
-
<div className="w-full
|
|
368
|
+
<div className="w-full rounded-full h-2 overflow-hidden" style={{ backgroundColor: theme.muted }}>
|
|
360
369
|
<div
|
|
361
370
|
className="h-full rounded-full transition-all duration-500"
|
|
362
371
|
style={{
|
|
@@ -438,21 +447,22 @@ export const RewardsDashboard: React.FC<RewardsDashboardProps> = ({
|
|
|
438
447
|
if (!walletAddress) {
|
|
439
448
|
return (
|
|
440
449
|
<div
|
|
441
|
-
className="p-6 rounded-lg border
|
|
442
|
-
style={{ backgroundColor }}
|
|
450
|
+
className="p-6 rounded-lg border max-w-2xl"
|
|
451
|
+
style={{ backgroundColor: theme.card, borderColor: theme.border }}
|
|
443
452
|
>
|
|
444
453
|
<div className="text-center">
|
|
445
|
-
<Lock className="w-12 h-12 mx-auto mb-4
|
|
446
|
-
<h2 className="text-xl font-bold
|
|
447
|
-
<p className="
|
|
454
|
+
<Lock className="w-12 h-12 mx-auto mb-4" style={{ color: theme.mutedForeground }} />
|
|
455
|
+
<h2 className="text-xl font-bold mb-2" style={{ color: theme.foreground }}>Connect Your Wallet</h2>
|
|
456
|
+
<p className="mb-6" style={{ color: theme.mutedForeground }}>
|
|
448
457
|
Connect your wallet to view your rewards, badges, and track your achievements.
|
|
449
458
|
</p>
|
|
450
459
|
{onConnectWallet && (
|
|
451
460
|
<button
|
|
452
461
|
onClick={onConnectWallet}
|
|
453
|
-
className="inline-flex items-center gap-2 px-6 py-2 rounded-lg font-semibold
|
|
462
|
+
className="inline-flex items-center gap-2 px-6 py-2 rounded-lg font-semibold transition-all hover:opacity-90"
|
|
454
463
|
style={{
|
|
455
464
|
backgroundColor: accentColor,
|
|
465
|
+
color: '#fff',
|
|
456
466
|
}}
|
|
457
467
|
>
|
|
458
468
|
<Wallet className="w-5 h-5" />
|
|
@@ -468,13 +478,13 @@ export const RewardsDashboard: React.FC<RewardsDashboardProps> = ({
|
|
|
468
478
|
if (loading && !data) {
|
|
469
479
|
return (
|
|
470
480
|
<div
|
|
471
|
-
className="p-6 rounded-lg border
|
|
472
|
-
style={{ backgroundColor }}
|
|
481
|
+
className="p-6 rounded-lg border max-w-2xl"
|
|
482
|
+
style={{ backgroundColor: theme.card, borderColor: theme.border }}
|
|
473
483
|
>
|
|
474
484
|
<div className="space-y-4">
|
|
475
|
-
<div className="h-20
|
|
476
|
-
<div className="h-40
|
|
477
|
-
<div className="h-32
|
|
485
|
+
<div className="h-20 rounded-lg animate-pulse" style={{ backgroundColor: theme.muted }} />
|
|
486
|
+
<div className="h-40 rounded-lg animate-pulse" style={{ backgroundColor: theme.muted }} />
|
|
487
|
+
<div className="h-32 rounded-lg animate-pulse" style={{ backgroundColor: theme.muted }} />
|
|
478
488
|
</div>
|
|
479
489
|
</div>
|
|
480
490
|
);
|
|
@@ -484,10 +494,10 @@ export const RewardsDashboard: React.FC<RewardsDashboardProps> = ({
|
|
|
484
494
|
if (error && !data) {
|
|
485
495
|
return (
|
|
486
496
|
<div
|
|
487
|
-
className="p-6 rounded-lg border
|
|
488
|
-
style={{ backgroundColor }}
|
|
497
|
+
className="p-6 rounded-lg border max-w-2xl"
|
|
498
|
+
style={{ backgroundColor: theme.card, borderColor: '#dc2626' }}
|
|
489
499
|
>
|
|
490
|
-
<p
|
|
500
|
+
<p style={{ color: '#ef4444' }}>Failed to load rewards: {error}</p>
|
|
491
501
|
<button
|
|
492
502
|
onClick={handleRefresh}
|
|
493
503
|
className="mt-4 px-4 py-2 rounded-lg text-white text-sm transition-all"
|
|
@@ -509,28 +519,30 @@ export const RewardsDashboard: React.FC<RewardsDashboardProps> = ({
|
|
|
509
519
|
{/* Header */}
|
|
510
520
|
<div className="p-6 border-b border-gray-700">
|
|
511
521
|
<div className="flex items-center justify-between mb-4">
|
|
512
|
-
<h2 className="text-2xl font-bold
|
|
522
|
+
<h2 className="text-2xl font-bold" style={{ color: theme.foreground }}>Rewards Dashboard</h2>
|
|
513
523
|
<button
|
|
514
524
|
onClick={handleRefresh}
|
|
515
525
|
disabled={loading}
|
|
516
|
-
className="p-2 rounded-lg
|
|
526
|
+
className="p-2 rounded-lg transition-all disabled:opacity-50"
|
|
527
|
+
style={{ color: theme.mutedForeground }}
|
|
517
528
|
>
|
|
518
529
|
<RefreshCw className={`w-5 h-5 ${loading ? 'animate-spin' : ''}`} />
|
|
519
530
|
</button>
|
|
520
531
|
</div>
|
|
521
532
|
|
|
522
533
|
{/* Wallet Display */}
|
|
523
|
-
<div className="flex items-center justify-between p-3 rounded-lg
|
|
534
|
+
<div className="flex items-center justify-between p-3 rounded-lg border" style={{ backgroundColor: theme.muted, borderColor: theme.border }}>
|
|
524
535
|
<div className="flex items-center gap-2">
|
|
525
536
|
<Wallet className="w-5 h-5" style={{ color: accentColor }} />
|
|
526
537
|
<div>
|
|
527
|
-
<p className="text-xs
|
|
528
|
-
<p className="text-sm font-mono font-semibold
|
|
538
|
+
<p className="text-xs" style={{ color: theme.mutedForeground }}>Connected Wallet</p>
|
|
539
|
+
<p className="text-sm font-mono font-semibold" style={{ color: theme.foreground }}>{shortenAddress(walletAddress)}</p>
|
|
529
540
|
</div>
|
|
530
541
|
</div>
|
|
531
542
|
<button
|
|
532
543
|
onClick={handleCopyAddress}
|
|
533
|
-
className="p-2 rounded-lg
|
|
544
|
+
className="p-2 rounded-lg transition-all"
|
|
545
|
+
style={{ color: theme.mutedForeground }}
|
|
534
546
|
title={walletAddress}
|
|
535
547
|
>
|
|
536
548
|
{copied ? <CheckCircle className="w-5 h-5" style={{ color: accentColor2 }} /> : <Copy className="w-5 h-5" />}
|
|
@@ -539,28 +551,28 @@ export const RewardsDashboard: React.FC<RewardsDashboardProps> = ({
|
|
|
539
551
|
</div>
|
|
540
552
|
|
|
541
553
|
{/* Main Content */}
|
|
542
|
-
<div className={`p-6 space-y-6 ${compactMode ? 'max-w-3xl' : ''}`} style={{backgroundColor:
|
|
554
|
+
<div className={`p-6 space-y-6 ${compactMode ? 'max-w-3xl' : ''}`} style={{backgroundColor: theme.background}}>
|
|
543
555
|
{/* Points Display */}
|
|
544
556
|
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
545
557
|
<div
|
|
546
558
|
className="p-6 rounded-lg border text-center"
|
|
547
559
|
style={{
|
|
548
560
|
borderColor: accentColor,
|
|
549
|
-
backgroundColor:
|
|
561
|
+
backgroundColor: theme.card,
|
|
550
562
|
}}
|
|
551
563
|
>
|
|
552
|
-
<p className="text-sm
|
|
564
|
+
<p className="text-sm mb-2" style={{ color: theme.mutedForeground }}>Total Points</p>
|
|
553
565
|
<p className="text-4xl font-bold" style={{ color: accentColor }}>
|
|
554
566
|
{data.totalPoints.toLocaleString()}
|
|
555
567
|
</p>
|
|
556
|
-
<div className="flex items-center justify-center gap-1 mt-2 text-xs
|
|
568
|
+
<div className="flex items-center justify-center gap-1 mt-2 text-xs" style={{ color: theme.mutedForeground }}>
|
|
557
569
|
<TrendingUp className="w-4 h-4" />
|
|
558
570
|
<span>Keep earning rewards</span>
|
|
559
571
|
</div>
|
|
560
572
|
</div>
|
|
561
573
|
|
|
562
574
|
{!hideTier && (
|
|
563
|
-
<TierCard tier={data.tier} accentColor={accentColor2} />
|
|
575
|
+
<TierCard tier={data.tier} accentColor={accentColor2} theme={theme} />
|
|
564
576
|
)}
|
|
565
577
|
</div>
|
|
566
578
|
|
|
@@ -569,11 +581,11 @@ export const RewardsDashboard: React.FC<RewardsDashboardProps> = ({
|
|
|
569
581
|
<div>
|
|
570
582
|
<div className="flex items-center gap-2 mb-4">
|
|
571
583
|
<Award className="w-5 h-5" style={{ color: accentColor }} />
|
|
572
|
-
<h3 className="text-lg font-semibold
|
|
584
|
+
<h3 className="text-lg font-semibold" style={{ color: theme.foreground }}>
|
|
573
585
|
Badges ({data.badges.length})
|
|
574
586
|
</h3>
|
|
575
587
|
</div>
|
|
576
|
-
<BadgeGrid badges={data.badges} compactMode={compactMode} />
|
|
588
|
+
<BadgeGrid badges={data.badges} theme={theme} compactMode={compactMode} />
|
|
577
589
|
</div>
|
|
578
590
|
)}
|
|
579
591
|
|
|
@@ -582,18 +594,19 @@ export const RewardsDashboard: React.FC<RewardsDashboardProps> = ({
|
|
|
582
594
|
<div>
|
|
583
595
|
<div className="flex items-center gap-2 mb-4">
|
|
584
596
|
<Zap className="w-5 h-5" style={{ color: accentColor2 }} />
|
|
585
|
-
<h3 className="text-lg font-semibold
|
|
597
|
+
<h3 className="text-lg font-semibold" style={{ color: theme.foreground }}>Recent Rewards</h3>
|
|
586
598
|
</div>
|
|
587
599
|
<RewardHistory
|
|
588
600
|
items={compactMode ? data.rewardHistory.slice(0, 3) : data.rewardHistory}
|
|
589
601
|
accentColor={accentColor}
|
|
602
|
+
theme={theme}
|
|
590
603
|
/>
|
|
591
604
|
</div>
|
|
592
605
|
)}
|
|
593
606
|
</div>
|
|
594
607
|
|
|
595
608
|
{/* Footer */}
|
|
596
|
-
<div className="px-6 py-3 border-t
|
|
609
|
+
<div className="px-6 py-3 border-t flex items-center justify-between text-xs" style={{ borderColor: theme.border, color: theme.mutedForeground }}>
|
|
597
610
|
<span>Last updated: {formatDate(data.lastUpdated)}</span>
|
|
598
611
|
<span className="flex items-center gap-1">
|
|
599
612
|
<ExternalLink className="w-3 h-3" />
|