* Fix warnings
* Working when doing a full location indexing
* Directory size calculation for sub_path indexing
Also for shallow indexer
Now shallow indexer dispatches sub_path scans when it finds a new folder
* Directory size calculations in the watcher
* Pass directory sizes to sync system
* Life is a lie and nothing makes sense
* consistent version
* Web uses the relative alias resolver it would seem
---------
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
* Handling temporary files events on MacOS
* Debouncing create and update events
* Take files being updated for a long period
of time into account
---------
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
* sd-images crate which will support raw/dng, bmp, etc
* more work on the image formatter
* re-work `sd-images`, add svg support, r/g/b and r/g/b/a HEIF image support (will all be async again soon)
* remove `ImageFormatter`, add note about r/g/b/(a) heif impl
* implement the image formatter
* rename the conversion trait and minor cleanups
* isolate heif feature and major cleanup
* very untested raw support
* change fn name to `from_path` (a lot more idiomatic)
* clean up orientation fixing
* heif is no longer forbidden (linux has good heif)
also all extensions are correctly matched in lowercase
* fix builds, ext matching, feature gating
* attempt to fix svg handling?
* raw attempt, quite a few errors
* add comment
* new (untested) attempt
* remove `raw` stuff for now
* replace `sd-svg` with a `ToImage` `SvgHandler` impl
* add some simple math to appropriately scale thumbnails (and bmp/ico support)
* add comments regarding how the math works for image thumbs
* rename the trait to `ImageHandler`
* Add range to `SpaceblockRequest`
* Determine if file should be served from P2P
* Feature flag serveFromP2P + fix `ServeFrom` logic
* wip: yeet files over P2P
* Just work, argh
* restore backend feature flags after restart
* cleanup
* apply clippy lints to the entire ffmpeg crate in hopes of making it safer
* wording
* revert the prisma changes
* fix typo
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
* fix another typo
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
* remove so many `#[must_use]`s
* fix bad merge and hopefully clippy
* clippy please work i beg
* make HEIF_EXTENSIONS always available
---------
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
* Initial implementation for svg rendering
* Remove unused errors
- Round up size before allocating Pixmap
- Re-order some operations
* Finish integrating with Thumbnailer
- Fix svg thumbnail size
- Fix incorrect color space while converting tiny_skia::Pixmap to image
* Fix Clippy warns
* Feedback + sd-heif async
* Update implementation to match recent changes to the Thumbnailer
- Change sd-heif and sd-svg to receive the file data, instead of opening the file internally
- Update changes to make Thumbnailer and sd-heif more async
* Minor import improvement
* Add missing cfg to gate use of sd_heif only to plataforms that have it enabled
* Drop Tauri custom URI handler
Me no likely but it has to be done.
* fix app startup with location
* fix "Add Location" button on web
* Serve correct content range
* Backport changes from 08ba4f91
* none of my homies like panics
* minor fixes
* fmt with new Rust version
* Spacedrop progress on `useP2PEvents`
* Spacedrop Tauri file picker for saving
* Prompt for save location when closing dialog
* quick maths
* Spacedrop progress
* Spacedrop cancellation
* Move accept/cancel dialog to toast
* Toast when rejecting transfer
* yeet
* `useEffect` more like `useBug`
* Fix Vite relativeAliasResolver on Windows
- Add Strawberry Perl installation to setup-system.ps1 (stop rust-analyzer from crashing on Windows)
- Remove unused imports from desktop windows crate
- Add todo for missing sync test match cases
* Use path.join instead of doing string concatenation with path.sep by hand
* Big bruh moment
* whoops
* Less stackoverflowy debug
* stuff
* Fix flawed P2P mDNS instance advertisements
* do sync when connecting with peer
* Sync after pairing
* resync_part2 all the time
* Invalidate all the things
* Invalidate whole React Query on sync event
* emit_messages_flag
* emit_messages_flag
* Backend feature flags + "emitSyncEvents" feature
* Patch `confirm` type cause Tauri cringe
* clippy
* idk but plz work
* bruh
* Fix ComLink bug
* remove log
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
* basic layout
* lock
* add codec to image
* very messy wip
* rm that
* lock and toml
* working perfect exif extraction
* formatting
* migration and formatting
* mostly working
* fix
* set date created properly
* fix tsc
* working media data creation
* fix bad main merge? sorry brendan
* schema, migrations, bindings
* working exif data extraction
* why won't it work
* update migrations
* fix bad merge
* final cleanup
* cleanup migrations
* remove test (that was purely used for testing my code)
* working media data pulling, correct thumbnail orientation
* slightly optimise thumbnail rotation
* rename location to prevent specta clashes
* further improvements (location parsing is still broken)
* fix coordinate parsing i think
* rspc add some todos regarding final cleanup
* further thoughts
* major upgrades
* Some improved handling of errors and async calls
* accordion component
* heavily wip flash refactor
* fix builds all because of a (terrible) merge/move
* annoying missing newline
* i really hate exif
* remove dead code
* further flash progress :D
* docs(media-data): clarification
* minor cleanup
* cleanup and some async removal
* fix location parsing
* remove async (will do proper impl for async eventually) and major cleanup
* big W
* clippy and `FlashMode::Unknown` instead of `Invalid`
* add `NIKON` gps ref support
* comments about gps refs
* commit the submodule -_-
* major cleanup & composite image support
* remove old test image
* major cleanup and easier to use API
* remove old consts
* move `ExifReader` to dedicated module
* Media Data Extractor job and shallow job
* Extracting media data on watcher
* report no exif data on file gracefully
* cleanup errors and doctests
* Merging thumbnailer and media data extractor
* Job name and some strings in UI
* remove reliance on `sd-prisma` within the media data crate
* rename query to be more specific
* custom serializer for `MediaTime`
* tweak to format utc -> naive correctly
* generate migrations
* comment out duration in mobile
* delete test-assets folder
* all optional fields
* fix migrations again
* make requested name changes
* make further requested changes
* remove erroneous files from another wip branch
* updates procedures
* use strings where appropriate
* regen pnpm-lock
* add base layouts for video and audio media data
* use appropriate data types in schema and add audio media data framework
* make requested changes
* general cleanup and renaming of enum
* cleanup media data api
* rename media metadata type
* finishing touches
---------
Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
* added some files `standard` mime type
* Used `TEXTViewer` Component to show Code Preview
* Update Thumb.tsx
* added `prismjs`
* removed unnecessary comment
* `CODEViewer` Component for Syntax Highlighting
* formatting
* using **Atom** Theme for `Prism`
* merge text/code viewers & bg-app-focus for prism
currently calling onError and onLoad without an Event argument
that should change but i'm not really sure what to do there
* removed unused imports
* Update index.ts
* `TEXTViewer` to `TextViewer_`
* `TextViewer_` to `TextViewer`
* Don't highlight normal TextFiles
* clean code
* `TEXTViewer` to `TextViewer`
* using tailwind classes more
* doing things correctly.
* installed `prismjs` in interface
* using own scroller
* Update Thumb.tsx
* Add an AbortController to the fetch request
- Fix onError and onLoad calls
- Format code
* Fix onError being called when request was aborted due to re-render
- Fix Compoenent re-rendering loop due to circular reference in useEffect
- Remove unused imports
* Improve text file serving and code syntax highlight
- Implement way to identify text files in file-ext crate
- Do not depend only on the file extension to identify text files in custom_uri
- Import more prismjs language rules files
- Add line numbers to TextViewer when rendering code
* Clippy and prettier
* Fix reading zero byte data to Vec
- Improve empty file handling
* Expand code highlight to more file types
- Fix 10MB when it should be 10KB
- Add supported for more code and config files extensions to sd-file-ext
- Add comlink and vite-plugin-comlink for easy js worker integration
- Move Prismjs logic to a Worker, because larger files (1000+ lines) where causing the UI to hang
- Replace line-number prismjs plugin with our own implementation
* Fix uppercase extension name
---------
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: pr <pineapplerind.info@gmail.com>
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
* search.objectsCount
* provide count to useExplorer and react-table
* use row count if custom count not provided
* remove placeholder items from list view
* Some initial drafts
* Finising the first draft on non-indexed locations
* Minor tweaks
* Fix warnings
* Adding date_created and date_modified to non indexed path entries
* Add id and path properties to NonIndexedPathItem
* Working ephemeral location (hardcoded home for now)
* Fix UI for ephemeral locations
* Fix windows
* Passing ephemeral thumbnails to thumbnails remover
* Indexing rules for ephemeral paths walking
* Animate Location button when path text overflow it's size
* Fix Linux not showing all volumes
* Fix Linux
- Add some missing no_os_protected rules for macOS
- Improve ephemeral location names
* Remove unecessary import
* Fix Mobile
* Improve resizing behaviour for ephemeral location topbar path button
- Improve Search View (Replace custom empty component with Explorer's emptyNotice )
- Improve how TopBar children positioning
* Hide EphemeralSection if there is no volume or home
- Disable Ephemeral topbar path button animation when text is not overflowing
* minor fixes
* Introducing ordering for ephemeral paths
* TS Format
* Ephemeral locations UI fixes
- Fix indexed Locations having no metadata
- Remove date indexed/accessed options for sorting Ephemeral locations
- Remove empty three dots from SideBar element when no settings is linked
* Add tooltip to add location button in ephemeral locations
* Fix indexed Locations selecting other folder/files in Ephemeral location
* Minor fixes
* Fix app breaking due to wrong logic to get item full path in Explorer
* Revert some recent changes to Thumb.tsx
* Fix original not loading for overview items
- Fix QuickPreview name broken for overview items
* Improve imports
* Revert replace useEffect with useLayoutEffect for locked logic in ListView
It was causing the component to full reload when clicking a header to sort per column
* Changes from feedback
* Hide some unused Inspector metadata fields on NonIndexedPaths
- Merge formatDate functions while retaining original behaviour
* Use tauri api for getting user home
* Change ThumbType to a string enum to allow for string comparisons
* Improve ObjectKind typing
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
* Structs for views
* hook up new preferences types to preferences system
* wip - draft
* laters useEffect, hi explorer context :D
* fix types
* wip
* hm
* preferences wip
* tweaks
* use search::SortOrder
* Refactor explorer settings to use useExplorer and useExplorerSettings (#1226)
refactor to use useExplorer and useExplorerSettings
* preferences
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>