Commit Graph
288 Commits
Author SHA1 Message Date
google-labs-jules[bot] bd868fb7ea Refactor video modal sharing options into a unified Share menu
- Replaced the standalone "Copy Magnet" button and "Share" button with a new Share menu.
- Implemented `createVideoShareMenuPanel` to render the new menu with "Copy URL", "Share on Nostr", "Copy Magnet", and "Copy CDN Link" options.
- Updated `VideoModal.js` to manage the share menu state and handle actions.
- Added `video:share-nostr` and `video:copy-cdn` event handlers in `app.js`.
- Removed the `#copyMagnetBtn` element from `video-modal.html`.
- Preserved existing functionality for "Copy URL" and "Copy Magnet".
- "Share on Nostr" is currently a placeholder logging a message, disabled for logged-out users.
- "Copy CDN Link" is disabled if no URL is available.
2026-01-22 04:17:29 +00:00
google-labs-jules[bot] 508071a95f Remove "Republish now" button from profile watch history
Removed the "Republish now" button from the watch history tab in the profile modal (profile-modal.html) and its configuration reference in the controller (profileModalController.js). This button was deemed unnecessary for the watch history functionality within the modal. Verified by unit tests and manual inspection.
2026-01-21 21:06:51 +00:00
google-labs-jules[bot] a9bd3e1010 feat(ui): make disclaimer modal full-screen on mobile
Refactors the disclaimer modal to use responsive utility classes, forcing full-screen width/height on mobile while preserving the card-based layout on desktop. This matches the behavior of the login modal and works around existing CSS limitations for modal sheets.
2026-01-21 03:55:37 +00:00
google-labs-jules[bot] a1dc9ccf59 fix(ui): login modal mobile layout and responsiveness 2026-01-21 01:21:50 +00:00
google-labs-jules[bot] a49eb6a644 Make Login Modal full-screen on mobile devices
This change updates `components/login-modal.html` to remove layout constraints (`items-start`, `justify-center`, `max-h-modal-shell`) on mobile viewports (< lg) by prefixing them with `lg:`. This allows the modal to utilize the default full-screen behavior provided by the `.bv-modal` and `.modal-sheet` classes on smaller screens, matching the behavior of the Profile and Video modals. Desktop layout remains unchanged.
2026-01-20 19:18:45 +00:00
google-labs-jules[bot] 486c8af4a1 feat: Move logout button to menu list on mobile
- Added a new mobile-specific "Logout" button to the profile navigation list, visible only on screens smaller than `lg`.
- Hid the existing footer logout button on mobile screens.
- Updated `ProfileModalController` to bind the logout logic to the new mobile button.
- Applied `data-variant="critical"` and spacing to the new button to match styling requirements.
2026-01-20 14:26:54 +00:00
google-labs-jules[bot] ac4d087f3e Remove legacy Direct Message privacy UI
Removes the "Direct message privacy" section from the profile modal's Messages tab, as these settings are now managed via the AppShell (gear icon).

- Removed privacy section HTML from `components/profile-modal.html`.
- Updated `js/ui/profileModalController.js` to remove legacy DOM references and event listeners.
- Preserved `handleReadReceiptsToggle` and `handleTypingIndicatorsToggle` methods for AppShell integration.
- Updated `syncDmPrivacySettingsUi` to be a no-op to prevent errors in existing call sites.
2026-01-20 02:46:04 +00:00
google-labs-jules[bot] 383a77d6da feat: move moderation and link preview settings to new Safety tab in Profile modal
- Added 'Safety' tab to `components/profile-modal.html`, positioned before 'Blocked'
- Moved `profileModerationSettings` and `profileLinkPreviewSettings` panels to the new tab
- Updated `ProfileModalController.js` to manage the new tab and initialize settings when selected
- Renamed 'Safety & Moderation' panel header to 'Safety'
2026-01-20 01:58:02 +00:00
thePR0M3TH3AN 933f6101cf Merge branch 'unstable' into lockdown-mode-text-configuration-17597933588831189378 2026-01-19 16:40:09 -05:00
google-labs-jules[bot] ad69548fb7 feat: make lockdown mode title and message configurable
This change introduces `LOCKDOWN_TITLE` and `LOCKDOWN_MESSAGE` constants in `config/instance-config.js` and exposes them via `js/config.js`. It updates `components/lockdown-modal.html` to include IDs for the title and message elements, and modifies `js/index.js` to dynamically populate these elements with the configured text when initializing the lockdown interface. This allows instance operators to customize the maintenance mode appearance.

No new tests were added as this is a configuration and UI text update, but `tests/auth-service.test.mjs` was run to ensure no regressions in auth logic during lockdown.
2026-01-19 21:35:23 +00:00
google-labs-jules[bot] d8ab54417d feat(ui): overhaul profile modal and DM conversation list
- Maximized profile modal to be full-screen for better content visibility.
- Cleaned up DM conversation list by removing message previews and timestamps.
- Updated DM badges and outgoing messages to use theme accent color instead of generic blue.
- Refactored DM composer to move privacy and zap toggles into a "More" menu.
2026-01-19 20:57:57 +00:00
thePR0M3TH3AN d45d380e40 Improve DM unread indicators and profile modal layout 2026-01-19 15:09:35 -05:00
thePR0M3TH3AN e569801520 Add DM app shell mapping for profile modal 2026-01-19 14:40:21 -05:00
thePR0M3TH3AN 1c3645ff80 Replace profile messages pane with DM app shell mount 2026-01-19 14:21:39 -05:00
thePR0M3TH3AN 6116b6a7db Add relay health panel and telemetry opt-in 2026-01-19 14:03:15 -05:00
thePR0M3TH3AN 3c75ac8c3f Add DM read receipts and typing indicators 2026-01-19 13:29:40 -05:00
thePR0M3TH3AN 0eacbd1063 Add cached link previews with privacy toggle 2026-01-19 13:06:50 -05:00
thePR0M3TH3AN 9ea9fe2f08 Add DM attachment upload and preview flow 2026-01-19 12:51:34 -05:00
thePR0M3TH3AN 924ed9b482 Add DM privacy indicators and relay hint publishing 2026-01-19 10:56:54 -05:00
thePR0M3TH3AN 4566c96330 Add NIP-17 DM delivery option 2026-01-19 10:05:00 -05:00
thePR0M3TH3AN 47b312b2a8 Merge pull request #1383 from PR0M3TH3AN/ai/lint-20250222-8105466209014839431
chore(ai): apply formatting/lint autofixes
2026-01-19 09:25:53 -05:00
thePR0M3TH3AN eb52fbdf11 Add DM recipient handling in profile modal 2026-01-19 09:22:35 -05:00
google-labs-jules[bot] 9adeb0e6e5 chore(ai): apply formatting/lint autofixes
Run `npm run format` and `npm run lint`.
Fix stylelint configuration to correctly parse variables with units in their names.
Migrate raw CSS measurements to tokens in `css/tokens.css` and update usages in `css/tailwind.source.css` and HTML templates.
Improve `scripts/check-design-tokens.mjs` to handle variable names with unit-like suffixes.

Files changed:
- css/tailwind.source.css (formatted and fixed lint)
- css/tokens.css (added tokens)
- stylelint.config.cjs (fixed regex)
- scripts/check-design-tokens.mjs (improved detection logic)
- components/profile-modal.html (fixed arbitrary values)
- index.html (fixed arbitrary values)
2026-01-19 14:12:29 +00:00
thePR0M3TH3AN c70e17b9d0 Add DM controls to profile modal 2026-01-18 23:44:54 -05:00
thePR0M3TH3AN 6af12b3160 Merge pull request #1358 from PR0M3TH3AN/sidebar-reorder-subscriptions-history-9128078694631783696
Move Subscriptions sidebar icon above Watch History
2026-01-18 21:27:21 -05:00
google-labs-jules[bot] 405405d3c6 Move Subscriptions sidebar icon above Watch History
- Moved the Subscriptions link block above the Watch History link block in `components/sidebar.html`.
- Verified hydration logic with `tests/app/hydrate-sidebar-navigation.test.mjs`.
- Visually verified the order using a frontend verification script.
2026-01-19 02:26:50 +00:00
google-labs-jules[bot] 68bdd590a6 Remove IPNS support and related content
Deleted IPNS view, content, and asset files. Removed references to IPNS from the README, sidebar, and documentation pages. This feature is no longer supported for hosting.
2026-01-19 02:13:59 +00:00
thePR0M3TH3AN 1a715f9a45 Merge pull request #1340 from PR0M3TH3AN/ai/lint-20250222-8542702362424668840
chore(ai): apply formatting/lint autofixes
2026-01-18 20:42:55 -05:00
thePR0M3TH3AN 7b172d9e08 Add recently added sidebar link 2026-01-18 20:02:32 -05:00
thePR0M3TH3AN 1e547bc49c Add direct message composer to profile modal 2026-01-18 19:48:43 -05:00
google-labs-jules[bot] 43bbc40c57 chore(ai): apply formatting/lint autofixes
- Fixed inline style violations in `js/ui/components/EventDetailsModal.js` and `js/ui/components/SimilarContentCard.js` by converting to Tailwind classes.
- Fixed Tailwind token violations in `components/login-modal.html`.
- Fixed Tailwind color violations in `js/ui/components/EventDetailsModal.js`.
- Formatted `README.md`.
- Updated CSS formatting in `css/tailwind.source.css`.
2026-01-18 20:58:09 +00:00
google-labs-jules[bot] 4b6bb206ab Add Edit Profile feature to Profile Modal
- Added "Edit Profile" button to active profile card in profile modal
- Created `profilePaneEdit` with form fields for profile metadata (Kind 0)
- Implemented `populateEditPane`, `handleEditProfile`, `handleSaveProfile` in `ProfileModalController`
- Added file upload support for profile/banner images using `r2Service`
- Injected `r2Service` into `ProfileModalController` via `ApplicationBootstrap`
- Verified functionality with manual check of logic and structure
2026-01-18 19:36:47 +00:00
thePR0M3TH3AN dfc0a3938d Rename recent icon to for-you feed 2026-01-18 14:10:40 -05:00
thePR0M3TH3AN a846da13c0 Add for-you view wiring 2026-01-18 13:42:00 -05:00
google-labs-jules[bot] 4196a6bb42 Refactor NIP-46 login UI to be cleaner and QR-first
- Simplified `components/login-modal.html` to center the QR code and use a "Copy Link" button instead of a large textarea.
- Updated `js/ui/loginModalController.js` to support the new DOM structure and error handling.
- Added `docs/nip46-roadmap.md` to document current state and future features.
2026-01-16 19:40:46 +00:00
thePR0M3TH3AN 5c3230074e Add moderation override tracking by author and content 2026-01-16 13:50:32 -05:00
thePR0M3TH3AN e6f1d54bdb Merge pull request #1267 from PR0M3TH3AN/generic-storage-upload-modal-9485376532964213761
Generic Storage Support for Upload Modal
2026-01-16 10:49:57 -05:00
google-labs-jules[bot] 2b446e8ddd Refactor upload modal for generic storage and read-only config
- Updates Upload Modal UI labels to be provider-agnostic (e.g., 'Storage Credentials', 'Endpoint').
- Implements a read-only 'Summary View' for configured storage connections, collapsing the editable form by default.
- Adds 'Manage Storage' button that navigates to the Profile Modal's storage pane.
- Updates `initUploadModal.js` to inject the navigation callback.
- Updates `r2Service.js` status messages to be generic.
- Fixes unlock flow to ensure UI updates after storage unlock.
2026-01-16 15:44:22 +00:00
thePR0M3TH3AN b983661b41 Add seed-only moderation indicator 2026-01-16 10:26:21 -05:00
thePR0M3TH3AN d2d55849b9 Add trusted moderation stats to profile modal 2026-01-16 09:55:10 -05:00
google-labs-jules[bot] cf9d1c08be Refactor UploadModal to use StorageService for secure R2 credentials 2026-01-16 02:35:00 +00:00
google-labs-jules[bot] 621f0e4ce7 feat: implement storage tab in profile modal
- Add Storage tab to Profile Modal HTML with provider selector (R2 default) and connection form
- Wire ProfileModalController to handle tab switching, unlocking storage, and saving/testing connections
- Inject storageService into ProfileModalController via ApplicationBootstrap
- Repurpose Endpoint input as Account ID for R2 configurations
- Implement form validation and lock state handling
2026-01-16 02:05:44 +00:00
thePR0M3TH3AN 2062a9c494 Add generate account view template 2026-01-15 13:50:30 -05:00
thePR0M3TH3AN a3374f0569 Guard upload when info hash is unavailable 2026-01-14 21:38:27 -05:00
google-labs-jules[bot] e3b5d95e23 Fix visibility of CDN/P2P toggle in video modal
Moved the `.video-modal__source-toggle-container` out of the `.video-modal__stats` container (which is hidden when not in P2P mode) to a permanent location in the modal layout. This ensures the toggle remains visible regardless of the active playback source, allowing users to switch between CDN and P2P even if the P2P stats panel is hidden. The toggle logic in `VideoModal.js` correctly handles the visibility of the toggle buttons themselves based on source availability.
2026-01-15 01:39:20 +00:00
google-labs-jules[bot] 6c3ac4d49f Implement video source toggle (CDN vs P2P)
- Added source toggle UI in `components/video-modal.html`.
- Updated `VideoModal.js` to manage toggle visibility (only when both URL and Magnet exist), update peer/server counts, and dispatch `playback:switch-source` events.
- Updated `PlaybackService.js` to support a `forcedSource` option, allowing bypassing of the URL probe when "torrent" is forced.
- Updated `app.js` to listen for the toggle event and re-initialize playback with the forced source preference.
- Updated `tests/ui/helpers/jsdom-test-helpers.mjs` to expose necessary globals for JSDOM testing.
- Verified functionality with targeted updates and existing unit tests.
2026-01-14 21:18:46 +00:00
google-labs-jules[bot] a5e7e48fea Fix lint:tailwind-brackets errors by using design tokens
Replaced arbitrary Tailwind values with standard design tokens in HTML files to pass the linting checks:
- `components/upload-modal.html`: Replaced `text-[10px]` with `text-4xs` (approx. 10.4px).
- `views/channel-profile.html`: Replaced `max-sm:text-[0.7rem]` with `max-sm:text-2xs` (0.7rem).
- `views/channel-profile.html`: Replaced `max-sm:h-[3.2rem]` and `max-sm:w-[3.2rem]` with `max-sm:h-12` and `max-sm:w-12` (standard 3rem/48px spacing).
2026-01-14 02:51:02 +00:00
thePR0M3TH3AN a697a1de5f Refactor iframe theme accent sync 2026-01-13 20:48:05 -05:00
thePR0M3TH3AN 4c4f57c6e5 Replace inline styles with classes 2026-01-13 20:29:38 -05:00
google-labs-jules[bot] 0772d2fa09 Refactor Video Modal moderation UI to a persistent bar above the player. 2026-01-13 14:12:14 +00:00