@n1xyz/wallet-widget 0.0.22-8121ed05.0 → 0.0.24
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/Modal/NordFlow/context/DepositContext.js +1 -1
- package/dist/Modal/NordFlow/context/DepositContext.js.map +1 -1
- package/dist/Modal/NordFlow/context/WalletConnectContext.js +4 -3
- package/dist/Modal/NordFlow/context/WalletConnectContext.js.map +1 -1
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +19 -14
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -1
- package/dist/Modal/Sidebar/N1Sidebar.js +6 -2
- package/dist/Modal/Sidebar/N1Sidebar.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.d.ts +7 -2
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js +11 -8
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.d.ts +2 -2
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +3 -3
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.d.ts +4 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +4 -0
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.d.ts +1 -1
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +129 -41
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.d.ts +0 -5
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +234 -195
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.d.ts +6 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +11 -7
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.d.ts +4 -0
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +4 -0
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.d.ts +0 -1
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +271 -189
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +1 -1
- package/dist/Provider/hooks/useNordUserInitialization.js +7 -4
- package/dist/Provider/hooks/useNordUserInitialization.js.map +1 -1
- package/dist/embedded-main-css.d.ts +1 -1
- package/dist/embedded-main-css.js +1 -1
- package/dist/embedded-main-css.js.map +1 -1
- package/dist/main.css +1 -1
- package/package.json +12 -13
|
@@ -35,22 +35,26 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
38
|
+
/**
|
|
39
|
+
* @deprecated This component is deprecated due to technical issues.
|
|
40
|
+
* Please refer to DEPRECATED.md for more information.
|
|
41
|
+
*/
|
|
38
42
|
import { useEffect, useState } from 'react';
|
|
39
43
|
import { useN1WalletContext } from '../../../../Provider/hooks';
|
|
40
44
|
import MarketSelector from '../MarketOverview/MarketSelector';
|
|
41
45
|
export default function MarketOverview(_a) {
|
|
42
46
|
var _this = this;
|
|
43
|
-
var
|
|
47
|
+
var selectedMarketSymbol = _a.selectedMarketSymbol, selectedMarketId = _a.selectedMarketId, onMarketChange = _a.onMarketChange, _b = _a.className, className = _b === void 0 ? '' : _b;
|
|
44
48
|
var nord = useN1WalletContext().nord;
|
|
45
49
|
var _c = useState(null), marketStats = _c[0], setMarketStats = _c[1];
|
|
46
50
|
var _d = useState(false), loading = _d[0], setLoading = _d[1];
|
|
47
51
|
var _e = useState(null), error = _e[0], setError = _e[1];
|
|
48
52
|
// Fetch market stats when selected market changes
|
|
49
53
|
useEffect(function () {
|
|
50
|
-
if (!
|
|
54
|
+
if (!selectedMarketId || !nord)
|
|
51
55
|
return;
|
|
52
56
|
var fetchMarketStats = function () { return __awaiter(_this, void 0, void 0, function () {
|
|
53
|
-
var stats,
|
|
57
|
+
var stats, err_1;
|
|
54
58
|
return __generator(this, function (_a) {
|
|
55
59
|
switch (_a.label) {
|
|
56
60
|
case 0:
|
|
@@ -59,11 +63,10 @@ export default function MarketOverview(_a) {
|
|
|
59
63
|
_a.label = 1;
|
|
60
64
|
case 1:
|
|
61
65
|
_a.trys.push([1, 3, 4, 5]);
|
|
62
|
-
return [4 /*yield*/, nord.getMarketStats()];
|
|
66
|
+
return [4 /*yield*/, nord.getMarketStats({ marketId: selectedMarketId })];
|
|
63
67
|
case 2:
|
|
64
68
|
stats = _a.sent();
|
|
65
|
-
|
|
66
|
-
setMarketStats(selectedStats || null);
|
|
69
|
+
setMarketStats(stats || null);
|
|
67
70
|
return [3 /*break*/, 5];
|
|
68
71
|
case 3:
|
|
69
72
|
err_1 = _a.sent();
|
|
@@ -81,7 +84,7 @@ export default function MarketOverview(_a) {
|
|
|
81
84
|
// Set up polling for market stats updates
|
|
82
85
|
var intervalId = setInterval(fetchMarketStats, 30000); // Update every 30 seconds
|
|
83
86
|
return function () { return clearInterval(intervalId); };
|
|
84
|
-
}, [
|
|
85
|
-
return (_jsx("div", { className: "".concat(className), children: _jsx(MarketSelector, {
|
|
87
|
+
}, [selectedMarketId, nord]);
|
|
88
|
+
return (_jsx("div", { className: "".concat(className), children: _jsx(MarketSelector, { selectedMarketSymbol: selectedMarketSymbol, onMarketChange: onMarketChange }) }));
|
|
86
89
|
}
|
|
87
90
|
//# sourceMappingURL=MarketOverview.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarketOverview.js","sourceRoot":"","sources":["../../../../../src/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,cAAc,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"MarketOverview.js","sourceRoot":"","sources":["../../../../../src/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;GAGG;AAEH,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAS9D,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAKjB;IALtB,iBA8CC;QA7CC,oBAAoB,0BAAA,EACpB,gBAAgB,sBAAA,EAChB,cAAc,oBAAA,EACd,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA;IAEN,IAAA,IAAI,GAAK,kBAAkB,EAAE,KAAzB,CAA0B;IAChC,IAAA,KAAgC,QAAQ,CAAM,IAAI,CAAC,EAAlD,WAAW,QAAA,EAAE,cAAc,QAAuB,CAAC;IACpD,IAAA,KAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,QAAA,EAAE,UAAU,QAAmB,CAAC;IACxC,IAAA,KAAoB,QAAQ,CAAgB,IAAI,CAAC,EAAhD,KAAK,QAAA,EAAE,QAAQ,QAAiC,CAAC;IAExD,kDAAkD;IAClD,SAAS,CAAC;QACR,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI;YAAE,OAAO;QAEvC,IAAM,gBAAgB,GAAG;;;;;wBACvB,UAAU,CAAC,IAAI,CAAC,CAAC;wBACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;wBAGC,qBAAM,IAAI,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,EAAA;;wBAAjE,KAAK,GAAG,SAAyD;wBACvE,cAAc,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC;;;;wBAE9B,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAG,CAAC,CAAC;wBACnD,QAAQ,CAAC,kCAAkC,CAAC,CAAC;;;wBAE7C,UAAU,CAAC,KAAK,CAAC,CAAC;;;;;aAErB,CAAC;QAEF,gBAAgB,EAAE,CAAC;QAEnB,0CAA0C;QAC1C,IAAM,UAAU,GAAG,WAAW,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC,0BAA0B;QAEnF,OAAO,cAAM,OAAA,aAAa,CAAC,UAAU,CAAC,EAAzB,CAAyB,CAAC;IACzC,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7B,OAAO,CACL,cAAK,SAAS,EAAE,UAAG,SAAS,CAAE,YAC5B,KAAC,cAAc,IACb,oBAAoB,EAAE,oBAAoB,EAC1C,cAAc,EAAE,cAAc,GAC9B,GACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["/**\n * @deprecated This component is deprecated due to technical issues.\n * Please refer to DEPRECATED.md for more information.\n */\n\nimport { useEffect, useState } from 'react';\nimport { useN1WalletContext } from '../../../../Provider/hooks';\nimport MarketSelector from '../MarketOverview/MarketSelector';\n\ninterface MarketOverviewProps {\n selectedMarketSymbol: string | null;\n selectedMarketId: number | null;\n onMarketChange: (market: string) => void;\n className?: string;\n}\n\nexport default function MarketOverview({\n selectedMarketSymbol,\n selectedMarketId,\n onMarketChange,\n className = '',\n}: MarketOverviewProps) {\n const { nord } = useN1WalletContext();\n const [marketStats, setMarketStats] = useState<any>(null);\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n\n // Fetch market stats when selected market changes\n useEffect(() => {\n if (!selectedMarketId || !nord) return;\n\n const fetchMarketStats = async () => {\n setLoading(true);\n setError(null);\n\n try {\n const stats = await nord.getMarketStats({ marketId: selectedMarketId });\n setMarketStats(stats || null);\n } catch (err) {\n console.error('Error fetching market stats:', err);\n setError('Failed to load market statistics');\n } finally {\n setLoading(false);\n }\n };\n\n fetchMarketStats();\n\n // Set up polling for market stats updates\n const intervalId = setInterval(fetchMarketStats, 30000); // Update every 30 seconds\n\n return () => clearInterval(intervalId);\n }, [selectedMarketId, nord]);\n\n return (\n <div className={`${className}`}>\n <MarketSelector\n selectedMarketSymbol={selectedMarketSymbol}\n onMarketChange={onMarketChange}\n />\n </div>\n );\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
interface MarketSelectorProps {
|
|
2
|
-
|
|
2
|
+
selectedMarketSymbol: string | null;
|
|
3
3
|
onMarketChange: (market: string) => void;
|
|
4
4
|
}
|
|
5
|
-
export default function MarketSelector({
|
|
5
|
+
export default function MarketSelector({ selectedMarketSymbol, onMarketChange, }: MarketSelectorProps): JSX.Element;
|
|
6
6
|
export {};
|
|
@@ -4,7 +4,7 @@ import { useN1WalletContext } from '../../../../Provider/hooks';
|
|
|
4
4
|
import { ChevronDown } from 'lucide-react';
|
|
5
5
|
export default function MarketSelector(_a) {
|
|
6
6
|
var _b;
|
|
7
|
-
var
|
|
7
|
+
var selectedMarketSymbol = _a.selectedMarketSymbol, onMarketChange = _a.onMarketChange;
|
|
8
8
|
var nord = useN1WalletContext().nord;
|
|
9
9
|
var _c = useState(false), isOpen = _c[0], setIsOpen = _c[1];
|
|
10
10
|
var _d = useState(''), searchQuery = _d[0], setSearchQuery = _d[1];
|
|
@@ -30,11 +30,11 @@ export default function MarketSelector(_a) {
|
|
|
30
30
|
var filteredMarkets = ((_b = nord === null || nord === void 0 ? void 0 : nord.markets) === null || _b === void 0 ? void 0 : _b.filter(function (market) {
|
|
31
31
|
return market.symbol.toLowerCase().includes(searchQuery.toLowerCase());
|
|
32
32
|
})) || [];
|
|
33
|
-
return (_jsxs("div", { className: "relative w-full", ref: containerRef, children: [_jsxs("button", { ref: buttonRef, onClick: function () { return setIsOpen(!isOpen); }, className: "w-full flex items-center justify-between font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 transition-colors duration-200", children: [_jsx("span", { className: "truncate", children:
|
|
33
|
+
return (_jsxs("div", { className: "relative w-full", ref: containerRef, children: [_jsxs("button", { ref: buttonRef, onClick: function () { return setIsOpen(!isOpen); }, className: "w-full flex items-center justify-between font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 transition-colors duration-200", children: [_jsx("span", { className: "truncate", children: selectedMarketSymbol || 'Select Market' }), _jsx(ChevronDown, { size: 16, className: "ml-2 transition-transform duration-200 ".concat(isOpen ? 'rotate-180 text-n1-ww-main' : 'text-n1-ww-gray-500 dark:text-n1-ww-gray-400') })] }), isOpen && (_jsx("div", { ref: dropdownRef, className: "absolute right-0 top-full mt-1 bg-white dark:bg-n1-ww-gray-950 rounded-[2px] shadow-lg border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 overflow-hidden z-50 w-[250px] max-h-[300px]", children: _jsx("div", { className: "overflow-y-auto max-h-[300px]", children: filteredMarkets.length > 0 ? (filteredMarkets.map(function (market) { return (_jsx("button", { onClick: function () {
|
|
34
34
|
onMarketChange(market.symbol);
|
|
35
35
|
setIsOpen(false);
|
|
36
36
|
setSearchQuery('');
|
|
37
|
-
}, className: "w-full text-left px-4 py-2 hover:bg-n1-ww-gray-50 dark:hover:bg-n1-ww-gray-900 transition-colors duration-200 ".concat(
|
|
37
|
+
}, className: "w-full text-left px-4 py-2 hover:bg-n1-ww-gray-50 dark:hover:bg-n1-ww-gray-900 transition-colors duration-200 ".concat(selectedMarketSymbol === market.symbol
|
|
38
38
|
? 'border-l-2 border-n1-ww-main text-n1-ww-main dark:text-n1-ww-main bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950'
|
|
39
39
|
: 'text-n1-ww-gray-900 dark:text-n1-ww-gray-100'), children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("span", { className: "font-medium", children: market.symbol }), market.change24h !== undefined && (_jsxs("span", { className: "text-sm ".concat(market.change24h >= 0
|
|
40
40
|
? 'text-green-500'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarketSelector.js","sourceRoot":"","sources":["../../../../../src/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"MarketSelector.js","sourceRoot":"","sources":["../../../../../src/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState, useEffect, useRef } from 'react';\nimport { useN1WalletContext } from '../../../../Provider/hooks';\nimport { ChevronDown } from 'lucide-react';\n\ninterface MarketSelectorProps {\n selectedMarketSymbol: string | null;\n onMarketChange: (market: string) => void;\n}\n\nexport default function MarketSelector({\n selectedMarketSymbol,\n onMarketChange,\n}: MarketSelectorProps) {\n const { nord } = useN1WalletContext();\n const [isOpen, setIsOpen] = useState(false);\n const [searchQuery, setSearchQuery] = useState('');\n const dropdownRef = useRef<HTMLDivElement>(null);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n // Close dropdown when clicking outside\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (\n dropdownRef.current &&\n !dropdownRef.current.contains(event.target as Node) &&\n buttonRef.current &&\n !buttonRef.current.contains(event.target as Node)\n ) {\n setIsOpen(false);\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, []);\n\n // Filter markets based on search query\n const filteredMarkets =\n nord?.markets?.filter((market) =>\n market.symbol.toLowerCase().includes(searchQuery.toLowerCase())\n ) || [];\n\n return (\n <div className=\"relative w-full\" ref={containerRef}>\n <button\n ref={buttonRef}\n onClick={() => setIsOpen(!isOpen)}\n className=\"w-full flex items-center justify-between font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 transition-colors duration-200\"\n >\n <span className=\"truncate\">{selectedMarketSymbol || 'Select Market'}</span>\n <ChevronDown\n size={16}\n className={`ml-2 transition-transform duration-200 ${isOpen ? 'rotate-180 text-n1-ww-main' : 'text-n1-ww-gray-500 dark:text-n1-ww-gray-400'}`}\n />\n </button>\n\n {isOpen && (\n <div\n ref={dropdownRef}\n className=\"absolute right-0 top-full mt-1 bg-white dark:bg-n1-ww-gray-950 rounded-[2px] shadow-lg border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 overflow-hidden z-50 w-[250px] max-h-[300px]\"\n >\n {/* Market list */}\n <div className=\"overflow-y-auto max-h-[300px]\">\n {filteredMarkets.length > 0 ? (\n filteredMarkets.map((market) => (\n <button\n key={market.symbol}\n onClick={() => {\n onMarketChange(market.symbol);\n setIsOpen(false);\n setSearchQuery('');\n }}\n className={`w-full text-left px-4 py-2 hover:bg-n1-ww-gray-50 dark:hover:bg-n1-ww-gray-900 transition-colors duration-200 ${\n selectedMarketSymbol === market.symbol\n ? 'border-l-2 border-n1-ww-main text-n1-ww-main dark:text-n1-ww-main bg-n1-ww-gray-50 dark:bg-n1-ww-gray-950'\n : 'text-n1-ww-gray-900 dark:text-n1-ww-gray-100'\n }`}\n >\n <div className=\"flex items-center justify-between\">\n <span className=\"font-medium\">{market.symbol}</span>\n {(market as any).change24h !== undefined && (\n <span\n className={`text-sm ${\n (market as any).change24h >= 0\n ? 'text-green-500'\n : 'text-red-500'\n }`}\n >\n {(market as any).change24h >= 0 ? '+' : ''}\n {(market as any).change24h.toFixed(2)}%\n </span>\n )}\n </div>\n </button>\n ))\n ) : (\n <div className=\"px-4 py-3 text-sm text-n1-ww-gray-500 dark:text-n1-ww-gray-400\">\n No markets found\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated This component is deprecated due to technical issues.
|
|
4
|
+
* Please refer to DEPRECATED.md for more information.
|
|
5
|
+
*/
|
|
2
6
|
import { ArrowDown, ArrowUp, RefreshCw } from 'lucide-react';
|
|
3
7
|
export default function MarketStats(_a) {
|
|
4
8
|
var _b, _c, _d, _e;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MarketStats.js","sourceRoot":"","sources":["../../../../../src/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.tsx"],"names":[],"mappings":"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","sourcesContent":["
|
|
1
|
+
{"version":3,"file":"MarketStats.js","sourceRoot":"","sources":["../../../../../src/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.tsx"],"names":[],"mappings":"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","sourcesContent":["/**\n * @deprecated This component is deprecated due to technical issues.\n * Please refer to DEPRECATED.md for more information.\n */\n\nimport { ArrowDown, ArrowUp, RefreshCw } from 'lucide-react';\n\ninterface MarketStatsProps {\n marketStats: any;\n loading: boolean;\n error: string | null;\n}\n\nexport default function MarketStats({\n marketStats,\n loading,\n error,\n}: MarketStatsProps) {\n if (error) {\n return (\n <div className=\"bg-red-50 dark:bg-red-900/20 p-3 rounded-sm text-red-600 dark:text-red-400 text-sm border border-red-200 dark:border-red-900/30\">\n {error}\n </div>\n );\n }\n\n if (!marketStats && !loading) {\n return (\n <div className=\"bg-n1-ww-gray-50 dark:bg-n1-ww-gray-800 p-3 rounded-sm text-n1-ww-gray-500 dark:text-n1-ww-gray-400 text-sm border border-n1-ww-gray-200 dark:border-n1-ww-gray-800\">\n Select a market to view statistics\n </div>\n );\n }\n\n return (\n <div className=\"bg-n1-ww-gray-50 dark:bg-n1-ww-gray-800 p-3 rounded-sm border border-n1-ww-gray-200 dark:border-n1-ww-gray-800\">\n {loading && !marketStats ? (\n <div className=\"flex items-center justify-center h-24\">\n <RefreshCw size={24} className=\"text-n1-ww-main n1-ww-animate-spin\" />\n </div>\n ) : (\n <>\n <div className=\"flex items-center justify-between mb-3\">\n <h3 className=\"text-base font-semibold text-n1-ww-gray-900 dark:text-n1-ww-gray-100\">\n {marketStats?.symbol}\n </h3>\n <div className=\"flex items-center\">\n <span\n className={`text-xs font-medium px-2 py-1 rounded-sm ${\n marketStats?.priceChangePercent >= 0\n ? 'bg-green-100 dark:bg-green-900/20 text-green-600 dark:text-green-400 border border-green-200 dark:border-green-900/30'\n : 'bg-red-100 dark:bg-red-900/20 text-red-600 dark:text-red-400 border border-red-200 dark:border-red-900/30'\n }`}\n >\n {marketStats?.priceChangePercent >= 0 ? (\n <ArrowUp size={12} className=\"inline mr-1\" />\n ) : (\n <ArrowDown size={12} className=\"inline mr-1\" />\n )}\n {Math.abs(marketStats?.priceChangePercent || 0).toFixed(2)}%\n </span>\n {loading && (\n <RefreshCw size={14} className=\"ml-2 text-n1-ww-main n1-ww-animate-spin\" />\n )}\n </div>\n </div>\n\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"space-y-2\">\n <div className=\"flex justify-between items-center bg-white dark:bg-n1-ww-gray-950 p-2 rounded-sm border border-n1-ww-gray-200 dark:border-n1-ww-gray-800\">\n <span className=\"text-xs text-n1-ww-gray-500 dark:text-n1-ww-gray-400\">\n Last Price\n </span>\n <span className=\"text-xs font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 font-mono\">\n {marketStats?.lastPrice?.toFixed(\n marketStats?.priceDecimals || 2\n )}\n </span>\n </div>\n <div className=\"flex justify-between items-center bg-white dark:bg-n1-ww-gray-950 p-2 rounded-sm border border-n1-ww-gray-200 dark:border-n1-ww-gray-800\">\n <span className=\"text-xs text-n1-ww-gray-500 dark:text-n1-ww-gray-400\">\n 24h High\n </span>\n <span className=\"text-xs font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 font-mono\">\n {marketStats?.highPrice?.toFixed(\n marketStats?.priceDecimals || 2\n )}\n </span>\n </div>\n <div className=\"flex justify-between items-center bg-white dark:bg-n1-ww-gray-950 p-2 rounded-sm border border-n1-ww-gray-200 dark:border-n1-ww-gray-800\">\n <span className=\"text-xs text-n1-ww-gray-500 dark:text-n1-ww-gray-400\">\n 24h Low\n </span>\n <span className=\"text-xs font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 font-mono\">\n {marketStats?.lowPrice?.toFixed(\n marketStats?.priceDecimals || 2\n )}\n </span>\n </div>\n </div>\n <div className=\"space-y-2\">\n <div className=\"flex justify-between items-center bg-white dark:bg-n1-ww-gray-950 p-2 rounded-sm border border-n1-ww-gray-200 dark:border-n1-ww-gray-800\">\n <span className=\"text-xs text-n1-ww-gray-500 dark:text-n1-ww-gray-400\">\n 24h Volume\n </span>\n <span className=\"text-xs font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100 font-mono\">\n {marketStats?.volume?.toFixed(2)}\n </span>\n </div>\n <div className=\"flex justify-between items-center bg-white dark:bg-n1-ww-gray-950 p-2 rounded-sm border border-n1-ww-gray-200 dark:border-n1-ww-gray-800\">\n <span className=\"text-xs text-n1-ww-gray-500 dark:text-n1-ww-gray-400\">\n Base Asset\n </span>\n <span className=\"text-xs font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100\">\n {marketStats?.baseAsset}\n </span>\n </div>\n <div className=\"flex justify-between items-center bg-white dark:bg-n1-ww-gray-950 p-2 rounded-sm border border-n1-ww-gray-200 dark:border-n1-ww-gray-800\">\n <span className=\"text-xs text-n1-ww-gray-500 dark:text-n1-ww-gray-400\">\n Quote Asset\n </span>\n <span className=\"text-xs font-medium text-n1-ww-gray-900 dark:text-n1-ww-gray-100\">\n {marketStats?.quoteAsset}\n </span>\n </div>\n </div>\n </div>\n </>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function NordTradingView(): JSX.Element
|
|
1
|
+
export default function NordTradingView(): JSX.Element;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// DEPRECATED: This entire component has been deprecated due to errors
|
|
3
|
+
// All code below has been commented out to prevent issues
|
|
4
|
+
/*
|
|
2
5
|
import { useState, useEffect } from 'react';
|
|
3
6
|
import { useN1WalletContext } from '../../../Provider/hooks';
|
|
4
7
|
import { N1SessionMode } from '../../../Provider/types';
|
|
@@ -8,48 +11,133 @@ import TradeForm from './TradeForm/TradeForm';
|
|
|
8
11
|
import UserOrders from './UserOrders/UserOrders';
|
|
9
12
|
import UserPositions from './UserPositions/UserPositions';
|
|
10
13
|
import UserBalances from './UserBalances/UserBalances';
|
|
14
|
+
|
|
15
|
+
// Define the available view types
|
|
16
|
+
type ViewType =
|
|
17
|
+
| 'orderbook'
|
|
18
|
+
| 'tradeform'
|
|
19
|
+
| 'orders'
|
|
20
|
+
| 'positions'
|
|
21
|
+
| 'balances'
|
|
22
|
+
| 'history';
|
|
23
|
+
|
|
11
24
|
export default function NordTradingView() {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
25
|
+
const { sessionMode, nord, nordUser } = useN1WalletContext();
|
|
26
|
+
const [selectedMarket, setSelectedMarket] = useState<{symbol: string; id: number} | null>(null);
|
|
27
|
+
const [activeView, setActiveView] = useState<ViewType>('orderbook');
|
|
28
|
+
|
|
29
|
+
// Early return if not in Nord session mode or if Nord/NordUser is not available
|
|
30
|
+
if (sessionMode !== N1SessionMode.Nord || !nord || !nordUser) {
|
|
31
|
+
return null;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Set default selected market if not already set and markets are available
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
if (!selectedMarket && nord.markets?.length > 0) {
|
|
37
|
+
const defaultMarket = nord.markets[0];
|
|
38
|
+
setSelectedMarket({
|
|
39
|
+
symbol: defaultMarket.symbol,
|
|
40
|
+
id: defaultMarket.marketId
|
|
41
|
+
});
|
|
18
42
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
43
|
+
}, [nord.markets, selectedMarket]);
|
|
44
|
+
|
|
45
|
+
// Render the active view component
|
|
46
|
+
const renderActiveView = () => {
|
|
47
|
+
if (!selectedMarket) return null;
|
|
48
|
+
|
|
49
|
+
switch (activeView) {
|
|
50
|
+
case 'orderbook':
|
|
51
|
+
return <OrderBook marketSymbol={selectedMarket.symbol} marketId={selectedMarket.id} />;
|
|
52
|
+
case 'tradeform':
|
|
53
|
+
return <TradeForm marketSymbol={selectedMarket.symbol} marketId={selectedMarket.id} />;
|
|
54
|
+
case 'orders':
|
|
55
|
+
return <UserOrders />;
|
|
56
|
+
case 'positions':
|
|
57
|
+
return (
|
|
58
|
+
<div className="space-y-4">
|
|
59
|
+
<UserPositions />
|
|
60
|
+
<UserBalances />
|
|
61
|
+
</div>
|
|
62
|
+
);
|
|
63
|
+
case 'balances':
|
|
64
|
+
return <UserBalances />;
|
|
65
|
+
default:
|
|
66
|
+
return selectedMarket ? (
|
|
67
|
+
<OrderBook marketSymbol={selectedMarket.symbol} marketId={selectedMarket.id} />
|
|
68
|
+
) : null;
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// Map view types to display names
|
|
73
|
+
const viewLabels: Record<ViewType, string> = {
|
|
74
|
+
orderbook: 'Order Book',
|
|
75
|
+
tradeform: 'Trade',
|
|
76
|
+
positions: 'Positions',
|
|
77
|
+
orders: 'Orders',
|
|
78
|
+
balances: 'Balances',
|
|
79
|
+
history: 'History',
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
return (
|
|
83
|
+
<div className="space-y-4 @container">
|
|
84
|
+
<div className="flex flex-col @md:flex-row justify-between items-start @md:items-center bg-transparent mb-3 gap-3 @md:gap-0">
|
|
85
|
+
<div className="flex justify-start gap-2 flex-wrap w-full @md:w-auto">
|
|
86
|
+
{['orderbook', 'tradeform', 'positions', 'orders'].map((view) => (
|
|
87
|
+
<button
|
|
88
|
+
key={view}
|
|
89
|
+
onClick={() => setActiveView(view as ViewType)}
|
|
90
|
+
className={`
|
|
91
|
+
relative px-4 @md:px-5 py-2 text-sm font-medium tracking-wide transition-all duration-150
|
|
92
|
+
border ${
|
|
93
|
+
activeView === view
|
|
94
|
+
? 'border-n1-ww-main/80 text-n1-ww-main bg-n1-ww-main/[0.03] shadow-[0_0_0_1px_rgba(255,68,26,0.1)]'
|
|
95
|
+
: 'border-n1-ww-gray-200 dark:border-n1-ww-gray-800 text-n1-ww-gray-500 dark:text-n1-ww-gray-400 hover:border-n1-ww-gray-300 dark:hover:border-n1-ww-gray-700'
|
|
96
|
+
}
|
|
97
|
+
first:ml-0 last:mr-0 group rounded-[2px] overflow-hidden flex-grow @md:flex-grow-0
|
|
98
|
+
`}
|
|
99
|
+
>
|
|
100
|
+
<span className="relative z-10">
|
|
101
|
+
{viewLabels[view as ViewType]}
|
|
102
|
+
</span>
|
|
103
|
+
<span
|
|
104
|
+
className={`
|
|
105
|
+
absolute inset-0 bg-n1-ww-main/[0.02] opacity-0 transition-opacity duration-150
|
|
106
|
+
${activeView !== view ? 'group-hover:opacity-100' : ''}
|
|
107
|
+
`}
|
|
108
|
+
/>
|
|
109
|
+
</button>
|
|
110
|
+
))}
|
|
111
|
+
</div>
|
|
112
|
+
|
|
113
|
+
<div className="min-w-[160px] w-full @md:w-auto border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 rounded-[2px] overflow-visible hover:border-n1-ww-gray-300 dark:hover:border-n1-ww-gray-700 transition-colors duration-150 relative z-20">
|
|
114
|
+
<div className="px-5 py-2 text-sm">
|
|
115
|
+
<MarketOverview
|
|
116
|
+
selectedMarketSymbol={selectedMarket?.symbol || null}
|
|
117
|
+
selectedMarketId={selectedMarket?.id || null}
|
|
118
|
+
onMarketChange={(symbol: string) => {
|
|
119
|
+
const market = nord.markets?.find(m => m.symbol === symbol);
|
|
120
|
+
if (market) {
|
|
121
|
+
setSelectedMarket({
|
|
122
|
+
symbol: market.symbol,
|
|
123
|
+
id: market.marketId
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
}}
|
|
127
|
+
/>
|
|
128
|
+
</div>
|
|
129
|
+
</div>
|
|
130
|
+
</div>
|
|
131
|
+
|
|
132
|
+
<div className="border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 rounded-[3px] shadow-sm bg-white dark:bg-n1-ww-gray-950">
|
|
133
|
+
{renderActiveView()}
|
|
134
|
+
</div>
|
|
135
|
+
</div>
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
*/
|
|
139
|
+
// Temporary replacement component to prevent import errors
|
|
140
|
+
export default function NordTradingView() {
|
|
141
|
+
return (_jsxs("div", { className: "p-4 bg-yellow-50 dark:bg-yellow-900/20 rounded-xl text-yellow-600 dark:text-yellow-400 text-center", children: [_jsx("h3", { className: "font-semibold mb-2", children: "Nord Trading View Deprecated" }), _jsx("p", { className: "text-sm", children: "The Nord Trading View has been temporarily disabled due to technical issues." })] }));
|
|
54
142
|
}
|
|
55
143
|
//# sourceMappingURL=NordTradingView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NordTradingView.js","sourceRoot":"","sources":["../../../../src/Modal/Sidebar/NordTradingView/NordTradingView.tsx"],"names":[],"mappings":";AAAA,
|
|
1
|
+
{"version":3,"file":"NordTradingView.js","sourceRoot":"","sources":["../../../../src/Modal/Sidebar/NordTradingView/NordTradingView.tsx"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,0DAA0D;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAsIE;AAEF,2DAA2D;AAC3D,MAAM,CAAC,OAAO,UAAU,eAAe;IACrC,OAAO,CACL,eAAK,SAAS,EAAC,oGAAoG,aACjH,aAAI,SAAS,EAAC,oBAAoB,6CAAkC,EACpE,YAAG,SAAS,EAAC,SAAS,6FAAiF,IACnG,CACP,CAAC;AACJ,CAAC","sourcesContent":["// DEPRECATED: This entire component has been deprecated due to errors\n// All code below has been commented out to prevent issues\n\n/*\nimport { useState, useEffect } from 'react';\nimport { useN1WalletContext } from '../../../Provider/hooks';\nimport { N1SessionMode } from '../../../Provider/types';\nimport MarketOverview from './MarketOverview/MarketOverview';\nimport OrderBook from './OrderBook/OrderBook';\nimport TradeForm from './TradeForm/TradeForm';\nimport UserOrders from './UserOrders/UserOrders';\nimport UserPositions from './UserPositions/UserPositions';\nimport UserBalances from './UserBalances/UserBalances';\n\n// Define the available view types\ntype ViewType =\n | 'orderbook'\n | 'tradeform'\n | 'orders'\n | 'positions'\n | 'balances'\n | 'history';\n\nexport default function NordTradingView() {\n const { sessionMode, nord, nordUser } = useN1WalletContext();\n const [selectedMarket, setSelectedMarket] = useState<{symbol: string; id: number} | null>(null);\n const [activeView, setActiveView] = useState<ViewType>('orderbook');\n\n // Early return if not in Nord session mode or if Nord/NordUser is not available\n if (sessionMode !== N1SessionMode.Nord || !nord || !nordUser) {\n return null;\n }\n\n // Set default selected market if not already set and markets are available\n useEffect(() => {\n if (!selectedMarket && nord.markets?.length > 0) {\n const defaultMarket = nord.markets[0];\n setSelectedMarket({\n symbol: defaultMarket.symbol,\n id: defaultMarket.marketId\n });\n }\n }, [nord.markets, selectedMarket]);\n\n // Render the active view component\n const renderActiveView = () => {\n if (!selectedMarket) return null;\n \n switch (activeView) {\n case 'orderbook':\n return <OrderBook marketSymbol={selectedMarket.symbol} marketId={selectedMarket.id} />;\n case 'tradeform':\n return <TradeForm marketSymbol={selectedMarket.symbol} marketId={selectedMarket.id} />;\n case 'orders':\n return <UserOrders />;\n case 'positions':\n return (\n <div className=\"space-y-4\">\n <UserPositions />\n <UserBalances />\n </div>\n );\n case 'balances':\n return <UserBalances />;\n default:\n return selectedMarket ? (\n <OrderBook marketSymbol={selectedMarket.symbol} marketId={selectedMarket.id} />\n ) : null;\n }\n };\n\n // Map view types to display names\n const viewLabels: Record<ViewType, string> = {\n orderbook: 'Order Book',\n tradeform: 'Trade',\n positions: 'Positions',\n orders: 'Orders',\n balances: 'Balances',\n history: 'History',\n };\n\n return (\n <div className=\"space-y-4 @container\">\n <div className=\"flex flex-col @md:flex-row justify-between items-start @md:items-center bg-transparent mb-3 gap-3 @md:gap-0\">\n <div className=\"flex justify-start gap-2 flex-wrap w-full @md:w-auto\">\n {['orderbook', 'tradeform', 'positions', 'orders'].map((view) => (\n <button\n key={view}\n onClick={() => setActiveView(view as ViewType)}\n className={`\n relative px-4 @md:px-5 py-2 text-sm font-medium tracking-wide transition-all duration-150 \n border ${\n activeView === view\n ? 'border-n1-ww-main/80 text-n1-ww-main bg-n1-ww-main/[0.03] shadow-[0_0_0_1px_rgba(255,68,26,0.1)]'\n : 'border-n1-ww-gray-200 dark:border-n1-ww-gray-800 text-n1-ww-gray-500 dark:text-n1-ww-gray-400 hover:border-n1-ww-gray-300 dark:hover:border-n1-ww-gray-700'\n }\n first:ml-0 last:mr-0 group rounded-[2px] overflow-hidden flex-grow @md:flex-grow-0\n `}\n >\n <span className=\"relative z-10\">\n {viewLabels[view as ViewType]}\n </span>\n <span\n className={`\n absolute inset-0 bg-n1-ww-main/[0.02] opacity-0 transition-opacity duration-150\n ${activeView !== view ? 'group-hover:opacity-100' : ''}\n `}\n />\n </button>\n ))}\n </div>\n\n <div className=\"min-w-[160px] w-full @md:w-auto border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 rounded-[2px] overflow-visible hover:border-n1-ww-gray-300 dark:hover:border-n1-ww-gray-700 transition-colors duration-150 relative z-20\">\n <div className=\"px-5 py-2 text-sm\">\n <MarketOverview\n selectedMarketSymbol={selectedMarket?.symbol || null}\n selectedMarketId={selectedMarket?.id || null}\n onMarketChange={(symbol: string) => {\n const market = nord.markets?.find(m => m.symbol === symbol);\n if (market) {\n setSelectedMarket({\n symbol: market.symbol,\n id: market.marketId\n });\n }\n }}\n />\n </div>\n </div>\n </div>\n\n <div className=\"border border-n1-ww-gray-200 dark:border-n1-ww-gray-800 rounded-[3px] shadow-sm bg-white dark:bg-n1-ww-gray-950\">\n {renderActiveView()}\n </div>\n </div>\n );\n}\n*/\n\n// Temporary replacement component to prevent import errors\nexport default function NordTradingView() {\n return (\n <div className=\"p-4 bg-yellow-50 dark:bg-yellow-900/20 rounded-xl text-yellow-600 dark:text-yellow-400 text-center\">\n <h3 className=\"font-semibold mb-2\">Nord Trading View Deprecated</h3>\n <p className=\"text-sm\">The Nord Trading View has been temporarily disabled due to technical issues.</p>\n </div>\n );\n}\n"]}
|