Skip to content

Commit abf0fec

Browse files
authored
Merge pull request #7 from alpenlabs/resizing-pages
make the page contents adjust to resizing
2 parents 57b1149 + b7e50f4 commit abf0fec

11 files changed

+756
-623
lines changed

frontend/package-lock.json

+255-262
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

frontend/src/main.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import App from "./App";
44
import "./styles/index.css";
55

66

7-
87
ReactDOM.createRoot(document.getElementById("root")!).render(
98
<React.StrictMode>
109
<App />

frontend/src/pages/Bridge.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Suspense } from "react";
22
import { useLocation } from "react-router-dom";
33
import { useBridgeStatus, OperatorStatus, DepositInfo, WithdrawalInfo, ReimbursementInfo } from "../hooks/useBridgeStatus";
4+
import '../styles/bridge.css';
45

56
const truncateHex = (hex: string, startLength = 4, endLength = 4) => {
67
if (!hex) return "-"; // If no TXID, show "-"

frontend/src/pages/Dashboard.tsx

+47-8
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,20 @@
1-
import { lazy, Suspense } from "react";
1+
import { lazy, Suspense, useState } from "react";
22
import { Link, useLocation } from "react-router-dom";
33
import { useNetworkStatus } from "../hooks/useNetworkStatus";
44
import { usePaymasterWallets } from "../hooks/usePaymasterWallets";
55
import convertWeiToBtc from "../utils";
6+
import "../styles/network.css";
67

78
const StatusCard = lazy(() => import("../components/StatusCard"));
89
const BalanceCard = lazy(() => import("../components/BalanceCard"));
910
const Bridge = lazy(() => import("./Bridge"));
1011
const Usage = lazy(() => import("./Usage"));
1112

1213
export default function Dashboard() {
14+
const [isMenuOpen, setMenuOpen] = useState(false);
15+
const toggleMenu = () => {
16+
setMenuOpen((prev) => !prev);
17+
};
1318
const { pathname } = useLocation(); // Get current URL path
1419
const { data, isLoading, error } = useNetworkStatus();
1520
const { data: wallets, isLoading: bal_isLoading, error: bal_error } = usePaymasterWallets();
@@ -18,16 +23,50 @@ export default function Dashboard() {
1823
<div className="dashboard">
1924
<div className="sidebar">
2025
{/* Logo Wrapper */}
21-
<a href="/" className="logoWrapper">
22-
<div className="logoSvg">
26+
<a href="/" className="logo-wrapper">
27+
<div className="logo-svg">
2328
<img src="/Strata_full_logo_sand.png" alt="STRATA" />
2429
</div>
2530
</a>
26-
{/* Menu */}
27-
<div className="menu">
28-
<Link to="/" className={`menu-item ${pathname === "/" ? "active" : ""}`}>Network</Link>
29-
<Link to="/bridge" className={`menu-item ${pathname === "/bridge" ? "active" : ""}`}>Bridge</Link>
30-
<Link to="/usage" className={`menu-item ${pathname === "/usage" ? "active" : ""}`}>Usage</Link>
31+
{/* Hamburger / Cross toggle — only shown on mobile */}
32+
<div className="menu-button" onClick={toggleMenu}>
33+
{isMenuOpen ? (
34+
<div className="cross">
35+
<div className="cross-bar"></div>
36+
<div className="cross-bar"></div>
37+
</div>
38+
) : (
39+
<div className="hamburger">
40+
<div className="hamburger-bar"></div>
41+
<div className="hamburger-bar"></div>
42+
<div className="hamburger-bar"></div>
43+
</div>
44+
)}
45+
</div>
46+
47+
{/* Responsive menu dropdown (mobile) */}
48+
<div className={`navbar-menu-wrapper ${isMenuOpen ? "show-menu" : ""}`}>
49+
<Link
50+
to="/"
51+
className={`menu-item ${pathname === "/" ? "active" : ""}`}
52+
onClick={() => setMenuOpen(false)}
53+
>
54+
Network
55+
</Link>
56+
<Link
57+
to="/bridge"
58+
className={`menu-item ${pathname === "/bridge" ? "active" : ""}`}
59+
onClick={() => setMenuOpen(false)}
60+
>
61+
Bridge
62+
</Link>
63+
<Link
64+
to="/usage"
65+
className={`menu-item ${pathname === "/usage" ? "active" : ""}`}
66+
onClick={() => setMenuOpen(false)}
67+
>
68+
Activity
69+
</Link>
3170
</div>
3271
</div>
3372

frontend/src/pages/Usage.tsx

+1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Suspense, useState, useEffect } from "react";
22
import { useLocation } from "react-router-dom";
33
import { useUsageStats } from "../hooks/useUsageStats.ts";
4+
import "../styles/usage.css";
45

56
interface TimePeriodTabsProps {
67
timePeriods: string[];

frontend/src/styles/bridge.css

+89
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
.bridge-container {
2+
width: 100%;
3+
display: flex;
4+
flex-direction: column;
5+
gap: 40px;
6+
}
7+
8+
.bridge-title {
9+
margin-bottom: 50px;
10+
color: var(--strata-terracotta-med);
11+
}
12+
13+
.bridge-section {
14+
max-width: 100%;
15+
overflow-x: visible;
16+
padding-right: 0;
17+
padding-left: 24px;
18+
}
19+
20+
.table-wrapper {
21+
overflow-x: auto;
22+
max-width: 100%;
23+
box-sizing: border-box;
24+
}
25+
26+
.operators-table,
27+
.transactions-table {
28+
min-width: 768px;
29+
width: auto;
30+
border-collapse: collapse;
31+
}
32+
33+
.operators-row td:first-child {
34+
font-weight: bold;
35+
}
36+
37+
.transactions-header th,
38+
.operators-row td,
39+
.transactions-row td {
40+
text-align: center;
41+
padding: 12px 60px;
42+
}
43+
44+
.transactions-header th {
45+
font-weight: bold;
46+
border-bottom: 1px solid darkgray;
47+
}
48+
49+
.operators-row:not(:last-child),
50+
.transactions-row {
51+
border-bottom: 1px solid darkgray;
52+
}
53+
54+
.table-cell {
55+
text-align: center;
56+
}
57+
58+
.no-items {
59+
font-style: italic;
60+
color: gray;
61+
}
62+
63+
@media screen and (min-width: 769px) {
64+
.table-wrapper {
65+
overflow-x: visible; /* ✅ Only scroll on small screens */
66+
}
67+
}
68+
69+
@media screen and (max-width: 768px) {
70+
.table-wrapper {
71+
display: block;
72+
}
73+
74+
.bridge-section {
75+
margin: 1rem 0;
76+
}
77+
78+
.operators-table,
79+
.transactions-table {
80+
min-width: 600px;
81+
}
82+
83+
.transactions-header th,
84+
.transactions-row td,
85+
.operators-row td {
86+
padding: 8px;
87+
font-size: 14px;
88+
}
89+
}

0 commit comments

Comments
 (0)