Skip to content

Feat/mediadb updates#16

Merged
wizzomafizzo merged 42 commits into
mainfrom
feat/mediadb-updates
Nov 23, 2025
Merged

Feat/mediadb updates#16
wizzomafizzo merged 42 commits into
mainfrom
feat/mediadb-updates

Conversation

@wizzomafizzo

Copy link
Copy Markdown
Member

No description provided.

- 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

codecov Bot commented Nov 15, 2025

Copy link
Copy Markdown

…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.
@wizzomafizzo
wizzomafizzo merged commit 16e9de9 into main Nov 23, 2025
1 of 2 checks passed
@wizzomafizzo
wizzomafizzo deleted the feat/mediadb-updates branch November 23, 2025 11:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant