Skip to content

feat: Add reusable UI components for settings improvements (PR #1/8)#67

Merged
eyelock merged 2 commits into
mainfrom
fix/settings-views-tweaks
Jan 18, 2026
Merged

feat: Add reusable UI components for settings improvements (PR #1/8)#67
eyelock merged 2 commits into
mainfrom
fix/settings-views-tweaks

Conversation

@eyelock
Copy link
Copy Markdown
Owner

@eyelock eyelock commented Jan 18, 2026

Summary

This is PR #1 of 8 in the settings UI improvements initiative. This PR adds foundational reusable SwiftUI components that will be used in subsequent PRs to refactor and improve the settings UI.

Components Added

1. KeyValueEditor

  • Unified key=value editor for environment variables and tags
  • Configurable secret toggle and validation
  • Full-width inputs with proper alignment
  • Supports both .environmentVariables and .tags configurations

2. PathInputField

  • Two-line path/directory input with browse button
  • Optional path validation with warning indicators
  • Consistent monospaced styling
  • Pre-selects current path in file browser

3. StatusIndicator

  • Reusable status line component
  • Icon + descriptive text + colored status indicator
  • Multiple states: active, ready, installed, disabled, inactive, error
  • Consistent styling for feature/service state display

Technical Details

  • ✅ All components conform to Swift Sendable protocol for concurrency safety
  • ✅ Build completes successfully with zero errors
  • ✅ Components have comprehensive inline documentation
  • ✅ No new localization strings needed (reusing existing strings)
  • ✅ All formatting checks pass

Testing

  • ✅ App launches without crashes
  • ✅ No regressions introduced
  • ✅ Components not yet integrated (standalone addition)
  • ✅ All 521 tests pass

Implementation Plan

This is part of an 8-PR incremental delivery strategy:

Checklist

  • Code builds without errors
  • App launches and runs correctly
  • Components documented
  • Sendable conformance verified
  • All CI checks pass
  • Formatting fixes applied
  • Ready for merge

🤖 Generated with Claude Code

Add three new SwiftUI components to support settings UI refactoring:

- KeyValueEditor: Unified editor for environment variables and tags
  - Configurable secret toggle and validation
  - Full-width inputs with proper alignment
  - Supports both .environmentVariables and .tags configurations

- PathInputField: Two-line path input with browse button
  - Optional path validation with warning indicators
  - Consistent monospaced styling
  - Pre-selects current path in file browser

- StatusIndicator: Reusable status line component
  - Icon + descriptive text + colored status indicator
  - Multiple states: active, ready, installed, disabled, inactive, error
  - Consistent styling for feature/service state display

All components conform to Swift Sendable protocol for concurrency safety.

Part of settings UI improvements initiative (PR #1 of 8).

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@claude
Copy link
Copy Markdown

claude Bot commented Jan 18, 2026

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

Auto-format PathInputField and StatusIndicator to fix:
- Import statement ordering
- Line breaks for long lines
- Indentation consistency

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@eyelock eyelock merged commit b1e3567 into main Jan 18, 2026
6 checks passed
@eyelock eyelock deleted the fix/settings-views-tweaks branch January 18, 2026 16:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant