1.2 KiB
1.2 KiB
Fluid Sidebar Activity Plan
Goal
Transform the "laggy" sidebar counters into a fluid, high-energy "Dashboard" with smooth animations and speed metrics.
Proposed Changes
1. New Helper: SmoothCounter (bin/opencode-ink.mjs)
- Prop:
value(Target number) - Logic:
- On
valuechange, start a 50ms interval. - Increment
displayValuetowardsvalueby a dynamic step(delta / 2). - Effect: Numbers "roll" up rapidly instead of jumping.
- On
2. New Hook: useTrafficRate (bin/opencode-ink.mjs)
- Input:
value(increasing number) - Logic:
- Store
(timestamp, value)tuples for last 2 seconds. - Calculate delta over time ->
chars/sec. - Return
rate.
- Store
3. Update Sidebar Component
- Header:
⚡ ACTIVITY (LIVE)with blinking dot? - Stats:
📝 Chars: Use<SmoothCounter />🚀 Speed:<SmoothCounter value={rate} /> ch/s
- Visuals:
- "Pulse Bar":
[▓▓▓░░]length depends onrate(higher speed = longer bar).
- "Pulse Bar":
Verification
- Run Chat: Ask "Write a long story".
- Observe:
- Do numbers "roll" smoothly?
- Does Speed indicator fluctuate?
- Is the UI responsive (no lag)?