Dependencies overhaul
- Update dependencies for all projects (except Mobile-only deps)
- Remove unused dependencies from all projects (except Mobile-only deps)
- Fix Storybook failing to import sd/ui style
- Add Node 21 as not supported due to sass-loader not working on it yet
- Add work-around for new rook version requiring webpack specific global property
- Fix landing dev not working due to missing default env value on dev
- Fix some incorrect uses of phosphor-icons non server side icons on server components on landing
- Fix some incorrect uses of phosphor-icons server side icon on client components on landing
- Fix landing fail to build on dev due to always required a Github Token to get the latest release
- Fix new Next.js version not suporting Response.redirect due to immutable Headers
- Add Gitlab as social link for teams page
- Update Vítor's team photo
- Add Vítor's twitter link
- Fix some warning due to missing useEffect dependencies
- Remove test-files dir
- Fix QuickPreview unblurred buttons in Linux
- Formatting
* The Delete-Dialog now accepts two props, which specify the type of files to be deleted.
Based on this information the wording is adjusted.
* Added variant with item count
* [ENG-860] Added default props
* [ENG-860] implemented suggested method
* [ENG-860] Added file counts to deletemenu via shortcut
Fix Spacedrive failing to start due to attempting to query a nonexistent Library
- Rename useShoudRedirect to useRedirectToNewLocations
- Improve behaviour for the immedite redirection after adding a new location
* fix(UI): remove the swift code that was causing the top bar to show when the window is maximized
* fix(UI): limit the keybind handler to the `$libraryId` layout
The keybind handler is how we get MacOS menu bar events to the front-end, and to navigate to the settings page correctly we need the current library UUID. We should hide/disable the settings button (and any future buttons that require a library/certain state - e.g. during onboarding) from the menu bar.
* chore(swift): remove unused function
* fix(UI): git didn't detect hook rename
* fix(deps): revert tauri version downgrade
Was probably caused by a bad merge
* fix(UI): remove rounding of window borders on macos
This was allowing the borders to still show on MacOS, despite the app being fully maximized. This doesn't impact non-maximized styling of the app, as we have native window decorations enabled within the Tauri config (well, that's my best guess as to why this fixes the issue).
* fix(UI): conditionally enable/disable menu items on macos
This is dependent on whether a library is present or not. If there's no library, we disable things such as copy/paste/select all.
* fix(UI): try and conditionally show the border radius
I think some cached files aren't being rebuilt correctly as this *should* work fine, it uses the same conditions as the traffic lights do to determine if we're fullscreen or not.
* remove copy/select all/paste as they have uses outside of the explorer
* feat(UI): overhaul native macos menu
* fix: add toast for quick rescan and free up the ctrl+r keybind
* more menu rearrangements
* update menu further
* add comment about rounded edges
* some polish
* add working overview redirect
* fix(UI): correct border edges when non-maximized, and full corners when maximized
* cleanup event handling
* add media view and disable non-working buttons
* fix(UI): raise sidebar on fullscreen to prevent empty corner
* adjust settings padding when maximized on macos
* failed sidebar animation
* rm old stuff
* fix(UI): better transitions (i'm learning!)
* add comment about why new library is disabled during onboarding
* make the settings page static and `pt-6`
* add mock-up library selector in menu
* `maximized` -> `fullScreen`
* fix animation when fullscreening
* clippy
* change animation to 300ms
---------
Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
* remove annoying log
* return location id on creation
* add checkbox to open new location once it's been added
* redirect if checkbox was true and a location id was provided, and update bindings
* add `new()` for `MissingFieldError`
* return location id on location relink
* working, clean redirecting
* accordion closing tag
* navigate to location after adding
* chore: remove erroneous `{' '}`
* multiple location redirect support
* oops missed check
* cleanup
* fix bad merge
---------
Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
* folder
* wrote function
* Abstracting duplicate on file name
* Spliting between ephemeral and indexed
* Now with more type safety
* Forgot to prep
* location + path based
* bruh
* link frontend + error toast
* strip main separator
* dumb
* bruh
* create directory
Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>
* make some reactivity happen
---------
Co-authored-by: Ericson Fogo Soares <ericson.ds999@gmail.com>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>
* tooltip visual upgrade and shortcuts
This gives tooltips an upgrade, visually + supporting keybinds
* B to V
* Cannot make tooltip do conversion due to dependency cycle
* semantics
* Update style.scss
* useKeyBind to consider upper and lowercase
* Change from strings to array + small visual tweaks
* oops
* 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>
* Attempt at fixing stats
* Fix macOS disk stats retrieve logic
- Ignore mounted dmgs when calculation disk total/free size
- Only take into account disk mounted by macOS
* macos only import
* Fix Linux
* Replace byte-size with a custom implementation that supports BigInt
* Fix NaN in Statistics
* clippy
* fmt
* Move linux get_volumes to a specilized function
- Fix ZFS handling
- Improve handling of disk symlinks and multiple mounts
* Fix macOS
* Minor UI Fixes
* adjustments
* show file name and extension only if truncated and with tooltip
* name
* oops
* truncate lib name
* cleanup
---------
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
* Fixing some warnings
* Optimizing job workers
* Removing the delay from getting job reports
* remove some commented out stuff
* Trying to optimize job report route
* fix thread 'tokio-runtime-worker' panicked at 'attempt to subtract with overflow'
* fix progress bar
* Now pause works from the UI
* Fix
* Now the worker set job report to paused
* show errors for job pause/resume
* bunch 'o ui fixes
* order location in the sidebar
* fix some text
* fix clear all jobs
* fix clear jobs & job group ui
* show queued jobs
* object validator job text
* make cancel button work
* better executable logo
* Now cancel button works instantly
* disable resume button
* remove disabled props from pause/resume buttons
* remove large comments
* show paused progress
---------
Co-authored-by: James Pine <ijamespine@me.com>
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
* Fixing copy, cut and paste
* Bug on duplicating files without extensions
* Fix paste only ignoring the location origin when validating relative paths
- Add Error handling to all context menu actions
- Hide FS actions in Overview and MediaView
- Remove redundant useExplorerSearchParams
- Add default schema to the Zod param hooks
* Hide FS actions in all Explorers but location ones
- Fix react warnings in RenameTextBox
- Fix ReactTextBox not selecting the whole file name, instead of just up to file extension
- Fix react warning due to inputing missing onChange
* basic show jobs for cut, copy and delete in job manager
* tweaks
* Fixing some warnings and minor tweaks
* Rust fmt
* Fix cut between locations on Linux
* Change how routes retrieve route params
- Replace useZodRouteParams with useLoader
- Define all schemas in the router file instead of in the route Component
- Parse schema in loader to avoid requiring the route Components having to import the schema from the router file
* Remove default argument from useZodRouteParams
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
Co-authored-by: James Pine <ijamespine@me.com>
* WIP
* Add keybind utility
* Fix Ctrl instead of Cmd in macOS
* Fix keyboard shortcuts for search
- Implement keyboard shortcut for inspector
* Minor fix for setup script
* Implement shortcut for new tag and for opening files
- Change quickpreview shortcut logic to follow others
- Fix OpenFilePath not reporting error
* fix types
---------
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
* [ENG-779] Finalize UI
This is one branch with a variety of UI changes
add tag select mode bar without functionality
fix group job status
add notice icon with info to stat icons
add WIP notice to media view
add modal before add location with greyed out clouds
remove disappearing add location button
add WIP spacedrop page
bring back limited key manager UI
add options bar on search page without functionality
Add greyed out encrypt library button or setting
See more button on locations
Show locations on node screen
Fix overview category left padding
* key manager placeholder
* stat info
* nodes screen
* location click yay
* fix size in bytes
Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>
* small ui improvements
* sh*tty see more button
* last touches
* fix merge boo boo
* Fix mobile
- Move `getItemObject`, `getItemFilePath`, `getItemLocation`, `getExplorerItemData` to @sd/core to allow mobile to use them
* Formatting
* Normalize displayed file size between all screens
- Replace every use of internal formatBytes with byte-size dep
---------
Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
* Fix renaming
* Hide rename context menu in media view
* Alert to user if rename fails
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
* 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>
* 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>
* wip
* wip 2
* Grid list single selection
* core & pnpm-lock
* Merge branch 'main'
Conflicts:
interface/app/$libraryId/Explorer/index.tsx
* missing import from merge
* fix total_orphan_paths bug
* add top bar context
* missing pieces of merge
* missing pieces of merge
* missing divs
* Fill fallback value - was causing null error of page
* spelling fixes
* notice light theme, list view update, other explorer updates
* Update pnpm-lock
* Remove procedure
* fix light menu ink color
* fix list view scrolled state
* Change layout default
* Remove unused imports
* remove keys
* empty notice & context menu overview
* Fix prevent selection while context menu is up
* Fix scroll with keys
* Empty notice icon
* Add light icons
* Context menu and fixed list view scroll
* Fix name column sizing
* top/bottom scroll position
* Tag assign only when objectData
* Fix list view locked state
* fix ci
* shamefully ignore eslint
---------
Co-authored-by: Jamie Pine <ijamespine@me.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: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
* make it work
* use functions instead of jobs for shallow stuff
* use generalised AbortOnDrop
* simplify naming
* error stuff + alphabetical rspc types
* log errors
* don't run CI on push
* remove ephemeral
* private Worker::new
* remove comments