@n1xyz/wallet-widget 0.0.22 → 0.0.25

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.
Files changed (39) hide show
  1. package/dist/Modal/NordFlow/context/DepositContext.js +7 -3
  2. package/dist/Modal/NordFlow/context/DepositContext.js.map +1 -1
  3. package/dist/Modal/NordFlow/context/WalletConnectContext.js +4 -3
  4. package/dist/Modal/NordFlow/context/WalletConnectContext.js.map +1 -1
  5. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +19 -14
  6. package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -1
  7. package/dist/Modal/Sidebar/N1Sidebar.js +6 -2
  8. package/dist/Modal/Sidebar/N1Sidebar.js.map +1 -1
  9. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.d.ts +7 -2
  10. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js +11 -8
  11. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketOverview.js.map +1 -1
  12. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.d.ts +2 -2
  13. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +3 -3
  14. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +1 -1
  15. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.d.ts +4 -0
  16. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +4 -0
  17. package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +1 -1
  18. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.d.ts +1 -1
  19. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +129 -41
  20. package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +1 -1
  21. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.d.ts +0 -5
  22. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +234 -195
  23. package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +1 -1
  24. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.d.ts +6 -1
  25. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +11 -7
  26. package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +1 -1
  27. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.d.ts +4 -0
  28. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +4 -0
  29. package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +1 -1
  30. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.d.ts +0 -1
  31. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +271 -189
  32. package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +1 -1
  33. package/dist/Provider/hooks/useNordUserInitialization.js +7 -4
  34. package/dist/Provider/hooks/useNordUserInitialization.js.map +1 -1
  35. package/dist/embedded-main-css.d.ts +1 -1
  36. package/dist/embedded-main-css.js +1 -1
  37. package/dist/embedded-main-css.js.map +1 -1
  38. package/dist/main.css +1 -1
  39. package/package.json +2 -3
@@ -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 selectedMarket = _a.selectedMarket, onMarketChange = _a.onMarketChange, _b = _a.className, className = _b === void 0 ? '' : _b;
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 (!selectedMarket || !nord)
54
+ if (!selectedMarketId || !nord)
51
55
  return;
52
56
  var fetchMarketStats = function () { return __awaiter(_this, void 0, void 0, function () {
53
- var stats, selectedStats, err_1;
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
- selectedStats = stats.markets.find(function (m) { return m.symbol === selectedMarket; });
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
- }, [selectedMarket, nord]);
85
- return (_jsx("div", { className: "".concat(className), children: _jsx(MarketSelector, { selectedMarket: selectedMarket, onMarketChange: onMarketChange }) }));
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;AAQ9D,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAIjB;IAJtB,iBAgDC;QA/CC,cAAc,oBAAA,EACd,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,cAAc,IAAI,CAAC,IAAI;YAAE,OAAO;QAErC,IAAM,gBAAgB,GAAG;;;;;wBACvB,UAAU,CAAC,IAAI,CAAC,CAAC;wBACjB,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;wBAGC,qBAAM,IAAI,CAAC,cAAc,EAAE,EAAA;;wBAAnC,KAAK,GAAG,SAA2B;wBACnC,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CACtC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,MAAM,KAAK,cAAc,EAA3B,CAA2B,CACxC,CAAC;wBACF,cAAc,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;;;;wBAEtC,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,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;IAE3B,OAAO,CACL,cAAK,SAAS,EAAE,UAAG,SAAS,CAAE,YAC5B,KAAC,cAAc,IACb,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,GAC9B,GACE,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { useEffect, useState } from 'react';\nimport { useN1WalletContext } from '../../../../Provider/hooks';\nimport MarketSelector from '../MarketOverview/MarketSelector';\n\ninterface MarketOverviewProps {\n selectedMarket: string | null;\n onMarketChange: (market: string) => void;\n className?: string;\n}\n\nexport default function MarketOverview({\n selectedMarket,\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 (!selectedMarket || !nord) return;\n\n const fetchMarketStats = async () => {\n setLoading(true);\n setError(null);\n\n try {\n const stats = await nord.getMarketStats();\n const selectedStats = stats.markets.find(\n (m: any) => m.symbol === selectedMarket\n );\n setMarketStats(selectedStats || 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 }, [selectedMarket, nord]);\n\n return (\n <div className={`${className}`}>\n <MarketSelector\n selectedMarket={selectedMarket}\n onMarketChange={onMarketChange}\n />\n </div>\n );\n}\n"]}
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
- selectedMarket: string | null;
2
+ selectedMarketSymbol: string | null;
3
3
  onMarketChange: (market: string) => void;
4
4
  }
5
- export default function MarketSelector({ selectedMarket, onMarketChange, }: MarketSelectorProps): JSX.Element;
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 selectedMarket = _a.selectedMarket, onMarketChange = _a.onMarketChange;
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: selectedMarket || '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 () {
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(selectedMarket === market.symbol
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":"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","sourcesContent":["import { useState, useEffect, useRef } from 'react';\nimport { useN1WalletContext } from '../../../../Provider/hooks';\nimport { ChevronDown, Search, X } from 'lucide-react';\n\ninterface MarketSelectorProps {\n selectedMarket: string | null;\n onMarketChange: (market: string) => void;\n}\n\nexport default function MarketSelector({\n selectedMarket,\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\">{selectedMarket || '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 selectedMarket === 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
+ {"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,3 +1,7 @@
1
+ /**
2
+ * @deprecated This component is deprecated due to technical issues.
3
+ * Please refer to DEPRECATED.md for more information.
4
+ */
1
5
  interface MarketStatsProps {
2
6
  marketStats: any;
3
7
  loading: boolean;
@@ -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":["import { 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
+ {"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 | null;
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
- var _a = useN1WalletContext(), sessionMode = _a.sessionMode, nord = _a.nord, nordUser = _a.nordUser;
13
- var _b = useState(null), selectedMarket = _b[0], setSelectedMarket = _b[1];
14
- var _c = useState('orderbook'), activeView = _c[0], setActiveView = _c[1];
15
- // Early return if not in Nord session mode or if Nord/NordUser is not available
16
- if (sessionMode !== N1SessionMode.Nord || !nord || !nordUser) {
17
- return null;
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
- // Set default selected market if not already set and markets are available
20
- useEffect(function () {
21
- if (!selectedMarket && nord.markets && nord.markets.length > 0) {
22
- setSelectedMarket(nord.markets[0].symbol);
23
- }
24
- }, [nord.markets, selectedMarket]);
25
- // Render the active view component
26
- var renderActiveView = function () {
27
- switch (activeView) {
28
- case 'orderbook':
29
- return _jsx(OrderBook, { marketSymbol: selectedMarket });
30
- case 'tradeform':
31
- return _jsx(TradeForm, { marketSymbol: selectedMarket });
32
- case 'orders':
33
- return _jsx(UserOrders, {});
34
- case 'positions':
35
- return (_jsxs("div", { className: "space-y-4", children: [_jsx(UserPositions, {}), _jsx(UserBalances, {})] }));
36
- case 'balances':
37
- return _jsx(UserBalances, {});
38
- default:
39
- return _jsx(OrderBook, { marketSymbol: selectedMarket });
40
- }
41
- };
42
- // Map view types to display names
43
- var viewLabels = {
44
- orderbook: 'Order Book',
45
- tradeform: 'Trade',
46
- positions: 'Positions',
47
- orders: 'Orders',
48
- balances: 'Balances',
49
- history: 'History',
50
- };
51
- return (_jsxs("div", { className: "space-y-4 @container", children: [_jsxs("div", { className: "flex flex-col @md:flex-row justify-between items-start @md:items-center bg-transparent mb-3 gap-3 @md:gap-0", children: [_jsx("div", { className: "flex justify-start gap-2 flex-wrap w-full @md:w-auto", children: ['orderbook', 'tradeform', 'positions', 'orders'].map(function (view) { return (_jsxs("button", { onClick: function () { return setActiveView(view); }, className: "\n relative px-4 @md:px-5 py-2 text-sm font-medium tracking-wide transition-all duration-150 \n border ".concat(activeView === view
52
- ? '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)]'
53
- : '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 first:ml-0 last:mr-0 group rounded-[2px] overflow-hidden flex-grow @md:flex-grow-0\n "), children: [_jsx("span", { className: "relative z-10", children: viewLabels[view] }), _jsx("span", { className: "\n absolute inset-0 bg-n1-ww-main/[0.02] opacity-0 transition-opacity duration-150\n ".concat(activeView !== view ? 'group-hover:opacity-100' : '', "\n ") })] }, view)); }) }), _jsx("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", children: _jsx("div", { className: "px-5 py-2 text-sm", children: _jsx(MarketOverview, { selectedMarket: selectedMarket, onMarketChange: setSelectedMarket }) }) })] }), _jsx("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", children: renderActiveView() })] }));
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,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,SAAS,MAAM,uBAAuB,CAAC;AAC9C,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,YAAY,MAAM,6BAA6B,CAAC;AAWvD,MAAM,CAAC,OAAO,UAAU,eAAe;IAC/B,IAAA,KAAkC,kBAAkB,EAAE,EAApD,WAAW,iBAAA,EAAE,IAAI,UAAA,EAAE,QAAQ,cAAyB,CAAC;IACvD,IAAA,KAAsC,QAAQ,CAAgB,IAAI,CAAC,EAAlE,cAAc,QAAA,EAAE,iBAAiB,QAAiC,CAAC;IACpE,IAAA,KAA8B,QAAQ,CAAW,WAAW,CAAC,EAA5D,UAAU,QAAA,EAAE,aAAa,QAAmC,CAAC;IAEpE,gFAAgF;IAChF,IAAI,WAAW,KAAK,aAAa,CAAC,IAAI,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC7D,OAAO,IAAI,CAAC;IACd,CAAC;IAED,2EAA2E;IAC3E,SAAS,CAAC;QACR,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/D,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC;IAEnC,mCAAmC;IACnC,IAAM,gBAAgB,GAAG;QACvB,QAAQ,UAAU,EAAE,CAAC;YACnB,KAAK,WAAW;gBACd,OAAO,KAAC,SAAS,IAAC,YAAY,EAAE,cAAc,GAAI,CAAC;YACrD,KAAK,WAAW;gBACd,OAAO,KAAC,SAAS,IAAC,YAAY,EAAE,cAAc,GAAI,CAAC;YACrD,KAAK,QAAQ;gBACX,OAAO,KAAC,UAAU,KAAG,CAAC;YACxB,KAAK,WAAW;gBACd,OAAO,CACL,eAAK,SAAS,EAAC,WAAW,aACxB,KAAC,aAAa,KAAG,EACjB,KAAC,YAAY,KAAG,IACZ,CACP,CAAC;YACJ,KAAK,UAAU;gBACb,OAAO,KAAC,YAAY,KAAG,CAAC;YAC1B;gBACE,OAAO,KAAC,SAAS,IAAC,YAAY,EAAE,cAAc,GAAI,CAAC;QACvD,CAAC;IACH,CAAC,CAAC;IAEF,kCAAkC;IAClC,IAAM,UAAU,GAA6B;QAC3C,SAAS,EAAE,YAAY;QACvB,SAAS,EAAE,OAAO;QAClB,SAAS,EAAE,WAAW;QACtB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,UAAU;QACpB,OAAO,EAAE,SAAS;KACnB,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aAEnC,eAAK,SAAS,EAAC,6GAA6G,aAE1H,cAAK,SAAS,EAAC,sDAAsD,YAClE,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,CAC/D,kBAEE,OAAO,EAAE,cAAM,OAAA,aAAa,CAAC,IAAgB,CAAC,EAA/B,CAA+B,EAC9C,SAAS,EAAE,+IAGP,UAAU,KAAK,IAAI;gCACjB,CAAC,CAAC,kGAAkG;gCACpG,CAAC,CAAC,4JAA4J,yHAGnK,aAED,eAAM,SAAS,EAAC,eAAe,YAC5B,UAAU,CAAC,IAAgB,CAAC,GACxB,EACP,eACE,SAAS,EAAE,iIAEP,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,EAAE,uBACvD,GACD,KApBG,IAAI,CAqBF,CACV,EAxBgE,CAwBhE,CAAC,GACE,EAGN,cAAK,SAAS,EAAC,kOAAkO,YAC/O,cAAK,SAAS,EAAC,mBAAmB,YAChC,KAAC,cAAc,IACb,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,iBAAiB,GACjC,GACE,GACF,IACF,EAGN,cAAK,SAAS,EAAC,iHAAiH,YAC7H,gBAAgB,EAAE,GACf,IACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["import { 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<string | 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 && nord.markets.length > 0) {\n setSelectedMarket(nord.markets[0].symbol);\n }\n }, [nord.markets, selectedMarket]);\n\n // Render the active view component\n const renderActiveView = () => {\n switch (activeView) {\n case 'orderbook':\n return <OrderBook marketSymbol={selectedMarket} />;\n case 'tradeform':\n return <TradeForm marketSymbol={selectedMarket} />;\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 <OrderBook marketSymbol={selectedMarket} />;\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 {/* Navigation Bar - Combined Menu and Market Overview */}\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 {/* View Selector Tabs - Redesigned */}\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 {/* Market Overview - Styled to match the menu */}\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 selectedMarket={selectedMarket}\n onMarketChange={setSelectedMarket}\n />\n </div>\n </div>\n </div>\n\n {/* Active View */}\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"]}
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"]}
@@ -1,5 +0,0 @@
1
- interface OrderBookProps {
2
- marketSymbol: string | null;
3
- }
4
- export default function OrderBook({ marketSymbol }: OrderBookProps): JSX.Element;
5
- export {};