fix(ui): fill host pane + show controls when hosted in the Suite - #15
Merged
Conversation
Two issues when LP-700 runs out-of-process inside the Amateur Radio Suite: 1. The UI didn't fill the host pane — ContentView used only minWidth/minHeight and meterPane used .frame(maxWidth: .infinity, alignment: .top) with no maxHeight, so it floated undersized. Add maxWidth/maxHeight .infinity so it fills and top-anchors. 2. The toolbar controls (connection badge, backend badge, connection + SETUP buttons) were invisible — SwiftUI `.toolbar` items render in the window title bar, which a hosted .appex doesn't have. Add an `embedded` flag: the extension passes embedded: true and ContentView renders the same controls inline (embeddedToolbar); the standalone app keeps its window toolbar. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
When hosted out-of-process in the Amateur Radio Suite, this plugin (1) didn't fill the host pane — content floated undersized in a band with empty space — and (2) showed no controls (the connection badge, mode/backend picker, and connection + setup buttons were missing). Antenna/BPF render fine because their controls are reachable via a navigation container / inline; this plugin put them only in
.toolbar.Cause
ContentViewconstrained with onlyminWidth(/minHeight) andmeterPaneused.frame(maxWidth: .infinity, alignment: .top)with nomaxHeight— so it sized to content and the host centered it..toolbaritems render in the window title bar. A hosted.appexhas no window, so they vanish (NavigationStack doesn't help on macOS — it also defers to the window).Fix
maxWidth: .infinity, maxHeight: .infinityso the content fills the pane (top-anchored).embeddedflag: the extension entry point passesembedded: true, andContentViewrenders the same controls inline (embeddedToolbar) instead of relying on the window toolbar. The standalone app (embedded: false) keeps its window toolbar unchanged.Verified
Built locally and hosted in the Suite: the UI now fills the pane and the inline control bar (connection badge · picker · connection + setup buttons) renders, matching the standalone window. Standalone app unaffected.
swift buildclean.🤖 Generated with Claude Code