Commit Graph
75 Commits
Author SHA1 Message Date
google-labs-jules[bot] 4a0b81ad98 chore(ai): remove dead code (unused exports & deps) 2026-01-24 20:28:53 +00:00
google-labs-jules[bot] f53bfbeccf Replace search filter popover with responsive modal
Replaces the existing search filter popover with a new responsive modal component to improve UI/UX on both desktop and mobile devices.

- Adds `components/search-filter-modal.html` implementing a responsive grid layout.
- Adds `js/ui/components/SearchFilterModal.js` to manage filter state and modal interactions.
- Updates `js/index.js` to bootstrap the new modal and bind trigger events.
- Removes obsolete `js/ui/components/SearchFiltersPopover.js`.
- Keeps advanced filters hidden by default behind a toggle.

Signed-off-by: Jules <[email protected]>
2026-01-23 19:41:10 +00:00
google-labs-jules[bot] a01814b962 fix(ui): initialize sidebar logic before app ready and update visual baseline
Moves the sidebar density and toggle initialization logic in `js/index.js` to execute immediately after `loadSidebar` completes, rather than waiting for `applicationReadyPromise`. This resolves a race condition where the sidebar toggle was unresponsive during application startup (e.g. relay connection), causing `overlay-layers.spec.ts` to timeout.

Also updates the visual baseline for `video-modal-mobile` in `kitchen-sink.spec.ts` to match current rendering (height change), addressing the reported visual regression failure.

Verified with reproduction script and running visual tests locally.
2026-01-23 18:28:50 +00:00
thePR0M3TH3AN a4128570c8 Merge branch 'unstable' into jules-fix-sidebar-and-baseline-297374874061158968 2026-01-23 13:20:15 -05:00
google-labs-jules[bot] 923a735e4a fix(ui): initialize sidebar logic before app ready and update visual baseline
Moves the sidebar density and toggle initialization logic in `js/index.js` to execute immediately after `loadSidebar` completes, rather than waiting for `applicationReadyPromise`. This resolves a race condition where the sidebar toggle was unresponsive during application startup (e.g. relay connection), causing `overlay-layers.spec.ts` to timeout.

Also updates the visual baseline for `video-modal-mobile` in `kitchen-sink.spec.ts` to match current rendering (height change), addressing the reported visual regression failure.

Verified with reproduction script and running visual tests locally.
2026-01-23 18:18:55 +00:00
thePR0M3TH3AN 19aa272bae Enhance search query parsing and filters 2026-01-23 13:13:40 -05:00
thePR0M3TH3AN 460ba22d51 Add search filter state syncing 2026-01-23 12:07:55 -05:00
thePR0M3TH3AN 40707e76af Add search filter parsing and hash persistence 2026-01-23 11:08:16 -05:00
google-labs-jules[bot] f75531d2db chore(ai): format sources and fix moderation bugs (agent)
- Format `css/tailwind.source.css` with Prettier.
- Add allowlist entry for `VideoCard.js` media query pixel value in `scripts/check-design-tokens.mjs`.
- Remove accidental artifact `js/ui/dm/jules_session_4520373547615093905.zip`.
- Fix bug in `js/app.js` and `js/services/moderationActionController.js` where blocked users' videos were not correctly hidden in the UI immediately after blocking.
- Fix bug in `tests/app/moderation-overrides.test.mjs` where `userBlocks` mocks were insufficient to reflect state changes.
2026-01-22 14:58:35 +00:00
google-labs-jules[bot] 69e81920ce Add Playwright automation aids for disclaimer and modals
- Added `data-testid` attributes to key modals (Disclaimer, Login, Upload, Video, Profile, Lockdown) to facilitate reliable selection in Playwright tests.
- Updated `js/disclaimer.js` and `js/index.js` to respect a new `playwright-bypass-disclaimer` localStorage flag, allowing automated tests to skip the disclaimer modal entirely.
2026-01-22 05:18:36 +00: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
thePR0M3TH3AN 9c9a866d29 Add hash change handler tests for default views 2026-01-18 20:36:12 -05:00
thePR0M3TH3AN c9dbe1e3e7 Adjust auth-driven view routing 2026-01-18 20:31:30 -05:00
thePR0M3TH3AN f70217003d Adjust default view selection for auth state 2026-01-18 20:25:30 -05:00
google-labs-jules[bot] 94dddbe0c1 feat: add mobile search FAB and expandable search bar
Adds a Floating Action Button (FAB) for search on mobile devices, which expands into a full search bar upon interaction.
- Updates `index.html` to include the FAB and search container.
- Updates `js/index.js` to handle toggle logic and search submission.
- Uses `bg-critical` for the FAB to meet the "Red Circle" requirement.
- Hides the new elements on desktop to maintain existing behavior.
2026-01-18 20:11:14 +00:00
google-labs-jules[bot] 2515ed9e8e Implement user and video search functionality
- Updated `js/index.js` to handle search input:
  - Redirects valid npubs to the channel profile.
  - Redirects other queries to the new search view.
- Created `views/search.html` to display search results.
- Created `js/searchView.js` to perform NIP-50 searches for profiles (Kind 0) and videos (Kind 30078).
  - Includes specific handling for hashtag searches (using `#t` filter).
- Updated `js/viewManager.js` to register the new search view.
2026-01-16 23:02:42 +00:00
thePR0M3TH3AN b48edbb055 Refactor inline styles to CSS rules 2026-01-13 21:13:32 -05:00
google-labs-jules[bot] eb8b3c70dd Fix subscriptions loading issues and sidebar link visibility race condition.
- Updated `shimLegacySimplePoolMethods` in `js/nostr/toolkit.js` to correctly handle `nostr-tools` v2 subscription closers (which are functions) in `unsub`. This prevents subscription leaks that were causing relays to reject new requests, leading to empty subscription lists.
- Updated `bootstrapInterface` in `js/index.js` to await `applicationReadyPromise` before attempting to hydrate the sidebar navigation. This fixes a race condition where the sidebar "Subscriptions" link would remain hidden because the application auth state wasn't fully initialized when the sidebar was rendered.
2026-01-13 15:25:03 +00:00
thePR0M3TH3AN 9310929f0d Ensure trusted seeds hydrate before app creation 2026-01-02 12:18:57 -05:00
thePR0M3TH3AN 243b768be7 Add Tip Jar link to sidebar more menu 2025-10-27 18:02:32 -04:00
thePR0M3TH3AN 642523783f Ensure subscriptions link hydrates after sidebar load 2025-10-26 22:12:52 -04:00
thePR0M3TH3AN 80f3192687 Ensure moderation state refreshes after BFCache resume 2025-10-26 20:32:43 -04:00
thePR0M3TH3AN 9ed0fae127 refactor: route nostr imports through facades 2025-10-22 22:40:17 -04:00
thePR0M3TH3AN be75cba444 Ensure profile modal add button uses login modal 2025-10-21 18:30:15 -04:00
thePR0M3TH3AN 62d411e3ff Refactor auth service to use provider registry 2025-10-21 13:41:57 -04:00
thePR0M3TH3AN ba5c01613a Add lockdown modal and defer startup until admin login 2025-10-20 15:57:28 -04:00
thePR0M3TH3AN d4d4d278e1 Auto-collapse sidebar after mobile navigation 2025-10-19 22:52:52 -04:00
thePR0M3TH3AN be30a91357 Bind disclaimer dismiss earlier 2025-10-19 21:46:36 -04:00
thePR0M3TH3AN 2baf5b40cf Add header search form and stub behavior 2025-10-19 18:32:14 -04:00
thePR0M3TH3AN 5fca466e94 Adjust sidebar width to accommodate dropup content 2025-10-19 14:28:44 -04:00
thePR0M3TH3AN 7065075c8b Make sidebar external links configurable 2025-10-18 15:53:01 -04:00
thePR0M3TH3AN f755349e13 Make sidebar blog and community links configurable 2025-10-18 15:36:59 -04:00
thePR0M3TH3AN 8c568af46a Remove local blog view in favor of configurable external link 2025-10-18 15:28:33 -04:00
thePR0M3TH3AN e9aea74533 chore: remove umami analytics 2025-10-18 14:40:48 -04:00
thePR0M3TH3AN 1ed331ae89 Unify sidebar behavior across viewports 2025-10-18 11:58:57 -04:00
thePR0M3TH3AN 0a2a2c4e78 Fix syntax errors blocking app bootstrap 2025-10-15 15:08:55 -04:00
thePR0M3TH3AN 7ae07b1369 refactor: migrate console usage to shared loggers 2025-10-15 14:37:25 -04:00
thePR0M3TH3AN d705cf176b Revert "Refactor logging to centralized logger" 2025-10-15 11:14:10 -04:00
thePR0M3TH3AN 37ba57aa37 Refactor logging to centralized logger 2025-10-15 11:11:14 -04:00
thePR0M3TH3AN 39d8cee81a Remove design system flag and update tests 2025-10-14 20:16:38 -04:00
thePR0M3TH3AN d6620fa712 Add theme controller to synchronize theme toggles 2025-10-14 14:42:58 -04:00
thePR0M3TH3AN 92794d47dc refactor: centralize styling system usage 2025-10-12 16:31:13 -04:00
thePR0M3TH3AN 8265f9e2de Add design system feature flag and runtime integration 2025-10-11 16:11:43 -04:00
thePR0M3TH3AN 3df86a7630 Add accessibility wiring for modals 2025-10-10 22:12:05 -04:00
thePR0M3TH3AN 3b14de35da chore: adopt gpl licensing and lowercase bitvid 2025-10-10 12:56:46 -04:00
thePR0M3TH3AN 79aa7f7669 Ensure sidebar state shifts app layout 2025-10-06 20:43:48 -04:00
thePR0M3TH3AN 8ad39b5cf6 Default sidebar to collapsed state by default 2025-10-06 20:06:43 -04:00
thePR0M3TH3AN 2bafecfb50 Refine sidebar collapse interactions 2025-10-06 17:08:35 -04:00
thePR0M3TH3AN f04c21004a Bust cached sidebar assets 2025-10-06 16:27:13 -04:00
thePR0M3TH3AN 4d97493003 Polish desktop sidebar collapse visuals 2025-10-06 15:46:17 -04:00