diff --git a/frontend/package-lock.json b/frontend/package-lock.json index ee49ce36..6c3a535f 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -8,7 +8,6 @@ "name": "stellarforge-frontend", "version": "0.0.0", "dependencies": { - "@rolldown/binding-win32-x64-msvc": "^1.0.0-rc.11", "@stellar/freighter-api": "^6.0.1", "@tailwindcss/postcss": "^4.2.2", "react": "^19.2.0", @@ -1096,7 +1095,9 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", + "optional": true, "os": [ "win32" ], diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 92f6aac8..d41243b9 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,48 +1,11 @@ -import { ToastContainer,Button,Spinner } from './components/UI'; +import { ToastContainer, Button, Spinner } from './components/UI'; import './App.css' -import { useDarkMode } from './hooks/useDarkMode' - -function App() { - const [dark, setDark] = useDarkMode() - - return ( -
-
-
-
-

StellarForge

-

Stellar Token Deployer

-
- -
-
- -
-
-
-
-

Welcome to Nova Launch

-

Deploy your custom tokens on Stellar blockchain

- +import { Routes, Route, Navigate } from 'react-router-dom' +import { useState } from 'react' +import { StellarProvider } from './context/StellarContext' import { WalletProvider } from './context/WalletContext' import { ToastProvider, useToast } from './context/ToastContext' -import { NetworkProvider } from './context/NetworkContext' +import { NetworkProvider, useNetwork } from './context/NetworkContext' import { NetworkSwitcher } from './components/NetworkSwitcher' import { useWallet } from './hooks/useWallet' import { truncateAddress, formatXLM } from './utils/formatting' @@ -67,6 +30,11 @@ const ProtectedRoute: React.FC<{ children: JSX.Element }> = ({ children }) => { function AppContent() { const { wallet, connect, disconnect, isConnecting, error, isInstalled } = useWallet() const { addToast } = useToast() + const { network } = useNetwork() + const [showBanner, setShowBanner] = useState(true) + + const isLowBalance = wallet.isConnected && wallet.balance && parseFloat(wallet.balance) < 10 + const showFriendbotBanner = showBanner && network === 'testnet' && isLowBalance const handleGetStarted = () => addToast("Welcome! Let's deploy your token.", 'info') @@ -149,6 +117,33 @@ function AppContent() {
+ {showFriendbotBanner && ( +
+
+
+ Your testnet balance is low. Get free testnet XLM from{' '} + + Friendbot + . +
+ +
+
+ )} +
{error && (