80 Commits

Author SHA1 Message Date
1d00b9eb62 Refactor CSS styles for Nostr components to enhance layout and responsiveness
- Updated CSS class names for consistency across Nostr components, including VerticalColumn and ReplyThread.
- Improved layout and styling for modal and inline event components, ensuring better user experience.
- Enhanced responsiveness of various elements to accommodate different screen sizes, improving overall usability.
- Streamlined scrollbar styles for better visual integration within the application.
2025-10-13 20:18:54 +01:00
e875fd0b98 Enhance Nostr components with inline note functionality and URL handling
- Introduced InlineNote component to fetch and display notes from Nostr links, improving user interaction with note content.
- Updated URL extraction logic to support new note links, ensuring proper handling of various Nostr URL types.
- Enhanced NostrFeed and ReplyThread components to integrate InlineNote, allowing seamless display of notes within event content.
- Improved overall layout and styling for better user experience and consistency across components.
2025-10-13 14:02:17 +01:00
988d199781 Update feed filter to focus on replies and enhance related components
- Changed default feed filter from 'notes' to 'replies' across multiple components, including App.svelte, VerticalColumn, and NostrFeed.
- Refactored event filtering logic to exclusively display replies, improving user experience and clarity.
- Streamlined the handling of replies in ReplyThread, including the addition of infinite scroll functionality for loading more replies.
- Updated CSS styles for better layout and responsiveness in various components, ensuring a cohesive design.
2025-10-13 12:58:31 +01:00
965ad8203c Add root indicator styling to ReplyThread replies section for better UI clarity 2025-10-13 12:37:50 +01:00
9b351715f7 Refactor and enhance Nostr components for improved user experience
- Updated CSS class names for consistency across components, ensuring a unified styling approach.
- Introduced new functionality to fetch and display nested replies in the ReplyThread component, enhancing interaction with replies.
- Improved event time display in InlineEvent and NostrFeed components for better clarity.
- Refactored layout and styles in VerticalColumn and other components to enhance usability and aesthetics.
- Streamlined the handling of event loading and user interactions, ensuring a more responsive application experience.
2025-10-13 12:19:36 +01:00
75bc975f36 Refactor logging and error handling in Nostr components
- Removed console logging statements across various components to clean up the code and improve performance.
- Updated error handling to provide clearer feedback without logging unnecessary details.
- Enhanced user experience by streamlining the handling of events and profiles, ensuring a more efficient application flow.
- Improved maintainability by reducing clutter in the codebase and focusing on essential functionality.
2025-10-13 11:44:24 +01:00
70493a9f47 Enhance event loading and user interaction in NostrFeed and VerticalColumn components
- Introduced new functionality to handle loading new events when auto-update is disabled, allowing users to manually fetch new events.
- Added a new button in VerticalColumn to display the count of new events available for loading.
- Updated NostrFeed to manage queued new events and reset the count after loading.
- Improved event handling logic to ensure a seamless user experience when new events are received.
- Refactored related components for better maintainability and readability.
2025-10-13 06:19:08 +01:00
9e3736949b Fix inline event display 2025-10-12 16:48:27 +01:00
fb6fd3c5fd Update dependencies and enhance Nostr link handling
- Updated @nostr-dev-kit/ndk to version 2.17.4 and added nostr-tools as a new dependency.
- Refactored NostrFeed and ReplyThread components to support rendering of Nostr profile links, improving user interaction with Nostr URLs.
- Introduced a new NostrProfileLink component for better encapsulation and management of Nostr profile rendering logic.
- Enhanced content extraction methods to handle Nostr links, ensuring they are displayed correctly within event content.
- Improved overall code structure for maintainability and readability.
2025-10-12 16:21:30 +01:00
9a781e5ebc Update CSS class names for consistency and improve layout in ReplyThread component
- Refactored CSS class names in bundle.js to align with recent changes, ensuring consistent styling across components.
- Enhanced styles in ReplyThread.svelte, including padding adjustments for better layout and readability.
- Updated loading and error message classes to reflect new naming conventions, improving maintainability.
2025-10-12 15:06:46 +01:00
205d85a16c Implement global profile management system
- Introduced a new ProfileManager class to handle user profile caching, loading, and updates, improving performance and reducing redundant fetches.
- Replaced local user profile caching in NostrFeed and ReplyThread components with the global profile manager, streamlining profile retrieval.
- Enhanced profile loading logic to support batch processing and expiration of cached profiles, ensuring up-to-date information is available.
- Updated components to utilize new helper functions for fetching and caching user profiles, improving code maintainability and readability.
- Refactored related functions to ensure consistent behavior across the application when handling user profiles.
2025-10-12 14:40:32 +01:00
75efd175b3 Implement media handling and theme management enhancements
- Added functions to extract and render media content (images, audio, video) within event posts, improving user engagement with rich media.
- Introduced a theme toggle feature in App.svelte, allowing users to switch between light and dark themes, with preferences saved to localStorage.
- Updated CSS styles for media blocks to ensure responsive design and consistent presentation across different media types.
- Refined event loading logic in NostrFeed to enhance user experience when scrolling through events.
- Improved overall code structure for better maintainability and readability.
2025-10-12 14:29:33 +01:00
31a9e07242 Update styles and class names for improved consistency and performance
- Changed font family for usernames to "Noto Sans" with increased weight for better visibility.
- Adjusted scrollbar styles in VerticalColumn for improved aesthetics and usability.
- Updated class names in bundle.js to reflect recent changes in CSS structure, ensuring consistent styling across components.
- Enhanced global CSS to include new variables for better theme management and responsiveness.
2025-10-12 09:27:37 +01:00
bdc6639905 Enhance user profile management and history navigation in App and NostrFeed components
- Implemented caching for user profiles to improve performance and reduce redundant fetches.
- Added history management functionality, allowing users to navigate back and forth through their view states.
- Updated localStorage handling to persist view history and current index for better user experience.
- Enhanced UI to display user avatars and names in event listings, improving visual clarity and engagement.
- Refactored related components to ensure consistent styling and behavior across the application.
2025-10-12 09:27:21 +01:00
cda9d3db2e Refactor event loading and scrolling logic in NostrFeed component
- Reduced initial load timeout from 10 seconds to 5 seconds for faster user feedback.
- Enhanced event loading logic to ensure more responsive loading when scrolling near the end of the event list.
- Improved state management for loading events, including handling cases when no more events are available.
- Cleaned up code for better readability and maintainability, ensuring all state resets are handled appropriately during reloads.
2025-10-12 08:07:16 +01:00
182e1330f2 Implement reply chain functionality in ReplyThread component
- Added support for fetching and displaying the reply chain of ancestor events in the ReplyThread component.
- Introduced functions to handle fetching events by ID and managing the visibility of previous replies.
- Enhanced UI with a toggle for displaying previous replies and improved content truncation for better readability.
- Updated styles for the previous replies section to ensure a consistent user experience.
2025-10-12 08:00:22 +01:00
0fa6c4559e Enhance App functionality with new components and event handling
- Introduced VerticalColumn, NostrFeed, and ReplyThread components for improved layout and user interaction.
- Implemented event selection and reply thread management in App.svelte.
- Added feed filtering capabilities to dynamically display notes, replies, and reposts.
- Enhanced CSS for better responsiveness and visual consistency across components.
- Updated Rollup configuration to suppress specific warnings from the tseep library.
2025-10-12 07:25:42 +01:00
01ca08fb39 revert columns stuff 2025-10-11 23:22:34 +01:00
6702b4317e Revert "Enhance user relay management and improve App.svelte functionality"
This reverts commit 3ef946c094.
2025-10-11 23:20:15 +01:00
3ef946c094 Enhance user relay management and improve App.svelte functionality
- Introduced user relay connection management in NostrClient, allowing dynamic connection to user-specific relays.
- Added fetchUserRelayList function to retrieve and parse user relay data from events.
- Updated App.svelte to fetch user relay list upon login and reconnect to default relays on logout.
- Improved error handling and logging for relay connection processes.
- Refined layout and styles in App.svelte for better user experience and responsiveness.
2025-10-11 21:37:37 +01:00
5e1bbea5aa Enhance App.svelte functionality and layout
- Introduced active view management with 'global' and 'welcome' states for improved user navigation.
- Added dynamic column management with functionality to add, remove, fold, and unfold content boxes.
- Updated styles for user profile and login buttons to enhance visual hierarchy and responsiveness.
- Improved layout structure in App.svelte for better content organization and user experience.
- Refined CSS for global container and content boxes to ensure consistent styling and behavior across different views.
2025-10-11 21:17:07 +01:00
c64dfeeab2 Update Svelte class hashes and improve layout in App.svelte
- Updated Svelte-generated class names for consistency across components, particularly in bundle.css and bundle.js.
- Adjusted flex properties in App.svelte for better layout management and responsiveness.
- Enhanced user profile button styles for improved visual hierarchy and user experience.
- Refined user avatar dimensions for better alignment and presentation in the UI.
2025-10-11 19:09:38 +01:00
aebab7312e Update dependencies and enhance user authentication flow
- Downgraded `@nostr-dev-kit/ndk` dependency version in `package-lock.json`.
- Improved `App.svelte` with enhanced user authentication features, including automatic profile fetching and login modal management.
- Added functionality to test Nostr extension availability in `LoginModal.svelte`.
- Updated `nostr.js` to support NIP-07 login and validate extension methods.
- Enhanced styles for better layout and user experience across components.
2025-10-11 18:55:03 +01:00
af0f1e42cd Add package-lock.json and update project dependencies
- Introduced `package-lock.json` to lock down dependencies for consistent builds.
- Updated `package.json` to include `@nostr-dev-kit/ndk` as a dependency.
- Modified `index.html` title and favicon references for branding consistency.
- Added new favicon image `orly-favicon.png` for improved visual identity.
- Refined `bundle.css` and `bundle.js` for better performance and reduced size.
- Enhanced `App.svelte` and `LoginModal.svelte` for improved user experience and interactivity.
2025-10-10 23:04:27 +01:00
9331e08c27 Migrate README.md to readme.adoc and update project description content
- Replaced `README.md` with a concise `readme.adoc`.
- Updated project description to reflect current functionality as a simple, material design Nostr note client.
2025-10-05 20:45:54 +01:00
d9fa1dd5da Add .idea/ to .gitignore and clean up IntelliJ project config files
- Ignored `.idea/` directory and its contents in global and local `.gitignore`.
- Removed outdated module and VCS mappings from IntelliJ project configuration files for cleanup.
2025-10-05 20:42:04 +01:00
4c3bf03ba7 Update Svelte class hashes for consistency in components styling
- Refined Svelte-generated class names to ensure consistency across `bundle.css` and `bundle.js`.
- Adjusted styles and class references for components including `LoginModal`, `App.svelte`, and `ProfileView`.
- Enhanced layout responsiveness with improved class-based styling definitions.
2025-10-05 20:30:35 +01:00
2b30bce3e9 Implement IndexedDB caching for Nostr profile events
- Added IndexedDB support for caching kind 0 profile events with a dedicated store setup (`nostrCache`).
- Introduced caching helpers (`openDB`, `putEvent`, `getLatestProfileEvent`) for efficient event storage and retrieval.
- Enhanced `fetchUserProfile` with cached profile lookup and optimized event handling, including debounce logic for relay responses.
- Improved profile metadata parsing for dynamic content updates and streamlined cache usage.
2025-10-05 20:22:25 +01:00
66d0d30285 process about text to put newlines where there are two sequential newlines in the input so the line breaks where the user expected it to 2025-10-05 20:05:44 +01:00
ca6d895a0c Improve layout and enhance App.svelte interactivity
- Refined sidebar and main content positioning with `position: fixed` for better responsiveness and layout fluidity.
- Adjusted `.sidebar` and `.main-content` styles for smoother transitions and padding consistency.
- Introduced `:has` support for dynamic layout adjustments in `.app-container`.
- Updated Svelte-generated class hashes for style consistency across components.
- Minor cleanup of commented-out styles and improved hover effects.
2025-10-05 15:15:23 +01:00
4759f20ca5 Adjust app layout and update Svelte class hashing
- Increased `margin-top` in `.app-container` for improved spacing and layout.
- Updated Svelte-generated class hashes for consistency across components.
2025-10-05 14:41:05 +01:00
72f5fc4e8d Add Nostr authentication with extension and nsec support
- Introduced `LoginModal` component for user authentication via NIP-07 extensions or nsec keys.
- Added `nostrClient` for managing WebSocket relay connections and subscriptions.
- Integrated user profile fetching and dynamic settings drawer in `App.svelte`.
- Updated `constants.js` with default relay URLs for Nostr connections.
- Enhanced theme and login state persistence within `localStorage`.
2025-10-05 14:33:47 +01:00
717d016841 Add expanded sidebar functionality with tabs and theme persistence
- Introduced `tabs` array with new tab selection functionality.
- Enhanced sidebar and tabs with active states and dynamic styles.
- Integrated theme preference persistence using `localStorage`.
- Updated layout and styles for improved consistency and responsiveness.
2025-10-05 12:27:34 +01:00
da8b5d15db switch to svelte 2025-10-05 10:58:34 +01:00
6bedf053cf switch to svelte 2025-10-05 09:49:17 +01:00
271f5e6ee0 Add support for muting users and integrating mute lists across components
- Introduced `mutedPubkeys` prop to `EventFeed`, `ThreadView`, `ProfileView`, and router components for filtering events based on muted users.
- Enhanced `nostrService` with functions to fetch and manage user mute lists (kind 10000).
- Updated event fetching and caching logic to exclude events by or mentioning muted users.
- Implemented dynamic mute list loading during login and session state management.
- Refactored handling of thread and tab states in router to support cleaner event filtering and state tracking.
2025-10-04 05:05:34 +01:00
cf112d2f9c Add onUserClick support to ThreadView, ProfileView, and router
- Introduced `onUserClick` prop across `ThreadView`, `ProfileView`, and router components to enhance user interaction functionality.
- Updated event handling in `ThreadView` and router to manage user profile clicks and facilitate dynamic user profile view navigation.
- Enhanced `EventFeed` and `ProfileView` to pass `onUserClick` for consistent behavior.
2025-10-04 04:37:42 +01:00
fa80ba02de Add onUserClick support across components and enhance user profile interactivity
- Introduced `onUserClick` prop to `NoteCard`, `EventFeed`, and related components for handling user interactions.
- Implemented dynamic user profile tabs in the router, allowing multiple profiles to be opened and managed.
- Created `ProfileView` component to render user profiles with metadata and a dedicated event feed.
- Enhanced `nostrService` to cache and fetch user metadata for improved performance.
- Refactored `linkifyContent` to include clickable user profile links.
2025-10-04 04:25:56 +01:00
cff680d579 Refine button styles in NoteCard and improve layout consistency
- Removed unnecessary `space-x-1` classes from buttons in `NoteCard` to streamline the design.
- Adjusted `ThreadView` header padding and styling for better alignment.
- Updated router styles for a more cohesive bottom control strip appearance and improved header behavior.
2025-10-04 03:38:03 +01:00
9d71d12787 Enhance NotesFilterPanel, ThreadView, and router interactivity
- Added support for thread toggling and thread header control in `NotesFilterPanel` and `ThreadView`.
- Introduced `onThreadClick` and `isThreadOpen` props in `NotesFilterPanel` for managing thread state.
- Updated `ThreadView` to include `onMaximizeLeft`, `hideHeader`, and responsive header adjustments.
- Enhanced router to handle thread visibility and state synchronization across panels.
- Refactored layout for better usability on narrow and wide screens, including dynamic header behavior.
2025-10-04 02:43:41 +01:00
12966cdb8c Add handleModeChange in NotesFilterPanel to clear event queries on mode switch
- Introduced `handleModeChange` to remove cached event queries before setting a new filter mode to ensure a refreshed view.
- Updated `router.tsx` to use `handleModeChange` with `NotesFilterPanel` for enhanced filtering behavior.
2025-10-03 18:28:10 +01:00
55a053cbb3 Add NotesFilterPanel and extend filtering functionality in EventFeed
- Implemented `NotesFilterPanel` component for switching between "notes", "replies", and "reposts" modes.
- Updated `EventFeed` to respect new `filterMode` prop and apply filtering logic based on the active mode.
- Enhanced `ThreadView` with event filtering capability and a responsive filter bar.
- Modified router to integrate `NotesFilterPanel` and propagate `filterMode` state to `EventFeed`.
2025-10-03 17:27:44 +01:00
331cc01a13 Update ThreadView header with fixed design and responsive layout
- Added `headerLeft` and `headerWidth` props to `ThreadView` for customizable header positioning.
- Updated `ThreadView` to include a fixed header bar with integrated close button for better usability.
- Adjusted layout to account for the fixed header with added top padding.
- Enhanced router logic to dynamically pass responsive header dimensions based on screen size and layout.
2025-10-03 16:15:31 +01:00
bcab112a06 Enhance MediaModal interactivity and expand URL linkification
- Made navigation buttons and media content in `MediaModal` respond to pointer events for improved usability.
- Added support for detecting and rendering standard web URLs as clickable links.
- Updated `ThreadView` with an optional close button for better navigation control.
- Modified router logic to handle `ThreadView` closure based on screen size.
2025-10-03 16:01:48 +01:00
69ac140335 Add "replied-to" button in NoteCard and enhance thread interactivity
- Introduced "replied-to" button in `NoteCard` to navigate or focus on replied notes.
- Updated `ThreadView` to handle note focus using `onFocusNote` prop.
- Refactored event handlers in `NoteCard` to prevent propagation of click events.
- Enhanced `index.css` scrollbar thumb styling for consistent appearance.
- Added test HTML for validating "replied-to" button functionality.
2025-10-03 15:36:01 +01:00
d22f8dfec4 Add ThreadView component and enhance EventFeed interactivity
- Introduced `ThreadView` for displaying note threads with smooth scroll-to-focus functionality.
- Enhanced `EventFeed` to support user-specific `follows` feed using `userPubkey`.
- Updated `mediaUtils` to linkify note content dynamically and provide click handlers.
- Refactored router to incorporate `ThreadView` in the right panel and streamline note interactions.
- Added methods in `nostrService` for fetching replies and user follow lists.
2025-10-03 14:44:38 +01:00
42b3e65313 Add onNoteClick support for NoteCard and EventFeed
- Introduced `onNoteClick` prop in `NoteCard` and `EventFeed` for improved interactivity.
- Implemented note selection functionality to display threads in the right panel.
- Updated router and layout to support responsive behavior when selecting notes.
2025-10-03 14:18:50 +01:00
42394c7e0c Enhance NoteCard interactivity and add favicon support
- Added `onMouseEnter` and `onMouseLeave` handlers to stop event propagation in `NoteCard`.
- Updated the `NoteCard` container to include a `cursor-pointer` class.
- Integrated favicon links in `index.html` for better brand recognition.
2025-10-03 14:14:22 +01:00
47e56282ef Add feed type support for EventFeed and update hover styles
- Refactored `EventFeed` to accept `feedType` prop for filtering content.
- Enhanced router to render `EventFeed` with appropriate `feedType` based on active tab.
- Updated hover background style in `NoteCard` for improved appearance.
2025-10-03 13:41:48 +01:00
1570927be0 Refactor home route, add NIP-07 typings, and update base styles
- Simplified `Home.tsx` by removing sections related to app state and cached content display.
- Introduced `vite-env.d.ts` with minimal typings for NIP-07 to recognize `window.nostr`.
- Updated `index.css` to include custom theme variables and scrollbar styling for consistent UI.
- Removed unused IndexedDB caching references and streamlined component layout.
2025-10-03 11:24:12 +01:00