* stuff
* stuff (but for android)
* test mobile ci
* move pnpm up
* install ndk
* add ios & cleanup
* onboarding flow test
* test ci
* fixes, cleanup, caches
* why you do this cargo
* fix pnpm-lock
* add path to build rust script?
* ci is fun
* yolo
* fix broken flow..
* fix pnpm
* probably not gonna work
* test x2
* use real branch of pcr
* android emulator and try ios x2
* Use react native architectures, instead of all.
* override architecture to speed up android build
* protoc & build android on macos too
* fix java ndk
* android gradle
* disable ios for now
* use simulator sdk & debug configuration on ios build
* cleanup
* avd test
* fix avd settings.
* only build for x86_64 on ci
* Fix ios build
* Add IOS testing
* maestro script
* ios release build & wait for library creation
* clean up and disable android for now
* fix pnpm-lock
* Add concurrency to cancel previous runs
* fix pnpm-lock
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
* Add label and error to form field
* Add error styling
* Update other form fields
* Update FormField.tsx
* Update Input.tsx
* Move field state to hook
* remove required
* Complying with a pedantic Clippy
* Solving duplicated directories events
When creating a directory through MacOS's Finder, for some reason
FSEvents receives 2 Create Folder events that we have to handle
* Handling moving to trash bin and restoring on Mac
Still missing the feature to restore a directory and its children
* Now handling creation of empty files on MacOS
* Enabling restore of directories and its children
* Now working: moving a directory to another
inside the same location
* Now Indexer also remove file_paths not on fs
* Enabling multiple file moves on location watcher
* Fix Windows conditional compilation issues
* Fixing cas_id generation and bumping some deps
* Many Windows specific improvs and some refactors
* Rust fmt
* Using conditional compilation on extract inode function
* Linux fixes and some MaterializedPath improvements
* Rust fmt again
* Introducing tick behavior on location watchers
* Making LastFilePathIdManager more atomic
* Some vscode launch configs for lldb debugger
* Simplifying some lifetimes
* Making all watchers more consistent
* [Desktop] Improve explorer item context menu tags
* [Desktop] Add tag assignment to file inspector
* clean up
* Update tags/CreateDialog.tsx
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
* update color picker
* fix position and ref
* style hex input
* update input field
* add Icon type option
* Update input
* change right padding on lg size
* update other inputs
* update color picker input
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
* [Desktop] Context Menu cleanup
* [Desktop] Update dropdown with new menu changes
* [UI] Change dark menu line color
* [Desktop] remove menu animate prop and make it a default
* Remove duplicate classes
* Improve the way react-devtools script is injected in dev mode
- Implement a simple vite plugin to inject the reactdevtools script tag before serving index.html
- Install reactdevtools and concurrently in desktop workspace
- Replace tauri beforeDevCommand with concurrently for managing background process
* Revert adding concurrently and executing react-devtools alongside tauri desktop app
- Add instructions on how to run desktop app alongside react-devtools to CONTRIBUTING.md
* Remove unnecessary 'react-devtools' script
- Update wording in CONTRIBUTING.md to clarify how to launch 'react-devtools'
* Fix thumbnails and file previews on Linux
- Restructure auth_middleware to use axum's primitives to handle the auth tokens
- Fix incorrect token loading in App.tsx
- Add required dependencies for video playback to the Linux setup script
- Minor improvements to the Linux setup script, make it less error prone
- Fix a minor bug in the script_failure function in the Linux setup script
* Use a more idiomatic rust syntax in auth_middleware
* Handle RPC errors when adding Locations
- Add custom error codes for NeedRelink and AddLibraryToMetadata errors in backend
- Handle errors in AddLocationDialog form
- Show custom error message for above errors and ask user to confirm action
- Handle user action confirmation with appropriate RPC method (`locations.relink`/`locations.addLibrary`)
* Abstract openDirectoryPickerDialog logic to a function
- Add 'Unkown Error' when code doesn't match a know one
* Fix bugs in logic to handle `locations.create` errors
- Fix minor issue: AddLocationButton opened the dialog in desktop even when the user cancelled the file picker
- Replace ternary with object for custom form error messages to allow for easier expansion
- Break onSubmit logic up into functions
- Remove incorrect `locations.indexer_rules.delete` call
- Fix Checkbox element state not updating on external form state changes
* Adjust AddLocationDialog style to match other Dialogs in the app
- Reset exception code at the end of `confirmAfterError`
* Rework how backend errors are handled when adding Locations
- Change NeedRelink and AddLibraryToMetadata errors to use 409 (Conflict) status code and a static message.
- Only enable custom submit logic in AddLocationDialog for 409 (Conflict) errors that have a known custom error form message.
- Differentiate previous errors based on their messages instead of status code in AddLocationDialog onSubmit.
- Add @hookform/error-message dependency for improved form validation error rendering.
* Invalidate library.list to ensure it is shown on sidebar
* Improvements to AddLocationDialog
- Remove uncessary scope block and make useEffect depend directly on `form`
- Move `form.handleSubmit` from `onSubmit` call to `handleSubmit` definition
- Change basic Checkbox to RadixCheckbox and adapt onChange logic to onCheckedChange
- Some simple styling improvements to the error message
Credit: ChatGPT 4
"In this simplified version, the code calculates the sample interval based on the file size and then uses a single loop to handle both the small and large file cases. The last sample is always taken from the end of the file."
* add `protobuf` deps to arch and fedora
* update webkit2gtk package name for fedora >= 37
* revert last change as fedora 37/38 can still use the old name
This reverts commit cc9b2d7053.
* shfmt
* re-introduce webkit changes (and fix my bad bash)
* remove duplicate webkit dep
* update mac setup logic
* remove ffmpeg versioning (we don't use it on any other system)
* check that RPMFusion is enabled
* more verbose protobuf variable names
* add comments/todos and remove unnecessary 64 bit declaration
* fix incorrect command & use latest ffmpeg on macos
* update deps & remove comments
* asset script
* Add commonjs vite plugin
* Use the index file and rename some images
* Delete unsued files and imports
* Change require to import
* Remove @ts-nocheck bcs why not
* typesafe stream handling
Now it's impossible for your to respond to a broadcast stream. Previously this would just fail due to the TCP connection having been closed by the sender.
* remove connected_peers state from `SpaceTime`
* use `OutEvent` instead of `tokio::spawn` for `SpaceTime` events
* Polling for events > tokio::mpsc
* extend max length of sync messages to ~4GB + broadcast done message
* Fix "actOS" operating system decode error
* Introducing sub path indexing for IndexerJob
* Introducing shallow indexer job
* Some feature flags to avoid warnings at pnpm prep
* Many fixes at shallow indexer job
* Changing how we implement the bookkeeping for file_path ids
Now we're account for independent locations, and also integrating
better with the LibraryContext, instead of using a static global
* Making indexer job reentrant
* Introducing shallow file identifier job
And a bunch of minor refactors
* Rust fmt
* Removing light scan from getExplorerData query
Light scan is a mutation, so we can call it on useEffect function from
the Explorer component in the frontend, when a location_id or the explorer
path changes
* Handling job early finish on init for identifier
* Only invalidate query if we have orphan paths
* Introducing ShalowThumbnailerJob
* Clippy warnings about `into_iter()`
* Naming scheme for Prisma's selects and includes
* Invalidating getExplorerData at thumbnailer
* Small mistakes lol
* Some nitpicks with pnpm prep
* Rust fmt
* Changing indexer's walk log to `trace!`
* Not deleting all file_paths on location fullRescan
* TS typecheck
* Removing `file_path` selection just with id
* improved object icons
* remove redundant control flow
* added support for base icon overrides by extension
+ deleted old icons folder and moved official icons into there
* fixed folder icon error
* removed temp nodes example
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>