diff --git a/.planning/STATE.md b/.planning/STATE.md index b4f7eb515..0dbba1ccf 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -103,7 +103,8 @@ None - ready to begin Phase 1 planning. | # | Description | Date | Commit | Directory | |---|-------------|------|--------|-----------| | 1 | Create start.sh script with menu for test, dev, etc. | 2026-03-13 | b474f70 | [1-create-start-sh-script-with-menu-for-tes](./quick/1-create-start-sh-script-with-menu-for-tes/) | -| 2 | Update start.sh for network access and port configuration | 2026-03-13 | - | [2-update-start-sh-for-network-access-and-p](./quick/2-update-start-sh-for-network-access-and-p/) | +| 2 | Update start.sh for network access and port configuration | 2026-03-13 | e327ab9 | [2-update-start-sh-for-network-access-and-p](./quick/2-update-start-sh-for-network-access-and-p/) | +| 3 | Fix UI feedback: header, navigation, and layout issues | 2026-03-13 | - | [3-fix-ui-feedback-header-navigation-and-la](./quick/3-fix-ui-feedback-header-navigation-and-la/) | --- diff --git a/.planning/quick/3-fix-ui-feedback-header-navigation-and-la/3-PLAN.md b/.planning/quick/3-fix-ui-feedback-header-navigation-and-la/3-PLAN.md new file mode 100644 index 000000000..a66a47a03 --- /dev/null +++ b/.planning/quick/3-fix-ui-feedback-header-navigation-and-la/3-PLAN.md @@ -0,0 +1,80 @@ +--- +plan: 1 +type: quick +files_modified: + - sample_interface/src/app/components/Header.tsx + - sample_interface/src/app/components/Sidebar.tsx + - sample_interface/src/app/components/views/RainfallView.tsx + - sample_interface/src/app/components/views/GraphView.tsx +--- + + +Fix UI feedback: header branding, navigation collapse, and layout fitting 1024x600 + + + +User feedback: +1. Header: Change "Data Station" to "RTU", use @logo/[LOGO] TCK.svg for logo, fix Solar/Battery box sizing +2. Navigation: Make "Menu" text clickable to collapse sidebar, not just the icon +3. RainfallView: Remove extra space before title, fit to 1024x600 without scrolling +4. GraphView: Fit to 1024x600 screen + + + + + +Fix Header branding and sizing +sample_interface/src/app/components/Header.tsx + +1. Change "Data Station" text to "RTU" +2. Use @logo/[LOGO] TCK.svg as logo (need to check correct path) +3. Fix Solar/Battery boxes to match other header items size (same row, consistent height) +4. Ensure all header items fit in 1-2 rows with compact height + +grep -E "RTU|Data Station" sample_interface/src/app/components/Header.tsx +Header shows RTU branding with correct logo and sizing + + + +Fix Sidebar collapse behavior +sample_interface/src/app/components/Sidebar.tsx + +1. Make "Menu" text clickable to toggle collapse (not just the icon) +2. Ensure collapse/expand works on click + +grep -E "Menu|collapse" sample_interface/src/app/components/Sidebar.tsx | head -5 +Sidebar Menu text is clickable + + + +Fix RainfallView layout +sample_interface/src/app/components/views/RainfallView.tsx + +1. Remove extra space/padding before title +2. Reduce padding/margins to fit 1024x600 without scrolling +3. Make Last Update section visible without page down + +grep "p-" RainfallView.tsx | head -5 +RainfallView fits 1024x600 screen + + + +Fix GraphView layout +sample_interface/src/app/components/views/GraphView.tsx + +1. Adjust layout to fit 1024x600 screen +2. Reduce padding/margins as needed + +ls -la sample_interface/src/app/components/views/GraphView.tsx +GraphView fits 1024x600 screen + + + + + +- Header shows "RTU" with TCK logo +- Header items (Solar/Battery) same size as Time/Date/Station +- Sidebar Menu text toggles collapse +- RainfallView fits 1024x600 without scrolling +- GraphView fits 1024x600 + diff --git a/.planning/quick/3-fix-ui-feedback-header-navigation-and-la/3-SUMMARY.md b/.planning/quick/3-fix-ui-feedback-header-navigation-and-la/3-SUMMARY.md new file mode 100644 index 000000000..5db1e5c05 --- /dev/null +++ b/.planning/quick/3-fix-ui-feedback-header-navigation-and-la/3-SUMMARY.md @@ -0,0 +1,38 @@ +# Quick Task 3 Summary - UI Fixes + +**Task:** Fix UI feedback: header, navigation, and layout issues +**Date:** 2026-03-13 +**Status:** Complete + +--- + +## Completed + +### Task 1: Fix Header branding and sizing +- Changed "Data Station" text to "RTU" +- Added TCK logo from `/logo/[LOGO] TCK.svg` +- Made all header items (Solar, Battery, Time, Date, Station, etc.) same size with consistent padding +- Reduced header height to fit better + +### Task 2: Fix Sidebar collapse behavior +- Made MENU text clickable (not just the chevron icon) +- Clicking MENU now toggles sidebar collapse/expand + +### Task 3: Fix RainfallView layout +- Removed extra space before title +- Reduced padding to fit 1024x600 screen +- Made Last Update section visible without scrolling + +### Task 4: Fix GraphView layout +- Reduced padding and spacing +- Made chart smaller to fit 1024x600 +- Reduced stat cards size + +--- + +## Files Modified + +- `sample_interface/src/app/components/Header.tsx` +- `sample_interface/src/app/components/Sidebar.tsx` +- `sample_interface/src/app/components/views/RainfallView.tsx` +- `sample_interface/src/app/components/views/GraphView.tsx` diff --git a/sample_interface/src/app/components/Header.tsx b/sample_interface/src/app/components/Header.tsx index aa4cf7c84..6a3d24f8e 100644 --- a/sample_interface/src/app/components/Header.tsx +++ b/sample_interface/src/app/components/Header.tsx @@ -4,6 +4,7 @@ import { useSensorStore } from "../stores/sensorStore"; import { VoltageDisplay } from "./VoltageDisplay"; import { BatteryStatus } from "./BatteryStatus"; import { LoginIndicator } from "./LoginIndicator"; +import TCKLogo from "../../../../logo/[LOGO] TCK.svg?react"; export function Header() { const [currentTime, setCurrentTime] = useState(new Date()); @@ -34,36 +35,36 @@ export function Header() { }; return ( -
+
{/* Logo */} -
-
- DS +
+
+
- Data Station + RTU
-
+
{/* Time */} -
+
Time: {formatTime(currentTime)}
{/* Date */} -
+
Date: {formatDate(currentTime)}
{/* Station ID */} -
+
Station: {data.station.id}
{/* Comm Status */} -
+
{isOnline ? ( <> @@ -80,7 +81,7 @@ export function Header() {
{/* Version */} -
+
Ver: {data.station.version}
@@ -89,10 +90,21 @@ export function Header() { {/* Solar Voltage */} - +
+ Solar: + {data.voltage.solar.toFixed(1)}V +
{/* Battery Voltage */} - +
+ Battery: + + {data.voltage.battery.toFixed(1)}V + + + {data.voltage.batteryStatus} + +
); diff --git a/sample_interface/src/app/components/Sidebar.tsx b/sample_interface/src/app/components/Sidebar.tsx index 0b8f3cfaa..ebb98e2f2 100644 --- a/sample_interface/src/app/components/Sidebar.tsx +++ b/sample_interface/src/app/components/Sidebar.tsx @@ -117,13 +117,13 @@ export function Sidebar({ collapsed, onToggle }: SidebarProps) { collapsed ? "w-16" : "w-64" }`} > -
- {!collapsed && MENU} +
diff --git a/sample_interface/src/app/components/views/GraphView.tsx b/sample_interface/src/app/components/views/GraphView.tsx index 9b6b5402d..65f9d07ed 100644 --- a/sample_interface/src/app/components/views/GraphView.tsx +++ b/sample_interface/src/app/components/views/GraphView.tsx @@ -3,45 +3,45 @@ import { BarChart3 } from "lucide-react"; export function GraphView() { return ( -
-
- -

Graph View

+
+
+ +

Graph View

- - - Data Visualization + + + Data Visualization - -
- Chart visualization area + +
+ Chart visualization area
-
+
- +
-
24h
-
Time Range
+
24h
+
Time Range
- +
-
156
-
Data Points
+
156
+
Data Points
- +
-
12.5
-
Avg Value
+
12.5
+
Avg Value
diff --git a/sample_interface/src/app/components/views/RainfallView.tsx b/sample_interface/src/app/components/views/RainfallView.tsx index 4b420f0aa..ef863416f 100644 --- a/sample_interface/src/app/components/views/RainfallView.tsx +++ b/sample_interface/src/app/components/views/RainfallView.tsx @@ -1,4 +1,3 @@ -import { Card, CardContent, CardHeader, CardTitle } from "../ui/card"; import { Droplets } from "lucide-react"; import { useSensorStore } from "../../stores/sensorStore"; import { RainfallCard } from "../RainfallCard"; @@ -20,26 +19,24 @@ export function RainfallView() { const isKiosk = displayMode === 'kiosk'; return ( -
-
-
- -

- Rainfall Monitor -

-
- -
- - -
+
+
+ +

+ Rainfall Monitor +

+
+ +
+ +
-
+
{rainfallItems.map((item) => ( - - - Last Update - - -

- {new Date(data.timestamp).toLocaleString()} -

-
-
+
+ Last Update: {new Date(data.timestamp).toLocaleString()} +
); }