Feat/mediadb updates#16
Merged
Merged
Conversation
- Add comprehensive list of tag types in translations. - Update tag handling to use "type:value" format for better clarity. - Adjust tag selection UI for consistency across components. - Improve responsive styling for `BackToTop` and `SlideModal` components.
…ering - Introduce reusable `TagBadge` for displaying individual tags. - Add `TagList` to manage and display sorted tags with configurable limits. - Replace custom tag renderings in `SearchResults` and `VirtualSearchResults` with `TagList`. - Update translations to include new labels and improve consistency. - Enhance clipboard handling in `CopyButton` with `stopPropagation`. - Refactor state checks in `CoreApiWebSocket` for better reliability. - Add write mode support (`path` or `zapScript`) in search details.
- Ensure "Cancelling..." state persists after API call until WebSocket confirms indexing stopped. - Add regression test to prevent reintroduction of the issue. - Update translations to include `cancelling` label.
- Replace "media" with "items" and improve clarity in translation keys. - Update unit tests to reflect translation changes.
- Update translation for database optimization status to improve clarity. - Refactor `create.search.tsx` for improved readability: - Update coding style for better consistency (e.g., quotes, indentation). - Adjust conditional logic and styling elements. - Enhance recent search handling and write mode logic.
- Split `settings` into distinct routes: `settings/app`, `settings/core`. - Remove `settings/advanced` and reassign functionalities to appropriate new routes. - Add unit tests for `CoreApiWebSocket` hot reload functionality. - Update translation files to reflect settings restructuring.
- Eliminate grace period functionality from `useStatusStore` and related tests. - Simplify WebSocket state management by removing `setConnectionStateWithGracePeriod` and `clearGracePeriod` methods. - Refactor `CoreApiWebSocket` to directly handle WebSocket state transitions without grace period. - Update WebSocketManager to include message queuing and jitter for reconnection attempts. - Adjust unit tests for `store`, `websocketManager`, and related components to reflect these changes.
- Standardize use of double quotes in event handlers/styling. - Simplify conditional logic for modal height and footer rendering. - Adjust styling for desktop close button and fix spacing inconsistencies.
- Introduce expandable/collapsible functionality for log messages and additional fields. - Replace button-based filters with `ToggleChip` components for improved state management and UI consistency. - Extend translations with new keys for "Show more" and "Show less".
…server URL configuration - Introduce `cross-env` dependency to set environment variables consistently across platforms. - Add `dev:server` and `build:server` scripts for server-specific builds. - Update `capacitor.config.ts` to allow dynamic dev server URL resolution based on `NODE_ENV` and `DEV_SERVER_IP`. - Update `pnpm-lock.yaml` to reflect new dependencies.
- Introduce `@capacitor/share` to enable NFC tag data sharing with fallbacks to clipboard. - Enhance `ReadTab` component to include translations for all NFC-related labels and messages. - Add localization support via `react-i18next` for improved multi-language compatibility. - Update `Podfile`, Android Gradle files, and `pnpm-lock.yaml` to reflect new dependencies.
- Wrap "App Settings" link in a native platform check using `Capacitor.isNativePlatform()` to ensure it is only displayed on supported environments.
- Add `useShakeDetection` hook for handling shake gestures and triggering zap scripts. - Extend `useAppSettings` to include shake-related settings (`shakeEnabled`, `shakeMode`, `shakeZapscript`). - Update `AppSettings` and `index` routes to integrate and manage shake settings. - Introduce new translations for shake detection UI and functionality. - Add `@capgo/capacitor-shake` dependency and update native project files (`Podfile`, Gradle). - Enhance unit tests to cover new shake detection features.
- Replace scattered `Preferences` API calls using a centralized Zustand store. - Add `usePreferencesStore` for managing app preferences with persistence. - Introduce `useNfcAvailabilityCheck` and `useProAccessCheck` hooks for NFC and Pro access status handling. - Refactor routes and components to use `usePreferencesStore` for consistent state management. - Update related tests to mock `usePreferencesStore` and integrate the new structure.
- Extract `runToken` logic into a reusable module `tokenOperations`. - Refactor `useRunQueueProcessor` and `useWriteQueueProcessor` for consistency and clearer structure. - Introduce global modal state management (`proPurchaseModalOpen`, `writeOpen`) via `useStatusStore`. - Update components and hooks to utilize new centralized state for better maintainability. - Remove redundant props and streamline queue processor initialization. - Enhance integration and unit tests to cover new queue processing workflow.
- Add `usePrevious` to track the previous `playing` state. - Update toast logic to only trigger notifications when `mediaName` changes. - Improve toast uniqueness by using timestamp-based IDs instead of `mediaName`.
…nce system filtering logic - Remove `SystemsSearchModal` component and associated tests. - Introduce `SystemSelector` as a unified solution for system selection. - Add `insert` mode to `SystemSelector` for simplified text insertion use cases. - Update components (`ZapScriptInput`, `MediaSearchModal`, `settings.app`) to use `SystemSelector`. - Enhance filtering logic to support case-insensitive search and "All Systems" inclusion. - Adjust tests to align with the new `SystemSelector` structure.
…fault state handling - Introduce `defaultSelection` prop to manage default system selection when no systems are selected. - Update `SystemSelector` logic to handle `defaultSelection` property. - Apply `defaultSelection="all"` in `MediaSearchModal` and `create.search` routes for consistent behavior. - Adjust styles and conditional rendering to reflect the new default state logic.
…SearchModal` - Introduce `SimpleSystemSelect` component for streamlined system selection with category grouping and alphabetical sorting. - Add unit tests for `SimpleSystemSelect` to cover various scenarios (loading, placeholder, selection, etc.). - Replace `SystemSelector` with `SimpleSystemSelect` in `MediaSearchModal` for a simplified and consistent UI.
…om` route - Introduce `customText` property and corresponding setter in `usePreferencesStore` for managing user-defined text. - Refactor `create.custom` route to utilize centralized Zustand store instead of `Preferences` API. - Remove redundant `customText` loader and persist logic from `create.custom` route.
…camera and accelerometer - Introduce `useCameraAvailabilityCheck` and `useAccelerometerAvailabilityCheck` hooks for detecting camera and accelerometer capabilities. - Update `preferencesStore` to cache and manage states for camera and accelerometer availability. - Modify `App` to hydrate hardware states before rendering, preventing layout shifts. - Adjust feature usage and UI rendering to conditionally depend on hardware availability. - Update AndroidManifest to declare camera and accelerometer features as optional.
…ents - Introduce `applyOptimisticState` for improved connection state updates with fallback logic. - Add lifecycle listeners for app pause/resume to handle WebSocket reconnection and state persistence. - Enhance `WebSocketManager` with immediate reconnection capability and connection timeout support. - Update components to reflect connection state improvements and additional status messaging. - Extend translations to support new connection states (`Connecting`, `Reconnecting`, `Retry`, etc.).
…build process** - Replace PNG assets with optimized WebP formats for improved performance. - Refactor `BackToTop` component to use `use-debounce` for better scroll performance. - Add rollup visualizer plugin and `build:analyze` script for bundle analysis. - Upgrade Vite to 7.1.11 with minification improvements and console removal in production builds. - Remove Lodash and its types for reduced dependency bloat. - Update Axios to 1.12.0 and refine package dependencies.
…build process** - Replace PNG assets with optimized WebP formats for improved performance. - Refactor `BackToTop` component to use `use-debounce` for better scroll performance. - Add rollup visualizer plugin and `build:analyze` script for bundle analysis. - Upgrade Vite to 7.1.11 with minification improvements and console removal in production builds. - Remove Lodash and its types for reduced dependency bloat. - Update Axios to 1.12.0 and refine package dependencies.
- Add `createAppTour` in `tourService` for guiding first-time users through key app features. - Integrate `TourInitializer` component with `usePreferencesStore` for tour completion tracking. - Implement unit and integration tests for `TourInitializer` and `tourService`. - Enhance `preferencesStore` to manage `tourCompleted` state with persistence. - Add `data-tour` attributes and styling for targeted tour steps. - Customize Shepherd.js UI with app-branded CSS.
…ers** - Introduce `compact` prop to `ToggleChip` for reduced padding. - Update log filter components to utilize compact mode for better spacing in filter options.
- Update translation for `scan.cameraMode` to enhance clarity. - Add `disabled` prop to buttons in `create.index.tsx` for better state handling based on hardware availability or connection state.
- Combine `CONNECTING` and `RECONNECTING` states to streamline connection status logic. - Remove redundant `isReconnecting` logic and associated UI. - Update test cases to reflect combined state changes. - Fix translation for `pressToScan` to ensure proper messaging.
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
…ng** - Introduce `onKeyUp` prop to `TextInput` for handling keyup events. - Add unit test to verify `Enter` key triggers `onKeyUp`. - Update `settings.index.tsx` to save address changes on `Enter` press.
…on enhancements** - Introduce playtime limits configuration in settings (`daily`, `session`, `session reset` options). - Add playtime status and limit tracking in settings UI. - Implement notifications for playtime warnings and limit reach events. - Extend Core API to include playtime-related endpoints. - Update translations to include playtime-related strings. - Add utility functions for duration parsing and formatting.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.