Skip to content

Comments

feat(live): custom channel management — add/remove/reorder, standale window, i18n#276

Closed
Niboshi-Wasabi wants to merge 2 commits intokoala73:mainfrom
Niboshi-Wasabi:feat/live-panel-customize
Closed

feat(live): custom channel management — add/remove/reorder, standale window, i18n#276
Niboshi-Wasabi wants to merge 2 commits intokoala73:mainfrom
Niboshi-Wasabi:feat/live-panel-customize

Conversation

@Niboshi-Wasabi
Copy link
Contributor

@Niboshi-Wasabi Niboshi-Wasabi commented Feb 23, 2026

Summary

Users can add, remove, and reorder the channels shown in the LIVE panel. A standalone channel management view and a gear icon inside the panel are provided to access it.

Changes

  • Standalone channel management window (?live-channels=1): Channel list, add form, and “Restore default channels” button.
  • LIVE panel: Gear icon opens channel management; channel tabs can be reordered by drag and drop.
  • Editing: Row click opens inline edit (handle, display name, remove, save, cancel).
  • Confirmation dialog: Delete is confirmed with a custom modal instead of window.confirm.
  • i18n: Added strings for all locales: manage, addChannel, youtubeHandle, displayName, confirmTitle, confirmDelete, remove, save, cancel, restoreDefaults, channelSettings, and related keys.
  • UI: Extra spacing between the channel list and the “Add channel” form on the channel management screen.
  • Other: Standardized settings-window comments to English.

Desktop (Tauri)

  • Channel management is available in the desktop app: the gear icon opens a native window (same UI as the web ?live-channels=1 view).
  • Added live-channels.html and a Tauri entry point; open_live_channels_window_command / close_live_channels_window in Rust.
  • In dev, the window uses the main window’s origin (base_url) so it works when the dev server runs on a different port than devUrl.

Screenshots

  1. LIVE panel (default) — Channel tabs and gear icon
2026-02-24_04h56_59
  1. Channel management — List and “Add channel” form (modal or separate window)
2026-02-24_04h57_34
  1. Delete confirmation modal — “Delete this channel?” with Cancel / REMOVE
2026-02-24_04h58_11
  1. Edit mode (preset) — Built-in channel selected; Remove / Save / Cancel visible
2026-02-24_05h03_13
  1. Edit mode (custom) — Custom-added channel (e.g. @ntv_news): handle, display name, Remove / Save / Cancel
2026-02-24_05h03_22
  1. Channel tabs wrap — LIVE panel with tabs wrapping to two rows
2026-02-24_05h03_59

Type of change

  • Bug fix
  • New feature
  • New data source / feed
  • New map layer
  • Refactor / code cleanup
  • Documentation
  • CI / Build / Infrastructure

Affected areas

  • Map / Globe
  • News panels / RSS feeds
  • AI Insights / World Brief
  • Market Radar / Crypto
  • Desktop app (Tauri)
  • API endpoints (/api/*)
  • Config / Settings
  • Other:

Checklist

  • Tested on worldmonitor.app variant
  • Tested on tech.worldmonitor.app variant (if applicable)
  • New RSS feed domains added to api/rss-proxy.js allowlist (if adding feeds)
  • No API keys or secrets committed
  • TypeScript compiles without errors (npm run typecheck)

Screenshots

  1. Delete confirmation modal — “Delete this channel?” with Cancel / REMOVE
  2. Restore default channels — Button visible when some built-ins are missing
  3. Standalone channel management — List, restore button, add form, and spacing
  4. Edit mode (preset) — Built-in channel selected; Remove / Save / Cancel visible
  5. Edit mode (custom) — Custom-added channel (e.g. @ntv_news): handle, display name, Remove / Save / Cancel
  6. Channel tabs wrap — LIVE panel with tabs wrapping to two rows

Type of change

  • Bug fix
  • New feature
  • New data source / feed
  • New map layer
  • Refactor / code cleanup
  • Documentation
  • CI / Build / Infrastructure

Affected areas

  • Map / Globe
  • News panels / RSS feeds
  • AI Insights / World Brief
  • Market Radar / Crypto
  • Desktop app (Tauri)
  • API endpoints (/api/*)
  • Config / Settings
  • Other:

Checklist

  • Tested on worldmonitor.app variant
  • Tested on tech.worldmonitor.app variant (if applicable)
  • New RSS feed domains added to api/rss-proxy.js allowlist (if adding feeds)
  • No API keys or secrets committed
  • TypeScript compiles without errors (npm run typecheck)

Screenshots

Niboshi-Wasabi and others added 2 commits February 23, 2026 17:32
…e window, i18n

- Standalone channel management window (?live-channels=1) with list, add form, restore defaults
- LIVE panel: gear icon opens channel management; channel tabs reorderable via DnD
- Row click to edit; custom modal for delete confirmation (no window.confirm)
- i18n for all locales (manage, addChannel, youtubeHandle, displayName, etc.)
- UI: margin between channel list and add form in management window
- settings-window: panel display settings comment in English

Co-authored-by: Cursor <cursoragent@cursor.com>
- Add live-channels.html and live-channels-main.ts for standalone window
- Tauri: open_live_channels_window_command, close_live_channels_window, open live-channels window (WebviewUrl::App or External from base_url)
- LiveNewsPanel: in desktop runtime invoke Tauri command with base_url (window.location.origin) so dev works when Vite runs on a different port than devUrl
- Vite: add liveChannels entry to build input
- capabilities: add live-channels window
- tauri.conf: devUrl 3000 to match vite server.port
- docs: PR_LIVE_CHANNEL_MANAGEMENT.md for PR koala73#276

Co-authored-by: Cursor <cursoragent@cursor.com>
@vercel
Copy link

vercel bot commented Feb 23, 2026

@Niboshi-Wasabi is attempting to deploy a commit to the Elie Team on Vercel.

A member of the Team first needs to authorize it.

koala73 added a commit that referenced this pull request Feb 23, 2026
* feat(live): custom channel management — add/remove/reorder, standalone window, i18n

- Standalone channel management window (?live-channels=1) with list, add form, restore defaults
- LIVE panel: gear icon opens channel management; channel tabs reorderable via DnD
- Row click to edit; custom modal for delete confirmation (no window.confirm)
- i18n for all locales (manage, addChannel, youtubeHandle, displayName, etc.)
- UI: margin between channel list and add form in management window
- settings-window: panel display settings comment in English

Co-authored-by: Cursor <cursoragent@cursor.com>

* feat(tauri): channel management in desktop app, dev base_url fix

- Add live-channels.html and live-channels-main.ts for standalone window
- Tauri: open_live_channels_window_command, close_live_channels_window, open live-channels window (WebviewUrl::App or External from base_url)
- LiveNewsPanel: in desktop runtime invoke Tauri command with base_url (window.location.origin) so dev works when Vite runs on a different port than devUrl
- Vite: add liveChannels entry to build input
- capabilities: add live-channels window
- tauri.conf: devUrl 3000 to match vite server.port
- docs: PR_LIVE_CHANNEL_MANAGEMENT.md for PR #276

Co-authored-by: Cursor <cursoragent@cursor.com>

* fix: address review issues in live channel management PR

- Revert settings button to open modal (not window.open popup)
- Revert devUrl from localhost:3000 to localhost:5173
- Guard activeChannel against empty channels (fall back to defaults)
- Escape i18n strings in innerHTML with escapeHtml() to prevent XSS
- Only store displayNameOverrides for actually renamed channels
- Use URL constructor for live-channels window URL
- Add CSP meta tag to live-channels.html
- Remove unused i18n keys (edit, editMode, done) from all locales
- Remove unused CSS classes (live-news-manage-btn/panel/wrap)
- Delete PR instruction doc (PR_LIVE_CHANNEL_MANAGEMENT.md)

---------

Co-authored-by: Masaki <yukkurihakutaku@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
@koala73
Copy link
Owner

koala73 commented Feb 23, 2026

I created a different branch and pulled your commits to be able to add more on it 93ea828
Closing this PR , but a different PR with the same content (+more) made it and you're contributing
Thank you @Niboshi-Wasabi

@koala73 koala73 closed this Feb 23, 2026
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.

2 participants