* d
* wip
* Nit: margin and padding tweak
* UI design tweaks
* Update Job.tsx
* Improve UI
* [WIP] - Refactor job manager
* remove invalidate explorer event on thumb generation. the event above performs atomic updates on the front end when new thumbnails are generated, now just need to make that work
* prettier formatting + removed unused imports
* UI tweaks
* progress bar width adjustment
* tweaks
* fix em
* fix thumbnail generation
* fix progress bar
* fix time
---------
Co-authored-by: Jamie Pine <ijamespine@me.com>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
* source `has_thumbnail` correctly
* correctly check if thumbnail exists in watcher
* regen bindings
* add helper fn for getting thumbnail directory and cleanup old thumbnails if the watcher creates a new one
* Hide notice on overview and
- Removed prettier/recommended from eslint
- Optimized imports
* move overview check to parent
* don't show recents if there is none
* use useMatch
* revert rspc changes and some theme stuff
* Run onboarding test first
* test adding a tag
* handle keyboard on Create Tag Modal
* listen system theme changes
* fix delete tag button
* wait add tag mutation
* remove duplicate assert
* fix edit location setting screen
* select theme & fix add tag test
* add how to run web app to contributing
* add note about how to use stores correctly
* use theme colors
* system theme
* remove metro-minify-terser
* final tweaks
* cleanup
* cleanup
---------
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
* finally
* should be working?
* fix types
* fix types
* Wouldn't it be nice if Metro would just work
* idk
* try harder Metro
* potentially fix bundling issues
* idk, maybe fix it?
* fix metro
* update podfile.lock
* bruh
* bruhz
* tailwind is drunk again
---------
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
* move tooltip into portal
* Update navigation
* Switch to useMatch
* browser router
* routing
* Hide nav buttons on web
* Include traffic lights and change icon
* Add dry_run for `location.create` and `location.addLibrary`
* Add dry_run to IndexerRuleCreateArgs
- Add invalidate_query to create and edit api method of the location route
- Adjust some code to use the new dry_run property
* `AddLocationDialog` and `IndexerRuleEditor` now validate with backend without user interaction
- Create `useCallbackToWatchForm` to make it easier to watch form changes with an async function that also executes during component mount
- `method` is now part of the `addLocationDialog` form schema, and a hidden input
- Add an `index.ts` for hooks and components
* Fix mobile
* Remove redundant type definition
* Add `useCallbackToWatchForm` as an additional hook to `react-hooks/exhaustive-deps`
- Improve `useCallbackToWatchForm` argument handling, to avoid duplicated references to form
* Fix unnecessary form value updates in `addLocationDialog`
- Move reset `method` on `path` change logic from the superfluous `useEffect` to `useCallbackToWatchForm` in `addLocationDialog`
- Improve core API debug logs for `dry_run`
- Fix incorrect file name for `useCallbackToWatchForm` hook
- Improve the documentation for `useCallbackToWatchForm`
- Fix `useCallbackToWatchForm` not ignoring callback errors
- Fix `useCallbackToWatchForm` ignoring returned Promise from `onWatch`
- Add basic validation for the `form` argument in `useCallbackToWatchForm`
* Remove superflous if checks
- generate new core.ts
* Remove DryRunError
* Remove unused import
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
* Attempt to fix Windows CI:
- Ensure version 15 of LLVM is installed in Windows CI (due to` ffmpeg-sys-next`)
- Use `GITHUB_TOKEN` in setup-system.ps1 to avoid rate-limiting by github api in Windows CI
- Add `yaml` settings to `.editorconfig`
- Create a symbolic link from `.prettierignore` to `.eslintignore`
- Move `eslint` root to package root config
- Enable `fileNesting` to reduce dotfile clutter in vscode
- Pass `--strict` to apps/releases `lint` command to avoid making interactive queries and hanging `pnpm lint`
- Format with `prettier` and `eslint`
- Remove empty interface/hooks/useMediaQuery.ts
* Replace unmaintained `actions-rs/toolchain` with `dtolnay/rust-toolchain`
- Change setup-system.ps1 to avoid installing pnpm in CI
- Change `pnpm/action-setup` to lock only o major versions of the action
* A hint of file drop
* backport from #671
* accept/reject Spacedrop working
* final cleanup
* Rename spacedrop.tsx to Spacedrop.tsx
* Update index.tsx
* give file paths pub_id and use it primarily
* fix object indexing
* file path location + sync
* remove future plan
* use id instead of pub_id for more indexer queries
* use chain_optional_iter
---------
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
* support for late key manager setup and remove password from onboarding
* mobile
* delete master-password.tsx
* remove secure temp keystore
* remove more km_config artifacts
* fix builds
* Fix most of the UI, there still some minor bugs
* Workaround portalled closing Popovers
* Restore search in core/src/api/mod.rs
* Fix Password eye icon closing Popover on click
* Fix keymanager setup submit button spinner not centered
- Fix keymanager setup missing logic for disabling form
- Adjust keymanager tab roundness to match app style
* Restore .gitignore
* Restore .prettierignore
* fixerino tests
---------
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
* WIP Fix thumb incorrect size
* Fix sidebar thumb incorrect size
- Fix ext pill incorrect positioning on first load
* Improve `Thumb` overall style behavior
- Fix incorrect position of the video extension pill
- Simplify `MediaView`'s `Thumb` usage by internalizing the `mediaAspectSquare` style
- Change `QuickPreview` to use `cover` and size 0 for `Thumb`
* Remove unused import
* Allow modifing the internal img className
* lint
* Apply PR feedback
- Remove superfluous true value in component property
- Rename ObjectKinds to ObjectKindKey
* Fix video ext pill not being properly positioned in MediaView(non square thumbnail) in prod build
* Fix video ext pill incorrect position (now for sure)
- Replace img size logic with ResizeObserver
- Add error handling when thumbnails fails to load
* Shorten variable names
* Fix IndexerRuleEditor isKeyOf
---------
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
* WIP Create Indexer Rule UI + Backend api fix
* Complete IndexerEditor UI for creating new rules
- WIP testing to ensure all rules are parsed correctly
- Add utilities to satisfy the TypeScript typechecker
- Introduce a utility function to facilitate extracting information from an RSPCError
- Modify AddLocationDialog to utilize the aforementioned utility function
* Validation and submit logic is now functional
- Reorganize UI for improved user flow
- Implement validation and error messaging, replace some bare inputs with form inputs, and fix styling issues
- Resolve issues with post-processing of rules during submission
- Wrap editable portion of component in a `FormProvider` due to the `Form` being in a `Portal`
- Add specialized `ErrorMessage` component to `@sd/ui` library
- Update `AddLocationDialog` and `FormField` to utilize the new `ErrorMessage` component
* Fix submit not waiting for confirmation from backend
- Reset form after submit
- Disable form while submiting
- Update form related dependencies
* Implement deleting an indexer rule
- Modify indexer rule api route to disallow deleting default rules
* Fix form reset on error
- Minor style adjustments
* add support for deleting a specific job
* wip
* Update JobManager.tsx
* Job manager design tweaks + popover open state ignore prop
* tweaks
---------
Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>
* Minor improvements to some onboarding screens
- Add transitions to the password form
- Fix tab order in the Password form
- Remove unimplemented `import Library` button
- Some minor style changes to button focus and form validation error messages
* password eye tabindex
* Misc UI fixes
- Solve React dev warning due to not using ref in a fowardRef
- Show title in alertDialog
* Partial revert "Misc UI fixes"
* Remove console.log from 'OptionsPanel.tsx'
- Replace invalidateQuery with refresh for `locations.list` in `AddLocationDialog`
* Format `Select.tsx`
- Update turbo to fix https://github.com/vercel/turbo/issues/3598
- Switched default Media View to squares
- Removed Media View item rounded
- Removed debug sidebar item
- Grey'd out non-functional empty
screens (I'd like to add)
- Removed junk on Overview
- Removed ring effect on buttons
* remove unused onScroll
* Add open media file with double click
* Hide file thumb in inspector
* Enable media layout
* Add media layout options
* Add media view
* Fix vertical images
* Fix vertical square aspect
* query
* Update Location.tsx
* Some optimizations on explorer data query
---------
Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
* improve app level migration system
* basic unit tests for app migrator
We kinda don't want this going wrong so extra barrier is good.
* fix migrator tests
* Implement multiple Glob matches in the same indexer rule
- Replace matching logic to use GlobSet instead of simple Glob
- Add `No OS protected` indexer rule to avoid indexing OS protected files
- Enable `No OS protected` indexer rule by default
* Rust fmt
* Reduce `No OS protected` rule Glob list by using OR matches
* Add globs for android and ios files in `No OS protected` rule
* Add some more unix special path to be ignored
* Add a new property to IndexerRule to enable it by default when adding a new location:
- Modify the Prisma schema to add the default property to the IndexerRule model.
- Adjust the IndexerRule struct's create and save logic to consider the new property.
- Adjust AddLocationDialog to properly load the default indexer rules from the backend.
- Minorly improve IndexerRuleEditor to avoid adding duplicate entries to its assigned form field.
- Add editorconfig entries for SQL and Prisma types.
* rust fmt
* Add Windows users special folders and files to `No OS protected` rule
* Construct `No OS protected` globs from string vec
- Don't repeat windows globs that require both a root and C: version
* Apply review feedback and add error handling for `IndexerRuleEditor`
- Revert manual changes made to init migration
- Create external migration that adds a `default` prop in `IndexerRule` model
- Remove redundant `useMemo`
- Replace destructuring of `useQuery`
- Provide feedback to user when a error occurs while querying indexer rules
* useMemo only for `indexerRulesIds` and not the whole `defaultValues` object
- Remove logic to accpet unix root path for windows indexer `No OS protected` rule
* Make Prettier and ESLint work together
- Resolve conflicts between Prettier and ESLint regarding indentation and Tailwind rules order
- Add `.editorconfig` to standardize basic formatting options across tools and editors
- Add `.gitattributes` to hide `pnpm-lock.yaml` in `git diff` output
- Include EditorConfig in the recommended extensions for VSCode
- Replace some instances of `pnpm exec <command>` with `pnpm <command>`
- Remove superfluous Tauri config for Linux
* Revert Prettier changes (it was working correctly before)
- Update ESLint to read Tailwind config from absolute path
- Remove redundant Prettier dependency from subprojects
- Specify the source folder for the lint script in subprojects
* use mobile's tailwind config with eslint
* pnpm format + pnpm lint:fix
---------
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
* Topbar responsiveness
remove duplicate code
Searchbar: remove form hook and replace with a regular state.
onblur
* Applied feedback + added back in top bar blur
* Implement indexer rule editing for locations
- Partially implement IndexerRuleEditor (missing indexer rule creation)
- Update AddLocationDialog to use IndexerRuleEditor instead of checkboxes
- Enable IndexerRuleEditor on the Location settings page
- Improve error handling on the Location settings page
* Change location data retrieve logic on settings page
- Improve error handling on settings page (don't send NaN to backend)
- Add disabled prop to Form component
- Wait for data before allowing edits on location settings page
- Change some snake_case object properties to camelCase
- Fix a small error in rspc client that transformed any falsy argument value to null
* Remove console.log
* Fix issue with errors only being handled during the first load of the location settings page