- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- Replaced `README.md` with a concise `readme.adoc`.
- Updated project description to reflect current functionality as a simple, material design Nostr note client.
- Ignored `.idea/` directory and its contents in global and local `.gitignore`.
- Removed outdated module and VCS mappings from IntelliJ project configuration files for cleanup.
- 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.
- 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.
- 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.
- Increased `margin-top` in `.app-container` for improved spacing and layout.
- Updated Svelte-generated class hashes for consistency across components.
- 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`.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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`.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.