* 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`
* 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>
* add job manager modal and button
* cleanup directories and add card to debug screen
* expo sdk 49
* update pods
* updated native android files
* updated native ios files
* pods being cringe
* update hermes
* podfile
* big update packages
* fix and upgrade animations to reanimated 3
* nice types moti
* clean imports
* upgrade react-hook-form (fix type)
* move stuff to sd/client and some organization
* camel case
* i liek switch
* Merge iconImg & circleIcon props
* wip
* copy changes to mobile
* move job context and job progress to client and also use it on mobile
* pnpm-lock
* (wip) - make job swipeable + styling
* job progress bar and more style tweaks
* no spring animation on progress bar pls
* new loading animation
* padding and pnpm lock
* indeterminate progress bar
* cleanup & update packages etc
* leave some todos for future
* fix types
* monorepo types :)
---------
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
* 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>
* Normalize PATH and XDG envvars on Linux
* Fix normalize_xdg_environment
* Replace custom Desktop file parsers with Glib
* Fix AppImage env influencing external apps
- Normalize GStream plugin path
* Fix macos pulling linux deps
* Attempt to fix gnome apps failing to launch
- Fix incorrect logic in `normalize_pathlist`
* Ensure empty envvars are not set
* Revert AppImage ovewritten GTK specific variables
- `normalize_pathlist` now prefers entries with less priority when dealing with repeated entries, this is not compatible with the default behavior, but it is a more sane approach IMHO
* Remove 32-bit libs from release CI build host
* Remove 32-bit from github runner 2 attempt
- Remove deprecated vscode config
* Remove libc6-i386
* [ENG-916] Implement `Open With` logic compatible with macOS < 12
* Add some missing gstreamer deps in Linux
* Replace opener with Glib API
* Fix reveal opening file instead of dir
- Improve Open With logic in Windows
- Expose functions to test if app is in a flatpak, snap or appimage
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
* Windows `Open With` WIP
- Listing applications capable of hanling a file type is working
- Openning a file with a selected application is failing with unspecified error HRESULT(0x80004005) for some reason
* Fix file not opening due to COM not being initialized
- Fix `no apps available` style
* Remove unwrap
* Fix `Open With` due to changes in main
* Fix macOS `Open With`
* Fix Windows `Open With` due to changes in main
- Sort linux `Open With` entries, to ensure consistent app order
* Fix macOS again
* Update core.ts
* Fix windows CI being rate limited
* Clippy
* Fix CoUninitialize not being called
* minor formatting
* Implement feedback
- Improve performance of listing apps that can handle a certain file type in Linux
* Fix broken feedback change
- Small perf improvement to windows crate
* Some improvements to windows crate
* Generalizing filesystem jobs to accept multiple files at once
* Some small changes and fixing front
* Enable rename route to replicate Finder's behavior
* Assign tag to multiple objects at once
* Remove from recents accepting multiple files
* Fixing some warnings
* Adding multiple files feature to Open and Open With
* Conditional stuff for macos
* Generating commands.ts and other minor warnings
* Rust fmt
* TS typecheck
* Rust format and TS typecheck
* Requested changes
* Requested changes
---------
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
* Implement `Open With` for Linux
* Fix TS typechecker failing and Rust formatting
* Take args by ref
---------
Co-authored-by: Ericson Fogo Soares <ericson.ds999@gmail.com>
* Overview categories arrow buttons
* Hide indexer rules in location + category arrow buttons
* Added masking on left and right of categories
* Expose lock_app_theme function to frontend
* Allow lockAppTheme to reset back to auto theme
* Fixes, progress bar color, useTheme update, shrink-0 for arrow button
* Only show fadeout if scrolled, onboarding css tweaks
* Framer hook unstable, motion divs to handle last category entry is much better
* Fix color picker closing
* Remove ref that is no longer needed
* Fix swift theme updating
* cleanup
* Overview categories arrow buttons and fixes
Added masking on left and right of categories
[HOTFIX] Remove placeholder nodes (#913)
Update LibrarySection.tsx
[ENG-694] Remove Spacedrop (#914)
* goodbye Spacedrop
* fix startup error escaping
* fix error fallback being cringe with long error
* backwards compatibility for early adopters
[ENG-697] Fix rename library (#916)
* random stuff
* How have we had a deadlock for 2 months lol
[ENG-701] Add explorer top bar options to tags (#918)
Add top bar options
[ENG-679] Reserve ids for built in indexer rules (#909)
* indexer rules pub ids
* should work?
* better migrator
* errors
* debugging
* maybe?
* double migrate
* please
* maybe fix?
* update lockfile
* SD_ACCEPT_DATA_LOSS message
* put tracing back
* dumb
* fix system indexer rule ui
fix(interface): quick preview not closing with SPACE (#921)
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
[ENG-700] Add empty notice to tags (#922)
Add empty notice to tags
[ENG-707] Fix list item bg color (#924)
Fix list item bg color
[ENG-706] Add deselect explorer view items (#923)
Add deselect
Expose lock_app_theme function to frontend
Allow lockAppTheme to reset back to auto theme
Fixes, progress bar color, useTheme update, shrink-0 for arrow button
Only show fadeout if scrolled, onboarding css tweaks
Framer hook unstable, motion divs to handle last category entry is much better
Fix color picker closing
Remove ref that is no longer needed
Fix swift theme updating
* cleanup
* Update pnpm-lock.yaml
* fix types & upgrade typescript version to 5.0.4
* fix folder icon
* remove rust comment
* remove mask
* masking tweak
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: nikec <nikec.job@gmail.com>
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
* first phase, basic sharding
* improved API for sharding using a "thumbnailKey"
* clean up param handling for custom_uri
* added version manager with migrations for the thumbnail directory
* remove redundant hash of a hash, silly
* fix mobile
* fix clippy
---------
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
* Centralize the file preview logic in `Thumb.tsx`
* Fix useEffect
* Fix Inspector thumb keeping internal state from previous selected files
- Change video border to follow video aspect-ratio, just like Finder
* Restore memo to Thumb
- Only add borders to video thumb, not the video itself
* Simplify and improve Thumb logic
- Add A internal Thumbnail component
- Rename main component to FileThumb to match mobile naming
- Move getIcon utility function to assets/icons
* Add new `useCallbackToWatchResize` hook
- Replace `ResizeObserver` with new resize hook in `Thumb`
- Simplify and improve `useIsDark` hook by replacing `react-responsive` with direct usage of WebAPI `matchMedia`
- Fix `Thumb` src not updating correctly
- Fix video extension incorrectly showing when size <= 80 in `Thumb`
* Fix `Inspector` not updating thumb type
- Remove superfluous `newThumb` from `getExplorerItemData`
* Remove superfluous `ThumSize`
* Forgot a `?`
* Fix incorrect className check in `Thumb`
- Updated changed files to use the hooks root import
* Format
* Fix PDF preview compleatly breaking the application
- Allow Linux to access both the spacedrive:// custom protocol and the workaround webserver
- On Linux only use the webserver for audio and video, which don't work when requested through a custom protocol
- Configure tauri IPC to allow API access to the spacedrive://localhost domain, to avoid PDF previews from breaking the security scope and rendering the application unusable
- Configure CSP to allow the pdf plugin custom protocol used by webkit
- Fix race condition between Thumb error handler and thumbType useEffect, by using replacing it with a useLayoutEffect
- Improve Thumb's error handling
* 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
* 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
* A hint of file drop
* backport from #671
* accept/reject Spacedrop working
* final cleanup
* Rename spacedrop.tsx to Spacedrop.tsx
* Update index.tsx
* 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
* beginnings of app directory
* settings mostly good
* colocate way more components
* flatten components folder
* reexport QueryClientProvider from client
* move CodeBlock back to interface
* colocate Explorer, KeyManager + more
* goddamn captialisation
* get toasts out of components
* please eslint
* no more src directory
* $ instead of :
* added back RowHeader component
* fix settings modal padding
* more spacing, less margin
* fix sidebar locations button
* fix tags sidebar link
* clean up back button
* added margin to explorer context menu to prevent contact with edge of viewport
* don't export QueryClientProvider from @sd/client
* basic guidelines
* import interface correctly
* remove old demo data
* fix onboarding layout
* fix onboarding navigation
* fix key manager settings button
---------
Co-authored-by: Jamie Pine <ijamespine@me.com>
* core startup error handling
* lazy load `PasswordMeter` so that the huge `@zxcvbn-ts` isn't in the core bundle
* please clippy
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
* fix `spacedrive://` custom protocol on Windows
(hopefully)
* custom protocol using `http::Response` + fix broken web
* import patches before App on web
* use `http::Request` for input to `handle_custom_uri`
* break into dedicated file + error handling
* serving files via custom protocol
* cargo fmt because vscode did cringe
* lru cache to reduce video chunk request time
* add helper to JS
* clippy be like
* remove duplicate Open buttons in context menu
* fix Linux 🙏
* no shot
* fix Windows custom URI passing (hopefully)
* better fix for custom uri on Linux
* upgrade Tauri for feature
* switch url replacement order
* prevent React dev tools script being added in prod to desktop
* remove React devtools from html
* upgrade Tauri; required upgrading rspc, Axum, PCR
* pass typecheck + less cringe bigint
* clippy is love, clippy is life
* Typecheck plz
* fix bigint to number conversion
* use httpz + localhost server for Linux
* clippy be right
* Remove console.log
* [wip] proper auth
* fix Linux sidebar padding
* Secure Axum server with random
* Extracting app setup specific to linux to a different file
* remove outdated comment
* Some tweaks on cursom_uri.rs
* file_path_with_location doesn't need to be a named include
* fix typo
* factually wrong comment
* Change `unwrap` to `expect`
* bruh
---------
Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
* add encryption+hashing algorithm to key viewer dialog
* abstract `save()` and `open()` with `Platform`
* add automount to `StoredKey` and offer option to enable/disable it for keys
* fix missing statement exec
* general tidy up
* add sync to library button and cleanup default setting code
* use alert dialogs for unsupported `open`/`save` operations (web)
* tweak alert message
* Fix File modal and Stats
* Add disabled and loading state for dialog
* Close library drowdown with drawer
* catch Rust panics on mobile to prevent UB
* Update packages
* Move create lib dialog to container
* Create library on onboarding
* Cleanup metro config & update packages
* onClose for Dialog & update library cache
* Fix pods, downgrade react-native-svg
* Fix lib switching, organization, start import modal
* Add device size info
* Revert merge + version upgrade/fix
* Create Location & Remove placeholder data
* Create default modal component
* Check if the location already exists
* Add media-library + prettier
* fix build
* Fix Xcode shellScript too
* More small fixes
* don't export bindings on mobile devices
* Explorer store + cleanup
* Explorer comp. & add flashlist
* [WIP] Files in Locations & new file thumb
* clean merge
* Fix imports
* Fix core on mobile
* Add platform context to mobile
* Refactor libraryStore
* Add thumb url path to platform context
* Try fixing app startup
* Add zip and video to filethumb
* Delete bindings.ts from mobile
* Remove heroicons from mobile too
* useForwardedRef hook
* Media Library permission stuff
* Clean import modal
* remove valtio-persist from @sd/client
* prevent Sentry capturing all events
* refactor `@sd/client` to make it better for mobile
* fix mobile splashscreen
Just trust me bro
* fix mobile draw active style
* use custom valtioPersist for current library state
* remove mobile lockfile
It's now in the pnpm workspace so it shared the main one.
* finally remove valtio-persist
* remove 'mobile' from Platform as it's in interface
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>