@n1xyz/wallet-widget 0.0.9 → 0.0.11
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/Logic/transactionManager.d.ts +1 -1
- package/dist/Logic/transactionManager.js +1 -1
- package/dist/Logic/transactionManager.js.map +1 -1
- package/dist/Modal/LoadingFallback.js +1 -1
- package/dist/Modal/LoadingFallback.js.map +1 -1
- package/dist/Modal/NTSFlow/LoadingFallback.js +1 -1
- package/dist/Modal/NTSFlow/LoadingFallback.js.map +1 -1
- package/dist/Modal/NTSFlow/components/BackButton.js +2 -2
- package/dist/Modal/NTSFlow/components/BackButton.js.map +1 -1
- package/dist/Modal/NTSFlow/components/ModalHeader.js +1 -1
- package/dist/Modal/NTSFlow/components/ModalHeader.js.map +1 -1
- package/dist/Modal/NTSFlow/views/ConnectView.js +2 -2
- package/dist/Modal/NTSFlow/views/ConnectView.js.map +1 -1
- package/dist/Modal/NTSFlow/views/CreateSessionView.js +5 -5
- package/dist/Modal/NTSFlow/views/CreateSessionView.js.map +1 -1
- package/dist/Modal/NTSFlow/views/CreateUserView.js +1 -1
- package/dist/Modal/NTSFlow/views/CreateUserView.js.map +1 -1
- package/dist/Modal/NTSFlow/views/NoWhitelistView.js +3 -3
- package/dist/Modal/NTSFlow/views/NoWhitelistView.js.map +1 -1
- package/dist/Modal/NTSFlow/views/SigningView.js +1 -1
- package/dist/Modal/NTSFlow/views/SigningView.js.map +1 -1
- package/dist/Modal/NordFlow/NordFlow.js +22 -228
- package/dist/Modal/NordFlow/NordFlow.js.map +1 -1
- package/dist/Modal/NordFlow/components/ChainButton.js +5 -5
- package/dist/Modal/NordFlow/components/ChainButton.js.map +1 -1
- package/dist/Modal/NordFlow/components/EVMChainsButton.js +4 -4
- package/dist/Modal/NordFlow/components/EVMChainsButton.js.map +1 -1
- package/dist/Modal/NordFlow/components/Header.d.ts +10 -0
- package/dist/Modal/NordFlow/components/Header.js +11 -0
- package/dist/Modal/NordFlow/components/Header.js.map +1 -0
- package/dist/Modal/NordFlow/components/ImageWithFallback.js +1 -1
- package/dist/Modal/NordFlow/components/ImageWithFallback.js.map +1 -1
- package/dist/Modal/NordFlow/components/LoadingSquares.js +1 -1
- package/dist/Modal/NordFlow/components/LoadingSquares.js.map +1 -1
- package/dist/Modal/NordFlow/components/MoreButton.js +4 -4
- package/dist/Modal/NordFlow/components/MoreButton.js.map +1 -1
- package/dist/Modal/NordFlow/components/TransactionTable.js +7 -10
- package/dist/Modal/NordFlow/components/TransactionTable.js.map +1 -1
- package/dist/Modal/NordFlow/components/WaitingMessage.js +1 -1
- package/dist/Modal/NordFlow/components/WaitingMessage.js.map +1 -1
- package/dist/Modal/NordFlow/components/index.d.ts +1 -0
- package/dist/Modal/NordFlow/components/index.js +1 -0
- package/dist/Modal/NordFlow/components/index.js.map +1 -1
- package/dist/Modal/NordFlow/constants.js +116 -95
- package/dist/Modal/NordFlow/constants.js.map +1 -1
- package/dist/Modal/NordFlow/context/DepositContext.d.ts +27 -0
- package/dist/Modal/NordFlow/context/DepositContext.js +308 -0
- package/dist/Modal/NordFlow/context/DepositContext.js.map +1 -0
- package/dist/Modal/NordFlow/context/FlowContext.d.ts +23 -0
- package/dist/Modal/NordFlow/context/FlowContext.js +125 -0
- package/dist/Modal/NordFlow/context/FlowContext.js.map +1 -0
- package/dist/Modal/NordFlow/context/NordProvider.d.ts +10 -0
- package/dist/Modal/NordFlow/context/NordProvider.js +14 -0
- package/dist/Modal/NordFlow/context/NordProvider.js.map +1 -0
- package/dist/Modal/NordFlow/context/WalletConnectContext.d.ts +20 -0
- package/dist/Modal/NordFlow/context/WalletConnectContext.js +214 -0
- package/dist/Modal/NordFlow/context/WalletConnectContext.js.map +1 -0
- package/dist/Modal/NordFlow/context/deposit/types.d.ts +26 -0
- package/dist/Modal/NordFlow/context/deposit/types.js +2 -0
- package/dist/Modal/NordFlow/context/deposit/types.js.map +1 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositAuth.d.ts +7 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js +113 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositAuth.js.map +1 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.d.ts +20 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js +235 -0
- package/dist/Modal/NordFlow/context/deposit/useDepositTransaction.js.map +1 -0
- package/dist/Modal/NordFlow/context/index.d.ts +5 -0
- package/dist/Modal/NordFlow/context/index.js +8 -0
- package/dist/Modal/NordFlow/context/index.js.map +1 -0
- package/dist/Modal/NordFlow/hooks/index.d.ts +3 -5
- package/dist/Modal/NordFlow/hooks/index.js +3 -5
- package/dist/Modal/NordFlow/hooks/index.js.map +1 -1
- package/dist/Modal/NordFlow/hooks/useDepositFlow.js +2 -4
- package/dist/Modal/NordFlow/hooks/useDepositFlow.js.map +1 -1
- package/dist/Modal/NordFlow/hooks/useNordInstance.d.ts +0 -6
- package/dist/Modal/NordFlow/hooks/useNordInstance.js +2 -358
- package/dist/Modal/NordFlow/hooks/useNordInstance.js.map +1 -1
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.d.ts +0 -1
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js +0 -1
- package/dist/Modal/NordFlow/hooks/useNordWalletConnect.js.map +1 -1
- package/dist/Modal/NordFlow/screens/00-IdleScreen.d.ts +6 -0
- package/dist/Modal/NordFlow/screens/00-IdleScreen.js +9 -0
- package/dist/Modal/NordFlow/screens/00-IdleScreen.js.map +1 -0
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.d.ts +1 -6
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js +12 -6
- package/dist/Modal/NordFlow/screens/01-ConnectWalletScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.d.ts +1 -5
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js +13 -16
- package/dist/Modal/NordFlow/screens/02-EvmWalletAuthScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.d.ts +1 -7
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js +11 -9
- package/dist/Modal/NordFlow/screens/03-ChainSelectionScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.d.ts +1 -13
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js +59 -31
- package/dist/Modal/NordFlow/screens/04-AmountInputScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.d.ts +1 -6
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js +9 -4
- package/dist/Modal/NordFlow/screens/05-DepositProgressScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.d.ts +1 -8
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js +18 -7
- package/dist/Modal/NordFlow/screens/06-DepositSuccessScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.d.ts +1 -6
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js +15 -121
- package/dist/Modal/NordFlow/screens/07-AuthLoadingScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.d.ts +1 -1
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js +10 -5
- package/dist/Modal/NordFlow/screens/08-FinalSuccessScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.d.ts +1 -7
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.js +9 -9
- package/dist/Modal/NordFlow/screens/09-ErrorScreen.js.map +1 -1
- package/dist/Modal/NordFlow/screens/index.d.ts +1 -0
- package/dist/Modal/NordFlow/screens/index.js +1 -0
- package/dist/Modal/NordFlow/screens/index.js.map +1 -1
- package/dist/Modal/NordFlow/types.d.ts +0 -5
- package/dist/Modal/NordFlow/types.js +0 -1
- package/dist/Modal/NordFlow/types.js.map +1 -1
- package/dist/Modal/NordFlow/utils/index.d.ts +0 -1
- package/dist/Modal/NordFlow/utils/index.js +0 -1
- package/dist/Modal/NordFlow/utils/index.js.map +1 -1
- package/dist/Modal/Sidebar/N1Sidebar.js +10 -10
- package/dist/Modal/Sidebar/N1Sidebar.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js +5 -5
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketSelector.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js +3 -3
- package/dist/Modal/Sidebar/NordTradingView/MarketOverview/MarketStats.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js +2 -2
- package/dist/Modal/Sidebar/NordTradingView/NordTradingView.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js +2 -2
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBook.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookDepthVisualizer.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js +4 -4
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookHeader.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js +6 -6
- package/dist/Modal/Sidebar/NordTradingView/OrderBook/OrderBookTable.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/AmountInput.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js +3 -3
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/BuySellTabs.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js +7 -7
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/FillModeSelector.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js +13 -13
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/OrderTypeSelector.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/PriceInput.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js +2 -2
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/SubmitButton.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TotalCalculator.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js +5 -5
- package/dist/Modal/Sidebar/NordTradingView/TradeForm/TradeForm.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js +1 -1
- package/dist/Modal/Sidebar/NordTradingView/UserBalances/UserBalances.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js +5 -5
- package/dist/Modal/Sidebar/NordTradingView/UserOrders/UserOrders.js.map +1 -1
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js +4 -4
- package/dist/Modal/Sidebar/NordTradingView/UserPositions/UserPositions.js.map +1 -1
- package/dist/Provider/LazyWalletProvider.js +2 -0
- package/dist/Provider/LazyWalletProvider.js.map +1 -1
- package/dist/Provider/N1WalletProvider.js +48 -63
- package/dist/Provider/N1WalletProvider.js.map +1 -1
- package/dist/Provider/WalletErrorBoundary.d.ts +10 -0
- package/dist/Provider/WalletErrorBoundary.js +39 -0
- package/dist/Provider/WalletErrorBoundary.js.map +1 -0
- package/dist/Provider/hooks/useNordUserInitialization.d.ts +20 -0
- package/dist/Provider/hooks/useNordUserInitialization.js +293 -0
- package/dist/Provider/hooks/useNordUserInitialization.js.map +1 -0
- package/dist/Provider/types.d.ts +2 -0
- package/dist/Provider/types.js.map +1 -1
- package/dist/Provider/useN1WalletProvider.d.ts +37 -0
- package/dist/Provider/useN1WalletProvider.js +398 -0
- package/dist/Provider/useN1WalletProvider.js.map +1 -0
- package/dist/components/QRCodeLoader.js +1 -1
- package/dist/components/QRCodeLoader.js.map +1 -1
- package/dist/components/logos/EVMChainsGroup.js +1 -1
- package/dist/components/logos/EVMChainsGroup.js.map +1 -1
- package/dist/components/logos/MoreChainsGroup.js +1 -1
- package/dist/components/logos/MoreChainsGroup.js.map +1 -1
- package/dist/main.css +1 -1
- package/package.json +1 -1
|
@@ -1,50 +1,9 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
11
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
12
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
13
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
14
|
-
function step(op) {
|
|
15
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
16
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
17
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
18
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
19
|
-
switch (op[0]) {
|
|
20
|
-
case 0: case 1: t = op; break;
|
|
21
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
22
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
23
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
24
|
-
default:
|
|
25
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
26
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
27
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
28
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
29
|
-
if (t[2]) _.ops.pop();
|
|
30
|
-
_.trys.pop(); continue;
|
|
31
|
-
}
|
|
32
|
-
op = body.call(thisArg, _);
|
|
33
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
34
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
35
|
-
}
|
|
36
|
-
};
|
|
37
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
38
|
-
import
|
|
39
|
-
import
|
|
40
|
-
import { useN1WalletContext, useN1WalletInternalContext, } from '../../Provider/hooks';
|
|
41
|
-
import { logger } from '../../utils/logger';
|
|
42
|
-
import { CHAINS } from './constants';
|
|
2
|
+
import { Header } from './components';
|
|
3
|
+
import { useFlowStateContext } from './context';
|
|
43
4
|
import { withImageFallback } from './hoc';
|
|
44
|
-
import {
|
|
45
|
-
import { AmountInputScreen, AuthLoadingScreen, ChainSelectionScreen, ConnectWalletScreen, DepositProgressScreen, DepositSuccessScreen, ErrorScreen, EvmWalletAuthScreen, FinalSuccessScreen, } from './screens';
|
|
5
|
+
import { AmountInputScreen, AuthLoadingScreen, ChainSelectionScreen, ConnectWalletScreen, DepositProgressScreen, DepositSuccessScreen, ErrorScreen, EvmWalletAuthScreen, FinalSuccessScreen, IdleScreen, } from './screens';
|
|
46
6
|
import { FlowState } from './types';
|
|
47
|
-
import { getTokenBalance, isNordConfigured } from './utils/nordUtils';
|
|
48
7
|
// Apply the withImageFallback HOC to all screen components
|
|
49
8
|
var EnhancedConnectWalletScreen = withImageFallback(ConnectWalletScreen);
|
|
50
9
|
var EnhancedEvmWalletAuthScreen = withImageFallback(EvmWalletAuthScreen);
|
|
@@ -55,209 +14,44 @@ var EnhancedDepositSuccessScreen = withImageFallback(DepositSuccessScreen);
|
|
|
55
14
|
var EnhancedAuthLoadingScreen = withImageFallback(AuthLoadingScreen);
|
|
56
15
|
var EnhancedFinalSuccessScreen = withImageFallback(FinalSuccessScreen);
|
|
57
16
|
var EnhancedErrorScreen = withImageFallback(ErrorScreen);
|
|
17
|
+
var EnhancedIdleScreen = withImageFallback(IdleScreen);
|
|
58
18
|
/**
|
|
59
19
|
* Main component for the wallet connection flow
|
|
60
20
|
*/
|
|
61
21
|
export var NordFlow = function (_a) {
|
|
62
22
|
var onClose = _a.onClose;
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
var handleStateChange = useCallback(function (newState, prevState) {
|
|
71
|
-
logger.debug("State changed from ".concat(prevState, " to ").concat(newState));
|
|
72
|
-
}, []);
|
|
73
|
-
// Handle errors
|
|
74
|
-
var handleError = useCallback(function (error) {
|
|
75
|
-
logger.error('Flow error:', error);
|
|
76
|
-
}, []);
|
|
77
|
-
// Initialize flow state
|
|
78
|
-
var _d = useFlowState({
|
|
79
|
-
autoRecover: false, // We'll handle recovery with a prompt
|
|
80
|
-
onStateChange: handleStateChange,
|
|
81
|
-
onError: handleError,
|
|
82
|
-
}), state = _d.state, context = _d.context, transition = _d.transition, updateContext = _d.updateContext, recover = _d.recover, recordInterruption = _d.recordInterruption, handleFlowError = _d.handleError, isRecoveryAvailable = _d.isRecoveryAvailable;
|
|
83
|
-
// Create a wrapped transition function that logs more details
|
|
84
|
-
var enhancedTransition = useCallback(function (newState, contextUpdates) {
|
|
85
|
-
logger.debug("Attempting transition to ".concat(newState), contextUpdates);
|
|
86
|
-
var result = transition(newState, contextUpdates);
|
|
87
|
-
logger.debug("Transition to ".concat(newState, " result:"), result);
|
|
88
|
-
return result;
|
|
89
|
-
}, [transition]);
|
|
90
|
-
// Initialize wallet connection
|
|
91
|
-
var _e = useNordWalletConnect(state, enhancedTransition, // Use enhanced transition instead of regular transition
|
|
92
|
-
context, updateContext, sessionMode || 0), connectWallet = _e.connectWallet, isConnecting = _e.isConnecting;
|
|
93
|
-
// Initialize deposit flow
|
|
94
|
-
var _f = useDepositFlow({
|
|
95
|
-
state: state,
|
|
96
|
-
context: context,
|
|
97
|
-
transition: transition,
|
|
98
|
-
handleError: handleFlowError,
|
|
99
|
-
updateContext: updateContext,
|
|
100
|
-
}), amount = _f.amount, updateAmount = _f.updateAmount, startDeposit = _f.startDeposit, completeDeposit = _f.completeDeposit, getTransactionDetails = _f.getTransactionDetails;
|
|
101
|
-
// Initialize interrupt handler
|
|
102
|
-
var _g = useInterruptHandler({
|
|
103
|
-
state: state,
|
|
104
|
-
recordInterruption: recordInterruption,
|
|
105
|
-
onClose: onClose,
|
|
106
|
-
}), isClosing = _g.isClosing, handleCloseRequest = _g.handleCloseRequest;
|
|
107
|
-
// Check for recovery on mount
|
|
108
|
-
var _h = useState(false), hasAttemptedRecovery = _h[0], setHasAttemptedRecovery = _h[1];
|
|
109
|
-
React.useEffect(function () {
|
|
110
|
-
if (!hasAttemptedRecovery) {
|
|
111
|
-
if (isRecoveryAvailable) {
|
|
112
|
-
// Automatically recover without showing a prompt
|
|
113
|
-
recover();
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
console.log('baababbababababab');
|
|
117
|
-
// Start at CONNECTING_WALLET so we show the wallet selection screen
|
|
118
|
-
// The actual connection will only happen when the user clicks the button
|
|
119
|
-
transition(FlowState.CONNECTING_WALLET);
|
|
120
|
-
}
|
|
121
|
-
setHasAttemptedRecovery(true);
|
|
122
|
-
}
|
|
123
|
-
}, [hasAttemptedRecovery, isRecoveryAvailable, transition, recover]);
|
|
124
|
-
// For deposit progress message
|
|
125
|
-
var depositMessage = {
|
|
126
|
-
visible: true,
|
|
127
|
-
title: 'Processing Deposit',
|
|
128
|
-
subtitle: 'Please wait while we process your deposit',
|
|
129
|
-
isTyping: false,
|
|
130
|
-
};
|
|
131
|
-
var handleFinish = function () {
|
|
132
|
-
if (onClose) {
|
|
133
|
-
onClose();
|
|
134
|
-
}
|
|
135
|
-
};
|
|
136
|
-
// Handle chain selection
|
|
137
|
-
var handleChainSelect = useCallback(function (chainId) {
|
|
138
|
-
logger.debug('Chain selected in NordFlow:', chainId);
|
|
139
|
-
// For testnet, we need to use the network ID
|
|
140
|
-
var selectedChain = chainId;
|
|
141
|
-
logger.debug('Transitioning to AMOUNT_INPUT with chain:', selectedChain);
|
|
142
|
-
enhancedTransition(FlowState.AMOUNT_INPUT, {
|
|
143
|
-
selectedChain: selectedChain,
|
|
144
|
-
});
|
|
145
|
-
}, [enhancedTransition]);
|
|
146
|
-
// Get the USDC balance
|
|
147
|
-
var getUsdcBalance = useCallback(function () {
|
|
148
|
-
// Try to get the balance from nordUser if available
|
|
149
|
-
if (currentNordUser) {
|
|
150
|
-
var usdcBalance = getTokenBalance(currentNordUser, 'USDC');
|
|
151
|
-
if (usdcBalance > 0) {
|
|
152
|
-
return usdcBalance;
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
// Fallback to the first balance from the context or a default value
|
|
156
|
-
return balances && balances.length > 0 ? Number(balances[0].balance) : 100;
|
|
157
|
-
}, [currentNordUser, balances]);
|
|
158
|
-
// Function to refresh balances
|
|
159
|
-
var refreshBalance = useCallback(function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
160
|
-
var userAny, error_1, error_2;
|
|
161
|
-
return __generator(this, function (_a) {
|
|
162
|
-
switch (_a.label) {
|
|
163
|
-
case 0:
|
|
164
|
-
_a.trys.push([0, 6, , 7]);
|
|
165
|
-
logger.debug('Refreshing balance...');
|
|
166
|
-
if (!(currentNordUser && nord && isNordConfigured(nord))) return [3 /*break*/, 5];
|
|
167
|
-
_a.label = 1;
|
|
168
|
-
case 1:
|
|
169
|
-
_a.trys.push([1, 4, , 5]);
|
|
170
|
-
userAny = currentNordUser;
|
|
171
|
-
if (!(userAny && typeof userAny.refreshBalances === 'function')) return [3 /*break*/, 3];
|
|
172
|
-
return [4 /*yield*/, userAny.refreshBalances()];
|
|
173
|
-
case 2:
|
|
174
|
-
_a.sent();
|
|
175
|
-
logger.debug('Balances refreshed using Nord-TS');
|
|
176
|
-
return [2 /*return*/];
|
|
177
|
-
case 3: return [3 /*break*/, 5];
|
|
178
|
-
case 4:
|
|
179
|
-
error_1 = _a.sent();
|
|
180
|
-
logger.warn('Error refreshing balances using Nord-TS, falling back to default method:', error_1);
|
|
181
|
-
return [3 /*break*/, 5];
|
|
182
|
-
case 5:
|
|
183
|
-
logger.debug('Balance refreshed using default method');
|
|
184
|
-
return [3 /*break*/, 7];
|
|
185
|
-
case 6:
|
|
186
|
-
error_2 = _a.sent();
|
|
187
|
-
logger.error('Error refreshing balance:', error_2);
|
|
188
|
-
return [3 /*break*/, 7];
|
|
189
|
-
case 7: return [2 /*return*/];
|
|
190
|
-
}
|
|
191
|
-
});
|
|
192
|
-
}); }, [currentNordUser, nord]);
|
|
193
|
-
// Get available chains from Nord if possible
|
|
194
|
-
var getAvailableChains = useCallback(function () {
|
|
195
|
-
if (nord &&
|
|
196
|
-
isNordConfigured(nord) &&
|
|
197
|
-
nord.markets &&
|
|
198
|
-
nord.markets.length > 0) {
|
|
199
|
-
// Map Nord markets to chains format
|
|
200
|
-
return nord.markets.map(function (market) { return ({
|
|
201
|
-
id: market.marketId.toString(),
|
|
202
|
-
name: market.symbol,
|
|
203
|
-
// Use a placeholder or dynamically generated logo instead of non-existent assets
|
|
204
|
-
logo: market.symbol.toLowerCase(), // Just use the symbol as an identifier
|
|
205
|
-
}); });
|
|
206
|
-
}
|
|
207
|
-
// Fallback to predefined chains
|
|
208
|
-
return CHAINS;
|
|
209
|
-
}, [nord]);
|
|
23
|
+
return (_jsx("div", { className: "z-50 flex items-center justify-center overflow-auto font-era", children: _jsxs("div", { className: "bg-n1-gray-50 dark:bg-n1-gray-950 relative border border-n1-gray-200 dark:border-n1-gray-800 rounded-md transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] w-full max-w-sm m-4 origin-center will-change-[max-width,transform,opacity min-w-96", children: [_jsx(Header, { onClose: onClose }), _jsx("div", { className: "wallet-connection-flow-content p-6 overflow-hidden", children: _jsx(NordFlowScreenRenderer, { onClose: onClose }) })] }) }));
|
|
24
|
+
};
|
|
25
|
+
// Screen renderer component that uses the flow state context
|
|
26
|
+
var NordFlowScreenRenderer = function (_a) {
|
|
27
|
+
var onClose = _a.onClose;
|
|
28
|
+
// Use the flow state context
|
|
29
|
+
var _b = useFlowStateContext(), state = _b.state, isClosing = _b.isClosing;
|
|
210
30
|
// Render the appropriate screen based on the current state
|
|
211
31
|
var renderScreen = function () {
|
|
212
32
|
switch (state) {
|
|
213
33
|
case FlowState.CONNECTING_WALLET:
|
|
214
|
-
return
|
|
34
|
+
return _jsx(EnhancedConnectWalletScreen, {});
|
|
215
35
|
case FlowState.CHAIN_SELECTION:
|
|
216
|
-
|
|
217
|
-
return (_jsx(EnhancedChainSelectionScreen, { chains: availableChains, onChainSelect: handleChainSelect }));
|
|
36
|
+
return _jsx(EnhancedChainSelectionScreen, {});
|
|
218
37
|
case FlowState.ETH_TO_SOL_AUTH:
|
|
219
|
-
return
|
|
38
|
+
return _jsx(EnhancedEvmWalletAuthScreen, {});
|
|
220
39
|
case FlowState.AMOUNT_INPUT:
|
|
221
|
-
return
|
|
40
|
+
return _jsx(EnhancedAmountInputScreen, {});
|
|
222
41
|
case FlowState.DEPOSIT_PROGRESS:
|
|
223
|
-
return _jsx(EnhancedDepositProgressScreen, {
|
|
42
|
+
return _jsx(EnhancedDepositProgressScreen, {});
|
|
224
43
|
case FlowState.DEPOSIT_SUCCESS:
|
|
225
|
-
|
|
226
|
-
var txDetails = getTransactionDetails();
|
|
227
|
-
// Create table values from transaction details
|
|
228
|
-
var updatedTableValues = {
|
|
229
|
-
amount: { text: txDetails.amount, visible: true, typing: false },
|
|
230
|
-
tx: { text: txDetails.tx, visible: true, typing: false },
|
|
231
|
-
from: { text: txDetails.from, visible: true, typing: false },
|
|
232
|
-
to: { text: txDetails.to, visible: true, typing: false },
|
|
233
|
-
network: { text: txDetails.network, visible: true, typing: false },
|
|
234
|
-
status: { text: txDetails.status, visible: true, typing: false },
|
|
235
|
-
};
|
|
236
|
-
return (_jsx(EnhancedDepositSuccessScreen, { amount: amount, tableValues: updatedTableValues, onContinue: completeDeposit }));
|
|
44
|
+
return _jsx(EnhancedDepositSuccessScreen, {});
|
|
237
45
|
case FlowState.AUTH_LOADING:
|
|
238
|
-
return
|
|
239
|
-
if (success) {
|
|
240
|
-
// Update the context first
|
|
241
|
-
updateContext({ hasActiveSession: true });
|
|
242
|
-
// Then transition to success
|
|
243
|
-
transition(FlowState.FINAL_SUCCESS, { hasActiveSession: true });
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
// Handle auth failure
|
|
247
|
-
handleFlowError(new Error('Authentication failed'));
|
|
248
|
-
}
|
|
249
|
-
} }));
|
|
46
|
+
return _jsx(EnhancedAuthLoadingScreen, {});
|
|
250
47
|
case FlowState.FINAL_SUCCESS:
|
|
251
|
-
return _jsx(EnhancedFinalSuccessScreen, { onDone:
|
|
48
|
+
return _jsx(EnhancedFinalSuccessScreen, { onDone: onClose || (function () { }) });
|
|
252
49
|
case FlowState.ERROR:
|
|
253
|
-
return
|
|
254
|
-
// Logic to go back to appropriate state based on error
|
|
255
|
-
transition(FlowState.CONNECTING_WALLET);
|
|
256
|
-
}, onCancel: handleFinish }));
|
|
50
|
+
return _jsx(EnhancedErrorScreen, {});
|
|
257
51
|
default:
|
|
258
|
-
return
|
|
52
|
+
return _jsx(EnhancedIdleScreen, {});
|
|
259
53
|
}
|
|
260
54
|
};
|
|
261
|
-
return (_jsx("div", { className:
|
|
55
|
+
return (_jsx("div", { className: isClosing ? 'n1-animate-fade-out' : 'n1-animate-fade-in', children: renderScreen() }));
|
|
262
56
|
};
|
|
263
57
|
//# sourceMappingURL=NordFlow.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NordFlow.js","sourceRoot":"","sources":["../../../src/Modal/NordFlow/NordFlow.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACrD,OAAO,IAAI,MAAM,uBAAuB,CAAC;AACzC,OAAO,EACL,kBAAkB,EAClB,0BAA0B,GAC3B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EACL,cAAc,EACd,YAAY,EACZ,mBAAmB,EACnB,eAAe,EACf,oBAAoB,GACrB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAe,SAAS,EAAE,MAAM,SAAS,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAatE,2DAA2D;AAC3D,IAAM,2BAA2B,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AAC3E,IAAM,2BAA2B,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;AAC3E,IAAM,4BAA4B,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AAC7E,IAAM,yBAAyB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AACvE,IAAM,6BAA6B,GAAG,iBAAiB,CAAC,qBAAqB,CAAC,CAAC;AAC/E,IAAM,4BAA4B,GAAG,iBAAiB,CAAC,oBAAoB,CAAC,CAAC;AAC7E,IAAM,yBAAyB,GAAG,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;AACvE,IAAM,0BAA0B,GAAG,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;AACzE,IAAM,mBAAmB,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;AAE3D;;GAEG;AACH,MAAM,CAAC,IAAM,QAAQ,GAA4B,UAAC,EAAW;QAAT,OAAO,aAAA;IACzD,gCAAgC;IAC1B,IAAA,KAA6B,0BAA0B,EAAE,EAAvD,WAAW,iBAAA,EAAE,SAAS,eAAiC,CAAC;IAC1D,IAAA,KAA+B,kBAAkB,EAAE,EAAjD,QAAQ,cAAA,EAAE,IAAI,UAAA,EAAE,QAAQ,cAAyB,CAAC;IAClD,IAAU,gBAAgB,GAAK,eAAe,EAAE,SAAtB,CAAuB;IAEzD,8EAA8E;IAC9E,IAAM,eAAe,GAAG,QAAQ,IAAI,gBAAgB,CAAC;IAErD,uBAAuB;IACvB,IAAM,iBAAiB,GAAG,WAAW,CACnC,UAAC,QAAmB,EAAE,SAA2B;QAC/C,MAAM,CAAC,KAAK,CAAC,6BAAsB,SAAS,iBAAO,QAAQ,CAAE,CAAC,CAAC;IACjE,CAAC,EACD,EAAE,CACH,CAAC;IAEF,gBAAgB;IAChB,IAAM,WAAW,GAAG,WAAW,CAAC,UAAC,KAAY;QAC3C,MAAM,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,wBAAwB;IAClB,IAAA,KASF,YAAY,CAAC;QACf,WAAW,EAAE,KAAK,EAAE,sCAAsC;QAC1D,aAAa,EAAE,iBAAiB;QAChC,OAAO,EAAE,WAAW;KACrB,CAAC,EAZA,KAAK,WAAA,EACL,OAAO,aAAA,EACP,UAAU,gBAAA,EACV,aAAa,mBAAA,EACb,OAAO,aAAA,EACP,kBAAkB,wBAAA,EACL,eAAe,iBAAA,EAC5B,mBAAmB,yBAKnB,CAAC;IAEH,8DAA8D;IAC9D,IAAM,kBAAkB,GAAG,WAAW,CACpC,UAAC,QAAmB,EAAE,cAAqC;QACzD,MAAM,CAAC,KAAK,CAAC,mCAA4B,QAAQ,CAAE,EAAE,cAAc,CAAC,CAAC;QACrE,IAAM,MAAM,GAAG,UAAU,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;QACpD,MAAM,CAAC,KAAK,CAAC,wBAAiB,QAAQ,aAAU,EAAE,MAAM,CAAC,CAAC;QAC1D,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,+BAA+B;IACzB,IAAA,KAAkC,oBAAoB,CAC1D,KAAK,EACL,kBAAkB,EAAE,wDAAwD;IAC5E,OAAO,EACP,aAAa,EACb,WAAW,IAAI,CAAC,CACjB,EANO,aAAa,mBAAA,EAAE,YAAY,kBAMlC,CAAC;IAEF,0BAA0B;IACpB,IAAA,KAMF,cAAc,CAAC;QACjB,KAAK,OAAA;QACL,OAAO,SAAA;QACP,UAAU,YAAA;QACV,WAAW,EAAE,eAAe;QAC5B,aAAa,eAAA;KACd,CAAC,EAXA,MAAM,YAAA,EACN,YAAY,kBAAA,EACZ,YAAY,kBAAA,EACZ,eAAe,qBAAA,EACf,qBAAqB,2BAOrB,CAAC;IAEH,+BAA+B;IACzB,IAAA,KAAoC,mBAAmB,CAAC;QAC5D,KAAK,OAAA;QACL,kBAAkB,oBAAA;QAClB,OAAO,SAAA;KACR,CAAC,EAJM,SAAS,eAAA,EAAE,kBAAkB,wBAInC,CAAC;IAEH,8BAA8B;IACxB,IAAA,KAAkD,QAAQ,CAAC,KAAK,CAAC,EAAhE,oBAAoB,QAAA,EAAE,uBAAuB,QAAmB,CAAC;IAExE,KAAK,CAAC,SAAS,CAAC;QACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC1B,IAAI,mBAAmB,EAAE,CAAC;gBACxB,iDAAiD;gBACjD,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;gBAChC,oEAAoE;gBACpE,yEAAyE;gBACzE,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;YAC1C,CAAC;YACD,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;IACH,CAAC,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IAErE,+BAA+B;IAC/B,IAAM,cAAc,GAAG;QACrB,OAAO,EAAE,IAAI;QACb,KAAK,EAAE,oBAAoB;QAC3B,QAAQ,EAAE,2CAA2C;QACrD,QAAQ,EAAE,KAAK;KAChB,CAAA;IAED,IAAM,YAAY,GAAG;QACnB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IAEF,yBAAyB;IACzB,IAAM,iBAAiB,GAAG,WAAW,CACnC,UAAC,OAAe;QACd,MAAM,CAAC,KAAK,CAAC,6BAA6B,EAAE,OAAO,CAAC,CAAC;QAErD,6CAA6C;QAC7C,IAAM,aAAa,GAAG,OAAO,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,aAAa,CAAC,CAAC;QAEzE,kBAAkB,CAAC,SAAS,CAAC,YAAY,EAAE;YACzC,aAAa,EAAE,aAAa;SAC7B,CAAC,CAAC;IACL,CAAC,EACD,CAAC,kBAAkB,CAAC,CACrB,CAAC;IAEF,uBAAuB;IACvB,IAAM,cAAc,GAAG,WAAW,CAAC;QACjC,oDAAoD;QACpD,IAAI,eAAe,EAAE,CAAC;YACpB,IAAM,WAAW,GAAG,eAAe,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;YAC7D,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;gBACpB,OAAO,WAAW,CAAC;YACrB,CAAC;QACH,CAAC;QAED,oEAAoE;QACpE,OAAO,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IAC7E,CAAC,EAAE,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC;IAEhC,+BAA+B;IAC/B,IAAM,cAAc,GAAG,WAAW,CAAC;;;;;;oBAE/B,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;yBAGlC,CAAA,eAAe,IAAI,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAA,EAAjD,wBAAiD;;;;oBAK3C,OAAO,GAAG,eAAsB,CAAC;yBACnC,CAAA,OAAO,IAAI,OAAO,OAAO,CAAC,eAAe,KAAK,UAAU,CAAA,EAAxD,wBAAwD;oBAC1D,qBAAM,OAAO,CAAC,eAAe,EAAE,EAAA;;oBAA/B,SAA+B,CAAC;oBAChC,MAAM,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC;oBACjD,sBAAO;;;;oBAGT,MAAM,CAAC,IAAI,CACT,0EAA0E,EAC1E,OAAK,CACN,CAAC;;;oBAIN,MAAM,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;;;;oBAEvD,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,OAAK,CAAC,CAAC;;;;;SAEpD,EAAE,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC,CAAC;IAE5B,6CAA6C;IAC7C,IAAM,kBAAkB,GAAG,WAAW,CAAC;QACrC,IACE,IAAI;YACJ,gBAAgB,CAAC,IAAI,CAAC;YACtB,IAAI,CAAC,OAAO;YACZ,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EACvB,CAAC;YACD,oCAAoC;YACpC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,IAAK,OAAA,CAAC;gBACnC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC9B,IAAI,EAAE,MAAM,CAAC,MAAM;gBACnB,iFAAiF;gBACjF,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,uCAAuC;aAC3E,CAAC,EALkC,CAKlC,CAAC,CAAC;QACN,CAAC;QAED,gCAAgC;QAChC,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,2DAA2D;IAC3D,IAAM,YAAY,GAAG;QACnB,QAAQ,KAAK,EAAE,CAAC;YACd,KAAK,SAAS,CAAC,iBAAiB;gBAC9B,OAAO,CACL,KAAC,2BAA2B,IAC1B,eAAe,EAAE,aAAa,EAC9B,YAAY,EAAE,YAAY,GAC1B,CACH,CAAC;YACJ,KAAK,SAAS,CAAC,eAAe;gBAC5B,IAAM,eAAe,GAAG,kBAAkB,EAAE,CAAC;gBAC7C,OAAO,CACL,KAAC,4BAA4B,IAC3B,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,iBAAiB,GAChC,CACH,CAAC;YACJ,KAAK,SAAS,CAAC,eAAe;gBAC5B,OAAO,CACL,KAAC,2BAA2B,IAC1B,MAAM,EAAE,cAAM,OAAA,UAAU,CAAC,SAAS,CAAC,eAAe,CAAC,EAArC,CAAqC,GACnD,CACH,CAAC;YACJ,KAAK,SAAS,CAAC,YAAY;gBACzB,OAAO,CACL,KAAC,yBAAyB,IACxB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,YAAY,EAC5B,UAAU,EAAE,YAAY,EACxB,OAAO,EAAE,cAAc,EAAE,EACzB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,OAAO,CAAC,YAAY,GAClC,CACH,CAAC;YACJ,KAAK,SAAS,CAAC,gBAAgB;gBAC7B,OAAO,KAAC,6BAA6B,IAAC,OAAO,EAAE,cAAc,GAAI,CAAC;YACpE,KAAK,SAAS,CAAC,eAAe;gBAC5B,gDAAgD;gBAChD,IAAM,SAAS,GAAG,qBAAqB,EAAE,CAAC;gBAC1C,+CAA+C;gBAC/C,IAAM,kBAAkB,GAAG;oBACzB,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;oBAChE,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;oBACxD,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;oBAC5D,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;oBACxD,OAAO,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;oBAClE,MAAM,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;iBACjE,CAAC;gBAEF,OAAO,CACL,KAAC,4BAA4B,IAC3B,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,EAC/B,UAAU,EAAE,eAAe,GAC3B,CACH,CAAC;YACJ,KAAK,SAAS,CAAC,YAAY;gBACzB,OAAO,CACL,KAAC,yBAAyB,IACxB,cAAc,EAAE,UAAC,OAAO;wBACtB,IAAI,OAAO,EAAE,CAAC;4BACZ,2BAA2B;4BAC3B,aAAa,CAAC,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;4BAC1C,6BAA6B;4BAC7B,UAAU,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;wBAClE,CAAC;6BAAM,CAAC;4BACN,sBAAsB;4BACtB,eAAe,CAAC,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;wBACtD,CAAC;oBACH,CAAC,GACD,CACH,CAAC;YACJ,KAAK,SAAS,CAAC,aAAa;gBAC1B,OAAO,KAAC,0BAA0B,IAAC,MAAM,EAAE,YAAY,GAAI,CAAC;YAC9D,KAAK,SAAS,CAAC,KAAK;gBAClB,OAAO,CACL,KAAC,mBAAmB,IAClB,KAAK,EAAE,OAAO,CAAC,KAAK,EACpB,OAAO,EAAE;wBACP,uDAAuD;wBACvD,UAAU,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;oBAC1C,CAAC,EACD,QAAQ,EAAE,YAAY,GACtB,CACH,CAAC;YACJ;gBACE,OAAO,CACL,eAAK,SAAS,EAAC,yDAAyD,aAEtE,eAAK,SAAS,EAAC,oBAAoB,aAEjC,cAAK,SAAS,EAAC,6GAA6G,GAAO,EAGnI,cAAK,SAAS,EAAC,mDAAmD,YAChE,cAAK,SAAS,EAAC,4CAA4C,GAAO,GAC9D,IACF,EAGN,YAAG,SAAS,EAAC,sDAAsD,wBAE/D,IACA,CACP,CAAC;QACN,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,cACE,SAAS,EAAE,uEAAgE,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,iBAAiB,CAAE,YAE/H,eAAK,SAAS,EAAC,8QAA8Q,aAE3R,cAAK,SAAS,EAAC,4EAA4E,YACzF,eAAK,SAAS,EAAC,mCAAmC,aAChD,cAAK,SAAS,EAAC,yBAAyB,YACtC,cAAK,SAAS,EAAC,sBAAsB,YAEnC,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACd,GACF,EACN,iBACE,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,oTAKV,YAED,cACE,SAAS,EAAC,SAAS,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B,YAElC,eACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAC,GAAG,EACf,CAAC,EAAC,sBAAsB,GACxB,GACE,GACC,IACL,GACF,EAGN,cAAK,SAAS,EAAC,oDAAoD,YAChE,YAAY,EAAE,GACX,IACF,GACF,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useCallback, useState } from 'react';\nimport Logo from '../../components/Logo';\nimport {\n useN1WalletContext,\n useN1WalletInternalContext,\n} from '../../Provider/hooks';\nimport { logger } from '../../utils/logger';\nimport { CHAINS } from './constants';\nimport { withImageFallback } from './hoc';\nimport {\n useDepositFlow,\n useFlowState,\n useInterruptHandler,\n useNordInstance,\n useNordWalletConnect,\n} from './hooks';\nimport {\n AmountInputScreen,\n AuthLoadingScreen,\n ChainSelectionScreen,\n ConnectWalletScreen,\n DepositProgressScreen,\n DepositSuccessScreen,\n ErrorScreen,\n EvmWalletAuthScreen,\n FinalSuccessScreen,\n} from './screens';\nimport { FlowContext, FlowState } from './types';\nimport { getTokenBalance, isNordConfigured } from './utils/nordUtils';\n\ninterface NordFlowProps {\n onClose?: () => void;\n}\n\n// Define the Chain type to match what's expected by ChainSelectionScreen\ninterface Chain {\n id: string;\n name: string;\n logo: string;\n}\n\n// Apply the withImageFallback HOC to all screen components\nconst EnhancedConnectWalletScreen = withImageFallback(ConnectWalletScreen);\nconst EnhancedEvmWalletAuthScreen = withImageFallback(EvmWalletAuthScreen);\nconst EnhancedChainSelectionScreen = withImageFallback(ChainSelectionScreen);\nconst EnhancedAmountInputScreen = withImageFallback(AmountInputScreen);\nconst EnhancedDepositProgressScreen = withImageFallback(DepositProgressScreen);\nconst EnhancedDepositSuccessScreen = withImageFallback(DepositSuccessScreen);\nconst EnhancedAuthLoadingScreen = withImageFallback(AuthLoadingScreen);\nconst EnhancedFinalSuccessScreen = withImageFallback(FinalSuccessScreen);\nconst EnhancedErrorScreen = withImageFallback(ErrorScreen);\n\n/**\n * Main component for the wallet connection flow\n */\nexport const NordFlow: React.FC<NordFlowProps> = ({ onClose }) => {\n // Get session mode from context\n const { sessionMode, faucetUrl } = useN1WalletInternalContext();\n const { balances, nord, nordUser } = useN1WalletContext();\n const { nordUser: instanceNordUser } = useNordInstance();\n\n // Use the nordUser from context, falling back to the one from useNordInstance\n const currentNordUser = nordUser || instanceNordUser;\n\n // Handle state changes\n const handleStateChange = useCallback(\n (newState: FlowState, prevState: FlowState | null) => {\n logger.debug(`State changed from ${prevState} to ${newState}`);\n },\n []\n );\n\n // Handle errors\n const handleError = useCallback((error: Error) => {\n logger.error('Flow error:', error);\n }, []);\n\n // Initialize flow state\n const {\n state,\n context,\n transition,\n updateContext,\n recover,\n recordInterruption,\n handleError: handleFlowError,\n isRecoveryAvailable,\n } = useFlowState({\n autoRecover: false, // We'll handle recovery with a prompt\n onStateChange: handleStateChange,\n onError: handleError,\n });\n\n // Create a wrapped transition function that logs more details\n const enhancedTransition = useCallback(\n (newState: FlowState, contextUpdates?: Partial<FlowContext>) => {\n logger.debug(`Attempting transition to ${newState}`, contextUpdates);\n const result = transition(newState, contextUpdates);\n logger.debug(`Transition to ${newState} result:`, result);\n return result;\n },\n [transition]\n );\n\n // Initialize wallet connection\n const { connectWallet, isConnecting } = useNordWalletConnect(\n state,\n enhancedTransition, // Use enhanced transition instead of regular transition\n context,\n updateContext,\n sessionMode || 0\n );\n\n // Initialize deposit flow\n const {\n amount,\n updateAmount,\n startDeposit,\n completeDeposit,\n getTransactionDetails,\n } = useDepositFlow({\n state,\n context,\n transition,\n handleError: handleFlowError,\n updateContext,\n });\n\n // Initialize interrupt handler\n const { isClosing, handleCloseRequest } = useInterruptHandler({\n state,\n recordInterruption,\n onClose,\n });\n\n // Check for recovery on mount\n const [hasAttemptedRecovery, setHasAttemptedRecovery] = useState(false);\n\n React.useEffect(() => {\n if (!hasAttemptedRecovery) {\n if (isRecoveryAvailable) {\n // Automatically recover without showing a prompt\n recover();\n } else {\n console.log('baababbababababab')\n // Start at CONNECTING_WALLET so we show the wallet selection screen\n // The actual connection will only happen when the user clicks the button\n transition(FlowState.CONNECTING_WALLET);\n }\n setHasAttemptedRecovery(true);\n }\n }, [hasAttemptedRecovery, isRecoveryAvailable, transition, recover]);\n\n // For deposit progress message\n const depositMessage = {\n visible: true,\n title: 'Processing Deposit',\n subtitle: 'Please wait while we process your deposit',\n isTyping: false,\n }\n\n const handleFinish = () => {\n if (onClose) {\n onClose();\n }\n };\n\n // Handle chain selection\n const handleChainSelect = useCallback(\n (chainId: string) => {\n logger.debug('Chain selected in NordFlow:', chainId);\n\n // For testnet, we need to use the network ID\n const selectedChain = chainId;\n logger.debug('Transitioning to AMOUNT_INPUT with chain:', selectedChain);\n\n enhancedTransition(FlowState.AMOUNT_INPUT, {\n selectedChain: selectedChain,\n });\n },\n [enhancedTransition]\n );\n\n // Get the USDC balance\n const getUsdcBalance = useCallback(() => {\n // Try to get the balance from nordUser if available\n if (currentNordUser) {\n const usdcBalance = getTokenBalance(currentNordUser, 'USDC');\n if (usdcBalance > 0) {\n return usdcBalance;\n }\n }\n\n // Fallback to the first balance from the context or a default value\n return balances && balances.length > 0 ? Number(balances[0].balance) : 100;\n }, [currentNordUser, balances]);\n\n // Function to refresh balances\n const refreshBalance = useCallback(async () => {\n try {\n logger.debug('Refreshing balance...');\n\n // If we have a nordUser, try to refresh balances using Nord-TS\n if (currentNordUser && nord && isNordConfigured(nord)) {\n try {\n // This is a placeholder - in a real implementation, you would use the correct method\n // to refresh balances from the Nord-TS API\n // Check if the nordUser has a refreshBalances method using type safety\n const userAny = currentNordUser as any;\n if (userAny && typeof userAny.refreshBalances === 'function') {\n await userAny.refreshBalances();\n logger.debug('Balances refreshed using Nord-TS');\n return;\n }\n } catch (error) {\n logger.warn(\n 'Error refreshing balances using Nord-TS, falling back to default method:',\n error\n );\n }\n }\n\n logger.debug('Balance refreshed using default method');\n } catch (error) {\n logger.error('Error refreshing balance:', error);\n }\n }, [currentNordUser, nord]);\n\n // Get available chains from Nord if possible\n const getAvailableChains = useCallback((): Chain[] => {\n if (\n nord &&\n isNordConfigured(nord) &&\n nord.markets &&\n nord.markets.length > 0\n ) {\n // Map Nord markets to chains format\n return nord.markets.map((market) => ({\n id: market.marketId.toString(),\n name: market.symbol,\n // Use a placeholder or dynamically generated logo instead of non-existent assets\n logo: market.symbol.toLowerCase(), // Just use the symbol as an identifier\n }));\n }\n\n // Fallback to predefined chains\n return CHAINS;\n }, [nord]);\n\n // Render the appropriate screen based on the current state\n const renderScreen = () => {\n switch (state) {\n case FlowState.CONNECTING_WALLET:\n return (\n <EnhancedConnectWalletScreen\n onConnectWallet={connectWallet}\n isConnecting={isConnecting}\n />\n );\n case FlowState.CHAIN_SELECTION:\n const availableChains = getAvailableChains();\n return (\n <EnhancedChainSelectionScreen\n chains={availableChains}\n onChainSelect={handleChainSelect}\n />\n );\n case FlowState.ETH_TO_SOL_AUTH:\n return (\n <EnhancedEvmWalletAuthScreen\n onAuth={() => transition(FlowState.CHAIN_SELECTION)}\n />\n );\n case FlowState.AMOUNT_INPUT:\n return (\n <EnhancedAmountInputScreen\n amount={amount}\n onAmountChange={updateAmount}\n onContinue={startDeposit}\n balance={getUsdcBalance()} // Use real balance\n faucetUrl={faucetUrl} // Pass faucetUrl directly\n refreshBalance={refreshBalance} // Pass refresh function\n depositError={context.depositError} // Pass deposit error from context\n />\n );\n case FlowState.DEPOSIT_PROGRESS:\n return <EnhancedDepositProgressScreen message={depositMessage} />;\n case FlowState.DEPOSIT_SUCCESS:\n // Get transaction details from the deposit flow\n const txDetails = getTransactionDetails();\n // Create table values from transaction details\n const updatedTableValues = {\n amount: { text: txDetails.amount, visible: true, typing: false },\n tx: { text: txDetails.tx, visible: true, typing: false },\n from: { text: txDetails.from, visible: true, typing: false },\n to: { text: txDetails.to, visible: true, typing: false },\n network: { text: txDetails.network, visible: true, typing: false },\n status: { text: txDetails.status, visible: true, typing: false },\n };\n\n return (\n <EnhancedDepositSuccessScreen\n amount={amount}\n tableValues={updatedTableValues}\n onContinue={completeDeposit}\n />\n );\n case FlowState.AUTH_LOADING:\n return (\n <EnhancedAuthLoadingScreen\n onAuthComplete={(success) => {\n if (success) {\n // Update the context first\n updateContext({ hasActiveSession: true });\n // Then transition to success\n transition(FlowState.FINAL_SUCCESS, { hasActiveSession: true });\n } else {\n // Handle auth failure\n handleFlowError(new Error('Authentication failed'));\n }\n }}\n />\n );\n case FlowState.FINAL_SUCCESS:\n return <EnhancedFinalSuccessScreen onDone={handleFinish} />;\n case FlowState.ERROR:\n return (\n <EnhancedErrorScreen\n error={context.error}\n onRetry={() => {\n // Logic to go back to appropriate state based on error\n transition(FlowState.CONNECTING_WALLET);\n }}\n onCancel={handleFinish}\n />\n );\n default:\n return (\n <div className=\"flex flex-col items-center justify-center p-8 space-y-4\">\n {/* Minimalistic but creative loading animation */}\n <div className=\"relative w-12 h-12\">\n {/* Simple spinning ring with primary color accent */}\n <div className=\"absolute inset-0 border-2 border-gray-200 dark:border-gray-800 border-b-main rounded-full animate-spin-slow\"></div>\n\n {/* Subtle pulsing dot in the center */}\n <div className=\"absolute inset-0 flex items-center justify-center\">\n <div className=\"w-2 h-2 bg-main rounded-full animate-pulse\"></div>\n </div>\n </div>\n\n {/* Simple loading text */}\n <p className=\"text-gray-700 dark:text-gray-300 text-sm font-medium\">\n Loading\n </p>\n </div>\n );\n }\n };\n\n return (\n <div\n className={`z-50 flex items-center justify-center overflow-auto font-era ${isClosing ? 'animate-fade-out' : 'animate-fade-in'}`}\n >\n <div className=\"bg-gray-50 dark:bg-gray-950 relative border border-gray-200 dark:border-gray-800 rounded-md transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] w-full max-w-sm m-4 origin-center will-change-[max-width,transform,opacity min-w-96\">\n {/* Header */}\n <div className=\"p-6 border-b border-gray-200 dark:border-gray-800 w-full max-w-2xl mx-auto\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-6 h-6 text-gray-50\">\n {/* Use Logo component with fallback */}\n <Logo size={24} />\n </div>\n </div>\n <button\n onClick={handleCloseRequest}\n className={`\n text-neutral-400 hover:text-gray-900 dark:hover:text-white \n transition-colors duration-300 ease-[cubic-bezier(0.16,1,0.3,1)]\n h-10 w-10 rounded-full hover:bg-gray-100 dark:hover:bg-gray-800\n flex items-center justify-center\n `}\n >\n <svg\n className=\"w-5 h-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n </div>\n\n {/* Content */}\n <div className=\"wallet-connection-flow-content p-6 overflow-hidden\">\n {renderScreen()}\n </div>\n </div>\n </div>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"file":"NordFlow.js","sourceRoot":"","sources":["../../../src/Modal/NordFlow/NordFlow.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from 'react';\nimport { Header } from './components';\nimport { useFlowStateContext } from './context';\nimport { withImageFallback } from './hoc';\nimport {\n AmountInputScreen,\n AuthLoadingScreen,\n ChainSelectionScreen,\n ConnectWalletScreen,\n DepositProgressScreen,\n DepositSuccessScreen,\n ErrorScreen,\n EvmWalletAuthScreen,\n FinalSuccessScreen,\n IdleScreen,\n} from './screens';\nimport { FlowState } from './types';\n\ninterface NordFlowProps {\n onClose?: () => void;\n}\n\n// Apply the withImageFallback HOC to all screen components\nconst EnhancedConnectWalletScreen = withImageFallback(ConnectWalletScreen);\nconst EnhancedEvmWalletAuthScreen = withImageFallback(EvmWalletAuthScreen);\nconst EnhancedChainSelectionScreen = withImageFallback(ChainSelectionScreen);\nconst EnhancedAmountInputScreen = withImageFallback(AmountInputScreen);\nconst EnhancedDepositProgressScreen = withImageFallback(DepositProgressScreen);\nconst EnhancedDepositSuccessScreen = withImageFallback(DepositSuccessScreen);\nconst EnhancedAuthLoadingScreen = withImageFallback(AuthLoadingScreen);\nconst EnhancedFinalSuccessScreen = withImageFallback(FinalSuccessScreen);\nconst EnhancedErrorScreen = withImageFallback(ErrorScreen);\nconst EnhancedIdleScreen = withImageFallback(IdleScreen);\n\n/**\n * Main component for the wallet connection flow\n */\nexport const NordFlow: React.FC<NordFlowProps> = ({ onClose }) => {\n return (\n <div\n className={`z-50 flex items-center justify-center overflow-auto font-era`}\n >\n <div className=\"bg-n1-gray-50 dark:bg-n1-gray-950 relative border border-n1-gray-200 dark:border-n1-gray-800 rounded-md transition-[max-width,transform,opacity] duration-[3000ms] ease-[cubic-bezier(0.16,1,0.3,1)] w-full max-w-sm m-4 origin-center will-change-[max-width,transform,opacity min-w-96\">\n {/* Header */}\n <Header onClose={onClose} />\n\n {/* Content */}\n <div className=\"wallet-connection-flow-content p-6 overflow-hidden\">\n <NordFlowScreenRenderer onClose={onClose} />\n </div>\n </div>\n </div>\n );\n};\n\n// Screen renderer component that uses the flow state context\nconst NordFlowScreenRenderer: React.FC<{ onClose?: () => void }> = ({ onClose }) => {\n // Use the flow state context\n const {\n state,\n isClosing,\n } = useFlowStateContext();\n\n // Render the appropriate screen based on the current state\n const renderScreen = () => {\n switch (state) {\n case FlowState.CONNECTING_WALLET:\n return <EnhancedConnectWalletScreen />;\n case FlowState.CHAIN_SELECTION:\n return <EnhancedChainSelectionScreen />;\n case FlowState.ETH_TO_SOL_AUTH:\n return <EnhancedEvmWalletAuthScreen />;\n case FlowState.AMOUNT_INPUT:\n return <EnhancedAmountInputScreen />;\n case FlowState.DEPOSIT_PROGRESS:\n return <EnhancedDepositProgressScreen />;\n case FlowState.DEPOSIT_SUCCESS:\n return <EnhancedDepositSuccessScreen />;\n case FlowState.AUTH_LOADING:\n return <EnhancedAuthLoadingScreen />;\n case FlowState.FINAL_SUCCESS:\n return <EnhancedFinalSuccessScreen onDone={onClose || (() => { })} />;\n case FlowState.ERROR:\n return <EnhancedErrorScreen />;\n default:\n return <EnhancedIdleScreen />;\n }\n };\n\n return (\n <div className={isClosing ? 'n1-animate-fade-out' : 'n1-animate-fade-in'}>\n {renderScreen()}\n </div>\n );\n};\n"]}
|
|
@@ -7,16 +7,16 @@ export function ChainButton(_a) {
|
|
|
7
7
|
onClick(chain.id);
|
|
8
8
|
}
|
|
9
9
|
};
|
|
10
|
-
var baseClasses = 'flex flex-col items-center justify-center p-6 bg-gray-50 dark:bg-gray-950 border-2 border-gray-100 dark:border-gray-800 transition-all duration-200 group rounded-lg';
|
|
11
|
-
var enabledClasses = 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-gray-900';
|
|
10
|
+
var baseClasses = 'flex flex-col items-center justify-center p-6 bg-n1-gray-50 dark:bg-n1-gray-950 border-2 border-n1-gray-100 dark:border-n1-gray-800 transition-all duration-200 group rounded-lg';
|
|
11
|
+
var enabledClasses = 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-n1-gray-900';
|
|
12
12
|
var disabledClasses = 'opacity-50 cursor-not-allowed';
|
|
13
13
|
var buttonClasses = "".concat(baseClasses, " ").concat(disabled ? disabledClasses : enabledClasses);
|
|
14
14
|
var imageClasses = disabled
|
|
15
15
|
? 'opacity-50 grayscale'
|
|
16
16
|
: 'opacity-90 grayscale group-hover:grayscale-0 group-hover:scale-105 transition-all duration-200';
|
|
17
17
|
var textClasses = disabled
|
|
18
|
-
? 'mt-4 font-medium text-gray-400 dark:text-gray-500'
|
|
19
|
-
: 'mt-4 font-medium text-gray-600 dark:text-gray-400 group-hover:text-red-500 dark:group-hover:text-gray-50 transition-colors duration-200';
|
|
20
|
-
return (_jsxs("button", { onClick: handleClick, className: buttonClasses, disabled: disabled, children: [typeof chain.logo === 'string' ? (_jsx(ImageWithFallback, { src: chain.logo, width: 48, height: 48, alt: chain.name, className: imageClasses, fallbackClassName: "w-12 h-12 rounded-full text-lg font-bold opacity-90 group-hover:scale-105 transition-all duration-200", fallbackBgColor: "bg-main/10 dark:bg-main/20", fallbackTextColor: "text-main dark:text-main" })) : (_jsx("div", { className: imageClasses, children: chain.logo })), _jsx("span", { className: textClasses, children: chain.name })] }));
|
|
18
|
+
? 'mt-4 font-medium text-n1-gray-400 dark:text-n1-gray-500'
|
|
19
|
+
: 'mt-4 font-medium text-n1-gray-600 dark:text-n1-gray-400 group-hover:text-red-500 dark:group-hover:text-n1-gray-50 transition-colors duration-200';
|
|
20
|
+
return (_jsxs("button", { onClick: handleClick, className: buttonClasses, disabled: disabled, children: [typeof chain.logo === 'string' ? (_jsx(ImageWithFallback, { src: chain.logo, width: 48, height: 48, alt: chain.name, className: imageClasses, fallbackClassName: "w-12 h-12 rounded-full text-lg font-bold opacity-90 group-hover:scale-105 transition-all duration-200", fallbackBgColor: "bg-n1-main/10 dark:bg-n1-main/20", fallbackTextColor: "text-n1-main dark:text-n1-main" })) : (_jsx("div", { className: imageClasses, children: chain.logo })), _jsx("span", { className: textClasses, children: chain.name })] }));
|
|
21
21
|
}
|
|
22
22
|
//# sourceMappingURL=ChainButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChainButton.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/ChainButton.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAQxD,MAAM,UAAU,WAAW,CAAC,EAIT;QAHjB,KAAK,WAAA,EACL,OAAO,aAAA,EACP,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA;IAEhB,IAAM,WAAW,GAAG;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,WAAW,GACf,
|
|
1
|
+
{"version":3,"file":"ChainButton.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/ChainButton.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAQxD,MAAM,UAAU,WAAW,CAAC,EAIT;QAHjB,KAAK,WAAA,EACL,OAAO,aAAA,EACP,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA;IAEhB,IAAM,WAAW,GAAG;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,WAAW,GACf,kLAAkL,CAAC;IACrL,IAAM,cAAc,GAClB,6FAA6F,CAAC;IAChG,IAAM,eAAe,GAAG,+BAA+B,CAAC;IAExD,IAAM,aAAa,GAAG,UAAG,WAAW,cAAI,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAE,CAAC;IAEtF,IAAM,YAAY,GAAG,QAAQ;QAC3B,CAAC,CAAC,sBAAsB;QACxB,CAAC,CAAC,gGAAgG,CAAC;IAErG,IAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC,yDAAyD;QAC3D,CAAC,CAAC,kJAAkJ,CAAC;IAEvJ,OAAO,CACL,kBAAQ,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,aACvE,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAChC,KAAC,iBAAiB,IAChB,GAAG,EAAE,KAAK,CAAC,IAAI,EACf,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,GAAG,EAAE,KAAK,CAAC,IAAI,EACf,SAAS,EAAE,YAAY,EACvB,iBAAiB,EAAC,uGAAuG,EACzH,eAAe,EAAC,kCAAkC,EAClD,iBAAiB,EAAC,gCAAgC,GAClD,CACH,CAAC,CAAC,CAAC,CACF,cAAK,SAAS,EAAE,YAAY,YAAG,KAAK,CAAC,IAAI,GAAO,CACjD,EACD,eAAM,SAAS,EAAE,WAAW,YAAG,KAAK,CAAC,IAAI,GAAQ,IAC1C,CACV,CAAC;AACJ,CAAC","sourcesContent":["import React from 'react';\nimport { Chain } from '../types';\nimport { ImageWithFallback } from './ImageWithFallback';\n\ninterface ChainButtonProps {\n chain: Chain;\n onClick: (chainId: string) => void;\n disabled?: boolean;\n}\n\nexport function ChainButton({\n chain,\n onClick,\n disabled = false,\n}: ChainButtonProps) {\n const handleClick = () => {\n if (!disabled) {\n onClick(chain.id);\n }\n };\n\n const baseClasses =\n 'flex flex-col items-center justify-center p-6 bg-n1-gray-50 dark:bg-n1-gray-950 border-2 border-n1-gray-100 dark:border-n1-gray-800 transition-all duration-200 group rounded-lg';\n const enabledClasses =\n 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-n1-gray-900';\n const disabledClasses = 'opacity-50 cursor-not-allowed';\n\n const buttonClasses = `${baseClasses} ${disabled ? disabledClasses : enabledClasses}`;\n\n const imageClasses = disabled\n ? 'opacity-50 grayscale'\n : 'opacity-90 grayscale group-hover:grayscale-0 group-hover:scale-105 transition-all duration-200';\n\n const textClasses = disabled\n ? 'mt-4 font-medium text-n1-gray-400 dark:text-n1-gray-500'\n : 'mt-4 font-medium text-n1-gray-600 dark:text-n1-gray-400 group-hover:text-red-500 dark:group-hover:text-n1-gray-50 transition-colors duration-200';\n\n return (\n <button onClick={handleClick} className={buttonClasses} disabled={disabled}>\n {typeof chain.logo === 'string' ? (\n <ImageWithFallback\n src={chain.logo}\n width={48}\n height={48}\n alt={chain.name}\n className={imageClasses}\n fallbackClassName=\"w-12 h-12 rounded-full text-lg font-bold opacity-90 group-hover:scale-105 transition-all duration-200\"\n fallbackBgColor=\"bg-n1-main/10 dark:bg-n1-main/20\"\n fallbackTextColor=\"text-n1-main dark:text-n1-main\"\n />\n ) : (\n <div className={imageClasses}>{chain.logo}</div>\n )}\n <span className={textClasses}>{chain.name}</span>\n </button>\n );\n}\n"]}
|
|
@@ -7,13 +7,13 @@ export function EVMChainsButton(_a) {
|
|
|
7
7
|
onClick(chain.id);
|
|
8
8
|
}
|
|
9
9
|
};
|
|
10
|
-
var baseClasses = 'flex flex-col items-center justify-center p-6 bg-gray-50 dark:bg-gray-950 border-2 border-gray-100 dark:border-gray-800 transition-all duration-200 group rounded-lg';
|
|
11
|
-
var enabledClasses = 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-gray-900';
|
|
10
|
+
var baseClasses = 'flex flex-col items-center justify-center p-6 bg-n1-gray-50 dark:bg-n1-gray-950 border-2 border-n1-gray-100 dark:border-n1-gray-800 transition-all duration-200 group rounded-lg';
|
|
11
|
+
var enabledClasses = 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-n1-gray-900';
|
|
12
12
|
var disabledClasses = 'opacity-50 cursor-not-allowed';
|
|
13
13
|
var buttonClasses = "".concat(baseClasses, " ").concat(disabled ? disabledClasses : enabledClasses);
|
|
14
14
|
var textClasses = disabled
|
|
15
|
-
? 'mt-4 font-medium text-gray-400 dark:text-gray-500'
|
|
16
|
-
: 'mt-4 font-medium text-gray-600 dark:text-gray-400 group-hover:text-red-500 dark:group-hover:text-gray-50 transition-colors duration-200';
|
|
15
|
+
? 'mt-4 font-medium text-n1-gray-400 dark:text-n1-gray-500'
|
|
16
|
+
: 'mt-4 font-medium text-n1-gray-600 dark:text-n1-gray-400 group-hover:text-red-500 dark:group-hover:text-n1-gray-50 transition-colors duration-200';
|
|
17
17
|
return (_jsxs("button", { onClick: handleClick, className: buttonClasses, disabled: disabled, children: [_jsx(EVMChainsGroup, { size: 32, className: disabled ? 'opacity-50 grayscale' : 'opacity-90' }), _jsx("span", { className: textClasses, children: chain.name })] }));
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=EVMChainsButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EVMChainsButton.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/EVMChainsButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQ3D,MAAM,UAAU,eAAe,CAAC,EAIT;QAHrB,KAAK,WAAA,EACL,OAAO,aAAA,EACP,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA;IAEhB,IAAM,WAAW,GAAG;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,WAAW,GACf,
|
|
1
|
+
{"version":3,"file":"EVMChainsButton.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/EVMChainsButton.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAQ3D,MAAM,UAAU,eAAe,CAAC,EAIT;QAHrB,KAAK,WAAA,EACL,OAAO,aAAA,EACP,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA;IAEhB,IAAM,WAAW,GAAG;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,WAAW,GACf,kLAAkL,CAAC;IACrL,IAAM,cAAc,GAClB,6FAA6F,CAAC;IAChG,IAAM,eAAe,GAAG,+BAA+B,CAAC;IAExD,IAAM,aAAa,GAAG,UAAG,WAAW,cAAI,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAE,CAAC;IAEtF,IAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC,yDAAyD;QAC3D,CAAC,CAAC,kJAAkJ,CAAC;IAEvJ,OAAO,CACL,kBAAQ,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,aACxE,KAAC,cAAc,IACb,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,YAAY,GAC3D,EACF,eAAM,SAAS,EAAE,WAAW,YAAG,KAAK,CAAC,IAAI,GAAQ,IAC1C,CACV,CAAC;AACJ,CAAC","sourcesContent":["import { Chain } from '../types';\nimport { EVMChainsGroup } from '../../../components/logos';\n\ninterface EVMChainsButtonProps {\n chain: Chain;\n onClick: (chainId: string) => void;\n disabled?: boolean;\n}\n\nexport function EVMChainsButton({\n chain,\n onClick,\n disabled = false,\n}: EVMChainsButtonProps) {\n const handleClick = () => {\n if (!disabled) {\n onClick(chain.id);\n }\n };\n\n const baseClasses =\n 'flex flex-col items-center justify-center p-6 bg-n1-gray-50 dark:bg-n1-gray-950 border-2 border-n1-gray-100 dark:border-n1-gray-800 transition-all duration-200 group rounded-lg';\n const enabledClasses =\n 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-n1-gray-900';\n const disabledClasses = 'opacity-50 cursor-not-allowed';\n\n const buttonClasses = `${baseClasses} ${disabled ? disabledClasses : enabledClasses}`;\n\n const textClasses = disabled\n ? 'mt-4 font-medium text-n1-gray-400 dark:text-n1-gray-500'\n : 'mt-4 font-medium text-n1-gray-600 dark:text-n1-gray-400 group-hover:text-red-500 dark:group-hover:text-n1-gray-50 transition-colors duration-200';\n\n return (\n <button onClick={handleClick} className={buttonClasses} disabled={disabled}>\n <EVMChainsGroup\n size={32}\n className={disabled ? 'opacity-50 grayscale' : 'opacity-90'}\n />\n <span className={textClasses}>{chain.name}</span>\n </button>\n );\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import Logo from '../../../components/Logo';
|
|
3
|
+
/**
|
|
4
|
+
* Header component for the Nord Flow modal
|
|
5
|
+
* Contains the logo and close button
|
|
6
|
+
*/
|
|
7
|
+
export var Header = function (_a) {
|
|
8
|
+
var onClose = _a.onClose;
|
|
9
|
+
return (_jsx("div", { className: "p-6 border-b border-n1-gray-200 dark:border-n1-gray-800 w-full max-w-2xl mx-auto", children: _jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "flex items-center gap-3", children: _jsx("div", { className: "w-6 h-6 text-n1-gray-50", children: _jsx(Logo, { size: 24 }) }) }), _jsx("button", { onClick: function () { return onClose && onClose(); }, className: "\n text-neutral-400 hover:text-n1-gray-900 dark:hover:text-white \n transition-colors duration-300 ease-[cubic-bezier(0.16,1,0.3,1)]\n h-10 w-10 rounded-full hover:bg-n1-gray-100 dark:hover:bg-n1-gray-800\n flex items-center justify-center\n ", children: _jsx("svg", { className: "w-5 h-5", fill: "none", stroke: "currentColor", viewBox: "0 0 24 24", xmlns: "http://www.w3.org/2000/svg", children: _jsx("path", { strokeLinecap: "round", strokeLinejoin: "round", strokeWidth: "2", d: "M6 18L18 6M6 6l12 12" }) }) })] }) }));
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/Header.tsx"],"names":[],"mappings":";AACA,OAAO,IAAI,MAAM,0BAA0B,CAAC;AAM5C;;;GAGG;AACH,MAAM,CAAC,IAAM,MAAM,GAA0B,UAAC,EAAW;QAAT,OAAO,aAAA;IACrD,OAAO,CACL,cAAK,SAAS,EAAC,kFAAkF,YAC/F,eAAK,SAAS,EAAC,mCAAmC,aAChD,cAAK,SAAS,EAAC,yBAAyB,YACtC,cAAK,SAAS,EAAC,yBAAyB,YAEtC,KAAC,IAAI,IAAC,IAAI,EAAE,EAAE,GAAI,GACd,GACF,EACN,iBACE,OAAO,EAAE,cAAM,OAAA,OAAO,IAAI,OAAO,EAAE,EAApB,CAAoB,EACnC,SAAS,EAAE,ySAKV,YAED,cACE,SAAS,EAAC,SAAS,EACnB,IAAI,EAAC,MAAM,EACX,MAAM,EAAC,cAAc,EACrB,OAAO,EAAC,WAAW,EACnB,KAAK,EAAC,4BAA4B,YAElC,eACE,aAAa,EAAC,OAAO,EACrB,cAAc,EAAC,OAAO,EACtB,WAAW,EAAC,GAAG,EACf,CAAC,EAAC,sBAAsB,GACxB,GACE,GACC,IACL,GACF,CACP,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport Logo from '../../../components/Logo';\n\ninterface HeaderProps {\n onClose?: () => void;\n}\n\n/**\n * Header component for the Nord Flow modal\n * Contains the logo and close button\n */\nexport const Header: React.FC<HeaderProps> = ({ onClose }) => {\n return (\n <div className=\"p-6 border-b border-n1-gray-200 dark:border-n1-gray-800 w-full max-w-2xl mx-auto\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-6 h-6 text-n1-gray-50\">\n {/* Use Logo component with fallback */}\n <Logo size={24} />\n </div>\n </div>\n <button\n onClick={() => onClose && onClose()}\n className={`\n text-neutral-400 hover:text-n1-gray-900 dark:hover:text-white \n transition-colors duration-300 ease-[cubic-bezier(0.16,1,0.3,1)]\n h-10 w-10 rounded-full hover:bg-n1-gray-100 dark:hover:bg-n1-gray-800\n flex items-center justify-center\n `}\n >\n <svg\n className=\"w-5 h-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n </div>\n );\n}; "]}
|
|
@@ -4,7 +4,7 @@ import { useState } from 'react';
|
|
|
4
4
|
* A component that renders an image with a fallback div when the image is not available
|
|
5
5
|
*/
|
|
6
6
|
export var ImageWithFallback = function (_a) {
|
|
7
|
-
var src = _a.src, alt = _a.alt, _b = _a.width, width = _b === void 0 ? 'auto' : _b, _c = _a.height, height = _c === void 0 ? 'auto' : _c, _d = _a.className, className = _d === void 0 ? '' : _d, _e = _a.fallbackClassName, fallbackClassName = _e === void 0 ? '' : _e, fallbackText = _a.fallbackText, _f = _a.fallbackBgColor, fallbackBgColor = _f === void 0 ? 'bg-gray-200 dark:bg-gray-800' : _f, _g = _a.fallbackTextColor, fallbackTextColor = _g === void 0 ? 'text-gray-500 dark:text-gray-400' : _g;
|
|
7
|
+
var src = _a.src, alt = _a.alt, _b = _a.width, width = _b === void 0 ? 'auto' : _b, _c = _a.height, height = _c === void 0 ? 'auto' : _c, _d = _a.className, className = _d === void 0 ? '' : _d, _e = _a.fallbackClassName, fallbackClassName = _e === void 0 ? '' : _e, fallbackText = _a.fallbackText, _f = _a.fallbackBgColor, fallbackBgColor = _f === void 0 ? 'bg-n1-gray-200 dark:bg-n1-gray-800' : _f, _g = _a.fallbackTextColor, fallbackTextColor = _g === void 0 ? 'text-n1-gray-500 dark:text-n1-gray-400' : _g;
|
|
8
8
|
var _h = useState(false), imageError = _h[0], setImageError = _h[1];
|
|
9
9
|
// Get initials from alt text for fallback
|
|
10
10
|
var getInitials = function (text) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageWithFallback.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/ImageWithFallback.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAcxC;;GAEG;AACH,MAAM,CAAC,IAAM,iBAAiB,GAAqC,UAAC,EAUnE;QATC,GAAG,SAAA,EACH,GAAG,SAAA,EACH,aAAc,EAAd,KAAK,mBAAG,MAAM,KAAA,EACd,cAAe,EAAf,MAAM,mBAAG,MAAM,KAAA,EACf,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,yBAAsB,EAAtB,iBAAiB,mBAAG,EAAE,KAAA,EACtB,YAAY,kBAAA,EACZ,
|
|
1
|
+
{"version":3,"file":"ImageWithFallback.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/ImageWithFallback.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAcxC;;GAEG;AACH,MAAM,CAAC,IAAM,iBAAiB,GAAqC,UAAC,EAUnE;QATC,GAAG,SAAA,EACH,GAAG,SAAA,EACH,aAAc,EAAd,KAAK,mBAAG,MAAM,KAAA,EACd,cAAe,EAAf,MAAM,mBAAG,MAAM,KAAA,EACf,iBAAc,EAAd,SAAS,mBAAG,EAAE,KAAA,EACd,yBAAsB,EAAtB,iBAAiB,mBAAG,EAAE,KAAA,EACtB,YAAY,kBAAA,EACZ,uBAAsD,EAAtD,eAAe,mBAAG,oCAAoC,KAAA,EACtD,yBAA4D,EAA5D,iBAAiB,mBAAG,wCAAwC,KAAA;IAEtD,IAAA,KAA8B,QAAQ,CAAC,KAAK,CAAC,EAA5C,UAAU,QAAA,EAAE,aAAa,QAAmB,CAAC;IAEpD,0CAA0C;IAC1C,IAAM,WAAW,GAAG,UAAC,IAAY;QAC/B,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,CAAC;QACrB,OAAO,IAAI;aACR,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,UAAC,IAAI,IAAK,OAAA,IAAI,CAAC,CAAC,CAAC,EAAP,CAAO,CAAC;aACtB,IAAI,CAAC,EAAE,CAAC;aACR,WAAW,EAAE;aACb,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrB,CAAC,CAAC;IAEF,IAAM,WAAW,GAAG;QAClB,aAAa,CAAC,IAAI,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,sBAAsB;QACtB,OAAO,CACL,cACE,SAAS,EAAE,2CAAoC,eAAe,cAAI,iBAAiB,cAAI,iBAAiB,CAAE,EAC1G,KAAK,EAAE;gBACL,KAAK,EAAE,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAG,KAAK,OAAI,CAAC,CAAC,CAAC,KAAK;gBACvD,MAAM,EAAE,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAG,MAAM,OAAI,CAAC,CAAC,CAAC,MAAM;aAC5D,gBACW,GAAG,YAEd,YAAY,IAAI,WAAW,CAAC,GAAG,CAAC,GAC7B,CACP,CAAC;IACJ,CAAC;IAED,eAAe;IACf,OAAO,CACL,cACE,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,WAAW,GACpB,CACH,CAAC;AACJ,CAAC,CAAC","sourcesContent":["import React, { useState } from 'react';\n\ninterface ImageWithFallbackProps {\n src: string;\n alt: string;\n width?: number | string;\n height?: number | string;\n className?: string;\n fallbackClassName?: string;\n fallbackText?: string;\n fallbackBgColor?: string;\n fallbackTextColor?: string;\n}\n\n/**\n * A component that renders an image with a fallback div when the image is not available\n */\nexport const ImageWithFallback: React.FC<ImageWithFallbackProps> = ({\n src,\n alt,\n width = 'auto',\n height = 'auto',\n className = '',\n fallbackClassName = '',\n fallbackText,\n fallbackBgColor = 'bg-n1-gray-200 dark:bg-n1-gray-800',\n fallbackTextColor = 'text-n1-gray-500 dark:text-n1-gray-400',\n}) => {\n const [imageError, setImageError] = useState(false);\n\n // Get initials from alt text for fallback\n const getInitials = (text: string) => {\n if (!text) return '';\n return text\n .split(' ')\n .map((word) => word[0])\n .join('')\n .toUpperCase()\n .substring(0, 2);\n };\n\n const handleError = () => {\n setImageError(true);\n };\n\n if (imageError || !src) {\n // Render fallback div\n return (\n <div\n className={`flex items-center justify-center ${fallbackBgColor} ${fallbackTextColor} ${fallbackClassName}`}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n height: typeof height === 'number' ? `${height}px` : height,\n }}\n aria-label={alt}\n >\n {fallbackText || getInitials(alt)}\n </div>\n );\n }\n\n // Render image\n return (\n <img\n src={src}\n alt={alt}\n width={width}\n height={height}\n className={className}\n onError={handleError}\n />\n );\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
export function LoadingSquares() {
|
|
4
|
-
return (_jsx("div", { className: "relative w-32 h-32 animate-fade-up", style: { animationDelay: '0.2s' }, children: _jsxs("div", { className: "absolute inset-0 grid grid-cols-2 gap-2", children: [_jsx("div", { className: "relative bg-white dark:bg-neutral-900 border-2 border-gray-100 dark:border-neutral-800 overflow-hidden", children: _jsx("div", { className: "absolute inset-x-0 bottom-0 h-full bg-main/40 dark:bg-main/20 animate-square-loader" }) }), _jsx("div", { className: "relative bg-white dark:bg-neutral-900 border-2 border-gray-100 dark:border-neutral-800 overflow-hidden", children: _jsx("div", { className: "absolute inset-x-0 bottom-0 h-full bg-main/40 dark:bg-main/20 animate-square-loader", style: { animationDelay: '0.2s' } }) }), _jsx("div", { className: "relative bg-white dark:bg-neutral-900 border-2 border-gray-100 dark:border-neutral-800 overflow-hidden", children: _jsx("div", { className: "absolute inset-x-0 bottom-0 h-full bg-main/40 dark:bg-main/20 animate-square-loader", style: { animationDelay: '0.4s' } }) }), _jsx("div", { className: "relative bg-white dark:bg-neutral-900 border-2 border-gray-100 dark:border-neutral-800 overflow-hidden", children: _jsx("div", { className: "absolute inset-x-0 bottom-0 h-full bg-main/40 dark:bg-main/20 animate-square-loader", style: { animationDelay: '0.6s' } }) })] }) }));
|
|
4
|
+
return (_jsx("div", { className: "relative w-32 h-32 n1-animate-fade-up", style: { animationDelay: '0.2s' }, children: _jsxs("div", { className: "absolute inset-0 grid grid-cols-2 gap-2", children: [_jsx("div", { className: "relative bg-white dark:bg-neutral-900 border-2 border-n1-gray-100 dark:border-neutral-800 overflow-hidden", children: _jsx("div", { className: "absolute inset-x-0 bottom-0 h-full bg-n1-main/40 dark:bg-n1-main/20 n1-animate-square-loader" }) }), _jsx("div", { className: "relative bg-white dark:bg-neutral-900 border-2 border-n1-gray-100 dark:border-neutral-800 overflow-hidden", children: _jsx("div", { className: "absolute inset-x-0 bottom-0 h-full bg-n1-main/40 dark:bg-n1-main/20 n1-animate-square-loader", style: { animationDelay: '0.2s' } }) }), _jsx("div", { className: "relative bg-white dark:bg-neutral-900 border-2 border-n1-gray-100 dark:border-neutral-800 overflow-hidden", children: _jsx("div", { className: "absolute inset-x-0 bottom-0 h-full bg-n1-main/40 dark:bg-n1-main/20 n1-animate-square-loader", style: { animationDelay: '0.4s' } }) }), _jsx("div", { className: "relative bg-white dark:bg-neutral-900 border-2 border-n1-gray-100 dark:border-neutral-800 overflow-hidden", children: _jsx("div", { className: "absolute inset-x-0 bottom-0 h-full bg-n1-main/40 dark:bg-n1-main/20 n1-animate-square-loader", style: { animationDelay: '0.6s' } }) })] }) }));
|
|
5
5
|
}
|
|
6
6
|
//# sourceMappingURL=LoadingSquares.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingSquares.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/LoadingSquares.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,MAAM,UAAU,cAAc;IAC5B,OAAO,CACL,cACE,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"LoadingSquares.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/LoadingSquares.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,MAAM,UAAU,cAAc;IAC5B,OAAO,CACL,cACE,SAAS,EAAC,uCAAuC,EACjD,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,YAEjC,eAAK,SAAS,EAAC,yCAAyC,aACtD,cAAK,SAAS,EAAC,2GAA2G,YACxH,cAAK,SAAS,EAAC,8FAA8F,GAAO,GAChH,EACN,cAAK,SAAS,EAAC,2GAA2G,YACxH,cACE,SAAS,EAAC,8FAA8F,EACxG,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAC5B,GACH,EACN,cAAK,SAAS,EAAC,2GAA2G,YACxH,cACE,SAAS,EAAC,8FAA8F,EACxG,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAC5B,GACH,EACN,cAAK,SAAS,EAAC,2GAA2G,YACxH,cACE,SAAS,EAAC,8FAA8F,EACxG,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,GAC5B,GACH,IACF,GACF,CACP,CAAC;AACJ,CAAC","sourcesContent":["'use client';\n\nexport function LoadingSquares() {\n return (\n <div\n className=\"relative w-32 h-32 n1-animate-fade-up\"\n style={{ animationDelay: '0.2s' }}\n >\n <div className=\"absolute inset-0 grid grid-cols-2 gap-2\">\n <div className=\"relative bg-white dark:bg-neutral-900 border-2 border-n1-gray-100 dark:border-neutral-800 overflow-hidden\">\n <div className=\"absolute inset-x-0 bottom-0 h-full bg-n1-main/40 dark:bg-n1-main/20 n1-animate-square-loader\"></div>\n </div>\n <div className=\"relative bg-white dark:bg-neutral-900 border-2 border-n1-gray-100 dark:border-neutral-800 overflow-hidden\">\n <div\n className=\"absolute inset-x-0 bottom-0 h-full bg-n1-main/40 dark:bg-n1-main/20 n1-animate-square-loader\"\n style={{ animationDelay: '0.2s' }}\n ></div>\n </div>\n <div className=\"relative bg-white dark:bg-neutral-900 border-2 border-n1-gray-100 dark:border-neutral-800 overflow-hidden\">\n <div\n className=\"absolute inset-x-0 bottom-0 h-full bg-n1-main/40 dark:bg-n1-main/20 n1-animate-square-loader\"\n style={{ animationDelay: '0.4s' }}\n ></div>\n </div>\n <div className=\"relative bg-white dark:bg-neutral-900 border-2 border-n1-gray-100 dark:border-neutral-800 overflow-hidden\">\n <div\n className=\"absolute inset-x-0 bottom-0 h-full bg-n1-main/40 dark:bg-n1-main/20 n1-animate-square-loader\"\n style={{ animationDelay: '0.6s' }}\n ></div>\n </div>\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -7,13 +7,13 @@ export function MoreButton(_a) {
|
|
|
7
7
|
onClick(chain.id);
|
|
8
8
|
}
|
|
9
9
|
};
|
|
10
|
-
var baseClasses = 'flex flex-col items-center justify-center p-6 bg-gray-50 dark:bg-gray-950 border-2 border-gray-100 dark:border-gray-800 transition-all duration-200 group rounded-lg';
|
|
11
|
-
var enabledClasses = 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-gray-900';
|
|
10
|
+
var baseClasses = 'flex flex-col items-center justify-center p-6 bg-n1-gray-50 dark:bg-n1-gray-950 border-2 border-n1-gray-100 dark:border-n1-gray-800 transition-all duration-200 group rounded-lg';
|
|
11
|
+
var enabledClasses = 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-n1-gray-900';
|
|
12
12
|
var disabledClasses = 'opacity-50 cursor-not-allowed';
|
|
13
13
|
var buttonClasses = "".concat(baseClasses, " ").concat(disabled ? disabledClasses : enabledClasses);
|
|
14
14
|
var textClasses = disabled
|
|
15
|
-
? 'mt-4 font-medium text-gray-400 dark:text-gray-500'
|
|
16
|
-
: 'mt-4 font-medium text-gray-600 dark:text-gray-400 group-hover:text-red-500 dark:group-hover:text-gray-50 transition-colors duration-200';
|
|
15
|
+
? 'mt-4 font-medium text-n1-gray-400 dark:text-n1-gray-500'
|
|
16
|
+
: 'mt-4 font-medium text-n1-gray-600 dark:text-n1-gray-400 group-hover:text-red-500 dark:group-hover:text-n1-gray-50 transition-colors duration-200';
|
|
17
17
|
return (_jsxs("button", { onClick: handleClick, className: buttonClasses, disabled: disabled, children: [_jsx(MoreChainsGroup, { size: 32, className: disabled ? 'opacity-50 grayscale' : 'opacity-90' }), _jsx("span", { className: textClasses, children: chain.name })] }));
|
|
18
18
|
}
|
|
19
19
|
//# sourceMappingURL=MoreButton.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MoreButton.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/MoreButton.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAQ5D,MAAM,UAAU,UAAU,CAAC,EAIT;QAHhB,KAAK,WAAA,EACL,OAAO,aAAA,EACP,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA;IAEhB,IAAM,WAAW,GAAG;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,WAAW,GACf,
|
|
1
|
+
{"version":3,"file":"MoreButton.js","sourceRoot":"","sources":["../../../../src/Modal/NordFlow/components/MoreButton.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAQ5D,MAAM,UAAU,UAAU,CAAC,EAIT;QAHhB,KAAK,WAAA,EACL,OAAO,aAAA,EACP,gBAAgB,EAAhB,QAAQ,mBAAG,KAAK,KAAA;IAEhB,IAAM,WAAW,GAAG;QAClB,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,IAAM,WAAW,GACf,kLAAkL,CAAC;IACrL,IAAM,cAAc,GAClB,6FAA6F,CAAC;IAChG,IAAM,eAAe,GAAG,+BAA+B,CAAC;IAExD,IAAM,aAAa,GAAG,UAAG,WAAW,cAAI,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,cAAc,CAAE,CAAC;IAEtF,IAAM,WAAW,GAAG,QAAQ;QAC1B,CAAC,CAAC,yDAAyD;QAC3D,CAAC,CAAC,kJAAkJ,CAAC;IAEvJ,OAAO,CACL,kBAAQ,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,aACxE,KAAC,eAAe,IACd,IAAI,EAAE,EAAE,EACR,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,YAAY,GAC3D,EACF,eAAM,SAAS,EAAE,WAAW,YAAG,KAAK,CAAC,IAAI,GAAQ,IAC1C,CACV,CAAC;AACJ,CAAC","sourcesContent":["import React from 'react';\nimport { Chain } from '../types';\nimport { MoreChainsGroup } from '../../../components/logos';\n\ninterface MoreButtonProps {\n chain: Chain;\n onClick: (chainId: string) => void;\n disabled?: boolean;\n}\n\nexport function MoreButton({\n chain,\n onClick,\n disabled = false,\n}: MoreButtonProps) {\n const handleClick = () => {\n if (!disabled) {\n onClick(chain.id);\n }\n };\n\n const baseClasses =\n 'flex flex-col items-center justify-center p-6 bg-n1-gray-50 dark:bg-n1-gray-950 border-2 border-n1-gray-100 dark:border-n1-gray-800 transition-all duration-200 group rounded-lg';\n const enabledClasses =\n 'hover:border-red-500 dark:hover:border-red-500 hover:bg-red-50/50 dark:hover:bg-n1-gray-900';\n const disabledClasses = 'opacity-50 cursor-not-allowed';\n\n const buttonClasses = `${baseClasses} ${disabled ? disabledClasses : enabledClasses}`;\n\n const textClasses = disabled\n ? 'mt-4 font-medium text-n1-gray-400 dark:text-n1-gray-500'\n : 'mt-4 font-medium text-n1-gray-600 dark:text-n1-gray-400 group-hover:text-red-500 dark:group-hover:text-n1-gray-50 transition-colors duration-200';\n\n return (\n <button onClick={handleClick} className={buttonClasses} disabled={disabled}>\n <MoreChainsGroup\n size={32}\n className={disabled ? 'opacity-50 grayscale' : 'opacity-90'}\n />\n <span className={textClasses}>{chain.name}</span>\n </button>\n );\n}\n"]}
|