tree 103ea687419bd792471f057727d2f174428b4215
parent 8ad17ba9f185be76a4e715d9f21868b0cf27b366
author Philip Zeyliger <philip@bold.dev> 1749340421 +0000
committer Autoformatter <bot@sketch.dev> 1749498475 +0000

webui: add skaband navigation link with image to desktop and mobile

Add conditional linking functionality to make the 'sketch' title in both desktop
and mobile web UI clickable when a skaband address is configured, displaying
the sketch.dev.png image alongside the text for enhanced branding and navigation
back to the skaband dashboard.

Problem Analysis:
When users access sketch through skaband (the hosted service), they lose easy
navigation back to their skaband dashboard since the sketch title in the header
was always static text. This created a disconnected experience between the
skaband interface and individual sketch sessions, and lacked visual branding
consistency with the hosted service. The feature needed to work in both
container mode and unsafe mode deployments.

Implementation Changes:

1. Backend Infrastructure:
   - Added SkabandAddr() method to CodingAgent interface for state management
   - Enhanced State struct with skaband_addr field (with omitempty for clean JSON)
   - Modified getState() function to include agent's skaband address in responses
   - Updated mockAgent in tests to support new SkabandAddr() method

2. SkabandClient Integration:
   - Added Addr() method to SkabandClient to expose stored skaband server address
   - Updated Agent.SkabandAddr() to get address from existing SkabandClient
   - Leverages existing skaband infrastructure used for session history tools
   - No duplicate storage or additional configuration required

3. TypeScript Type Updates:
   - Regenerated webui/src/types.ts to include skaband_addr field in State interface
   - Maintained backward compatibility with existing state structure
   - Auto-generated types ensure type safety across Go/TypeScript boundary

4. Desktop Web UI Enhancement:
   - Modified sketch-app-shell.ts to conditionally render sketch title as link
   - Added conditional logic: renders link with image when skaband_addr exists
   - Uses target='_blank' and rel='noopener noreferrer' for secure external linking
   - Displays skaband_addr/sketch.dev.png image alongside 'sketch' text
   - Maintains existing appearance and behavior when no skaband address configured

5. Mobile Web UI Implementation:
   - Added skabandAddr property to mobile-title component
   - Implemented conditional rendering matching desktop functionality
   - Mobile-optimized CSS with appropriate image sizing (18px vs 20px desktop)
   - Integrated with existing mobile-shell state management infrastructure

6. CSS Styling Integration:
   - Added .banner-title a styles for seamless link appearance with flexbox layout
   - Configured color: inherit to match existing title styling
   - Added hover effects with opacity transition and underline for user feedback
   - Image styling with rounded corners and appropriate dimensions
   - Mobile-responsive design with media queries for different screen sizes

7. Test Coverage:
   - Updated test infrastructure to support new SkabandAddr() method
   - Comprehensive testing of state endpoint with and without skaband address
   - Verified omitempty behavior for clean JSON responses
   - All existing tests continue passing without modification

Technical Details:
- Uses omitempty JSON tag to exclude empty skaband addresses from API responses
- Leverages existing containerState property in web components for state access
- Maintains full backward compatibility with non-skaband sketch deployments
- Clean separation between configuration, state management, and presentation layers
- Flexbox layout for proper image and text alignment in banner links

Security Considerations:
- External links use target='_blank' with rel='noopener noreferrer'
- No user input validation needed since skaband_addr comes from server configuration
- Link destination controlled by deployment configuration, not user input
- Image source follows same security model as main skaband address

Benefits:
- Seamless navigation between sketch sessions and skaband dashboard
- Enhanced visual branding with sketch.dev.png image display
- Improved user experience for hosted skaband users across all device types
- Mobile-optimized responsive design for touch interfaces
- Zero impact on standalone sketch deployments
- Uses existing, tested skaband infrastructure without additional complexity

Testing:
- Verified end-to-end functionality with real sketch.dev skaband server
- Confirmed web UI displays clickable sketch logo link in desktop and mobile views
- Tested state endpoint returns correct skaband_addr from SkabandClient
- Validated responsive design across different screen sizes
- All Go tests and TypeScript compilation successful

This enhancement provides intuitive navigation for skaband users while
maintaining the existing experience for standalone sketch deployments,
creating a more cohesive and visually branded interface across all deployment
modes and device types.

Co-Authored-By: sketch <hello@sketch.dev>
Change-ID: sa6158676609fe9f0k
