Skip to content

feat(integrations): add macOS dock menu and progress bar integration#56

Merged
flexiondotorg merged 2 commits intomainfrom
macOS
Mar 26, 2026
Merged

feat(integrations): add macOS dock menu and progress bar integration#56
flexiondotorg merged 2 commits intomainfrom
macOS

Conversation

@flexiondotorg
Copy link
Copy Markdown
Member

  • Create new macos-dock module with dock menu showing now-playing track
  • Add play/pause, next, and previous controls to dock menu
  • Implement dock progress bar synced to track playback position
  • Add share sheet for sharing current track's Apple Music URL
  • Wire dock integration into main Electron app with command callbacks
  • Add share menu item to tray's now-playing menu on macOS only
  • Automatically clear now-playing state after 30s of inactivity

Checklist

  • I have performed a self-review of my code
  • I have tested my changes and confirmed there are no regressions

- Create new macos-dock module with dock menu showing now-playing track
- Add play/pause, next, and previous controls to dock menu
- Implement dock progress bar synced to track playback position
- Add share sheet for sharing current track's Apple Music URL
- Wire dock integration into main Electron app with command callbacks
- Add share menu item to tray's now-playing menu on macOS only
- Automatically clear now-playing state after 30s of inactivity

Signed-off-by: Martin Wimpress <code@wimpress.io>
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 6 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/main.ts">

<violation number="1" location="src/main.ts:16">
P2: `macos-dock` is a macOS-only integration but is imported at module scope. This breaks the project convention for platform-specific modules and risks loading macOS-only code on Linux/Windows. Lazy-require it inside a `process.platform === 'darwin'` guard (mirroring the MPRIS pattern).</violation>
</file>

<file name="src/tray.ts">

<violation number="1" location="src/tray.ts:518">
P3: Tray menu labels are localised via `strings`, but this new Share item hardcodes `'Share...'`. Add a tray string and use it here so the menu remains localised.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

- Add SHARE_TEXT record to assets/locales/tray.json with translations
  for all 32 supported languages
- Export SHARE_TEXT constant in src/i18n.ts
- Add share property to TrayStrings interface and getTrayStrings()
  return value
- Update src/tray.ts to use localised strings.share instead of hardcoded
  "Share..."
- Update src/integrations/macos-dock/index.ts to use localised
  strings.share

Signed-off-by: Martin Wimpress <code@wimpress.io>
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

0 issues found across 5 files (changes from recent commits).

Requires human review: This PR adds a new macOS integration module and modifies core UI components (tray and dock). New feature implementations require human review for UX and state management consistency.

@flexiondotorg flexiondotorg merged commit 98e1efe into main Mar 26, 2026
12 checks passed
@flexiondotorg flexiondotorg deleted the macOS branch March 26, 2026 18:19
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