* 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>
* added bearded icons
* implemented bearded icons
* Made separate `LayeredFileIcon` component
* Delete index.tsx
* Update LayeredFileIcon.tsx
* Update LayeredFileIcon.tsx
* Update Thumb.tsx
* modified `generate.mjs` file
modified `generate.mjs` file to automatically generate index file for our icons
* Automatically generated by `generate.mjs` script
auto generate files are also included in code, so i also included it
* `bearded-icons` in `ext` folder
* Update LayeredFileIcon.tsx
* Update LayeredFileIcon.tsx
* formatted LayeredFileIcon.tsx
* Update Thumb.tsx
* added more icons to utilize
* made seperate file for `IconMapping`
* fixed typescript error by `Record<string, React.ReactElement>`
* More fixes in typescript
BTW, I am still learning TypeScript, but I know at least how much is required to get my work complete.
* moved icons to `assets/svgs/ext`
* added `kind !== 'Code'`
* Update Thumb.tsx
* Enable LayeredFileIcon for any file icon
- Change IconMapping to define layered icons by kind/extension, instead of just extensions
- Always render LayeredFileIcon component and determine whether the layered icon should or not be rendered internally
- Format code
* Using our own name conventions
* `getLayeredIcon` implementation
* using our own directory structure
* directory structure
* fix 1
* fixed relative import
* `getLayeredIcon` utility implementation
* for our `kind`/`extention`.svg folder structure
* improvements in `getLayeredIcon`
* added icons in `Code`
* Delete IconMapping.tsx
* fixed imports
* fix typescript, mobile svg handling etc
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
* 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>
* cache job report events in context
* hoist report state to JobManager
---------
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
* Quick Preview for text file
Implemented a Quick Preview feature using an iframe to display the content of text files in the browser, enhancing the user experience with easy access to file information.
* made corners rounded
* desabled scroller in inspector
* Text Viewer's Implementation
Implemented a TEXT Viewer like PDF Viewer, which shows content of text files
* Dark Scrollbar & Padding Enhancements
Implemented dark scrollbar to match theme and added horizontal padding for improved text preview.
---------
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
* pause inspector thumbnail while quick preview is open
* rename prop paused to pauseVideo
* move video thumb into its own component (#1177)
---------
Co-authored-by: Tim Havlicek <t.havlicek@s-v.de>
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
* #1119 Issue: Implemented "Copy as Path" functionality
I addressed issue #1119 by successfully implementing the "Copy as Path" functionality within the "More Actions" section of the Context Menu. This feature enhances user experience and offers a convenient way to copy file paths. While considering the valuable suggestion of potentially associating this option with the "Alt" key in the future, I opted to make it accessible through the "More Actions" section for now. All tests have passed smoothly
* Extend "Copy as Path" functionality to Overview, Search, and tags explorer
This commit extends the "Copy as Path" functionality to three additional screens in the SpaceDrive application: Overview (under categories), Search, and tags explorer. Users can now conveniently copy file paths from these screens, enhancing their overall experience with the application. The implementation has undergone thorough testing and is ready for review and integration into the project.
* Enhanced File Path Retrieval with RSPC Integration
The code now uses rspc to obtain the filePath, and we simply call it using useLibraryQuery from the frontend to retrieve the filePath. This RSPC-powered approach has successfully replaced the previous, less efficient method of file path retrieval. As a result, the entire process has become streamlined and optimized.
* Merge branch 'eng-848-feature-copy-as-path' of https://github.com/Raghav-45/spacedrive into eng-848-feature-copy-as-path
* Enhanced File Path Retrieval with RSPC Integration
The code now uses RSPC to obtain the file path, and we simply call it using useLibraryQuery from the frontend to retrieve the filePath. This RSPC-powered approach has successfully replaced the previous, less efficient method of file path retrieval. As a result, the entire process has become streamlined and optimized.
In the previous file path retrieval method, we relied on different file access techniques, which often led to slower & non-optimal responses
* 🎉 [ENG-847] Add Full Path to inspector 🔎📁✨
Implemented full path display in the inspector window.
This commit adds the necessary code to show the full path of files in the inspector.
* Fixed Some Problems
now no need to use `import { useLibraryQuery } from '../../../../../../packages/client/src'` because this was functionality for Copy As Path not for Inspector Full Path display
* #1119 Issue: Implemented "Copy as Path" functionality
I addressed issue #1119 by successfully implementing the "Copy as Path" functionality within the "More Actions" section of the Context Menu. This feature enhances user experience and offers a convenient way to copy file paths. While considering the valuable suggestion of potentially associating this option with the "Alt" key in the future, I opted to make it accessible through the "More Actions" section for now. All tests have passed smoothly
* Extend "Copy as Path" functionality to Overview, Search, and tags explorer
This commit extends the "Copy as Path" functionality to three additional screens in the SpaceDrive application: Overview (under categories), Search, and tags explorer. Users can now conveniently copy file paths from these screens, enhancing their overall experience with the application. The implementation has undergone thorough testing and is ready for review and integration into the project.
* Enhanced File Path Retrieval with RSPC Integration
The code now uses rspc to obtain the filePath, and we simply call it using useLibraryQuery from the frontend to retrieve the filePath. This RSPC-powered approach has successfully replaced the previous, less efficient method of file path retrieval. As a result, the entire process has become streamlined and optimized.
* Enhanced File Path Retrieval with RSPC Integration
The code now uses RSPC to obtain the file path, and we simply call it using useLibraryQuery from the frontend to retrieve the filePath. This RSPC-powered approach has successfully replaced the previous, less efficient method of file path retrieval. As a result, the entire process has become streamlined and optimized.
In the previous file path retrieval method, we relied on different file access techniques, which often led to slower & non-optimal responses
* 🎉 [ENG-847] Add Full Path to inspector 🔎📁✨
Implemented full path display in the inspector window.
This commit adds the necessary code to show the full path of files in the inspector.
* Fixed Some Problems
now no need to use `import { useLibraryQuery } from '../../../../../../packages/client/src'` because this was functionality for Copy As Path not for Inspector Full Path display
* Update Items.tsx
* Different and little bit optimized appraoch
---------
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
* #1119 Issue: Implemented "Copy as Path" functionality
I addressed issue #1119 by successfully implementing the "Copy as Path" functionality within the "More Actions" section of the Context Menu. This feature enhances user experience and offers a convenient way to copy file paths. While considering the valuable suggestion of potentially associating this option with the "Alt" key in the future, I opted to make it accessible through the "More Actions" section for now. All tests have passed smoothly
* Extend "Copy as Path" functionality to Overview, Search, and tags explorer
This commit extends the "Copy as Path" functionality to three additional screens in the SpaceDrive application: Overview (under categories), Search, and tags explorer. Users can now conveniently copy file paths from these screens, enhancing their overall experience with the application. The implementation has undergone thorough testing and is ready for review and integration into the project.
* Enhanced File Path Retrieval with RSPC Integration
The code now uses rspc to obtain the filePath, and we simply call it using useLibraryQuery from the frontend to retrieve the filePath. This RSPC-powered approach has successfully replaced the previous, less efficient method of file path retrieval. As a result, the entire process has become streamlined and optimized.
* Merge branch 'eng-848-feature-copy-as-path' of https://github.com/Raghav-45/spacedrive into eng-848-feature-copy-as-path
* Enhanced File Path Retrieval with RSPC Integration
The code now uses RSPC to obtain the file path, and we simply call it using useLibraryQuery from the frontend to retrieve the filePath. This RSPC-powered approach has successfully replaced the previous, less efficient method of file path retrieval. As a result, the entire process has become streamlined and optimized.
In the previous file path retrieval method, we relied on different file access techniques, which often led to slower & non-optimal responses
* Formatted coder with Prettier
* Refactor: Update file paths to '@sd/client'
* doing things with useLibraryMutation instead of useLibraryQuery
doing things with useLibraryMutation instead of useLibraryQuery, so that we only fetch file path only when needed
* Replace locationIdToPath api route with getPath
- Resolve full file object path on the backend instead of the front-end
- Use a query instead of a mutation
- Export rspc queryClients to allow non-reactive usage
- Error handling
- Formatting
* Update Object's context menu to use query
* Move onClick logic inside the CopyAsPath Element
* Improved a Little
- removed unused imports
- formatted document with prettier config which is present in code files `.prettierrc.js`
-
* Update Items.tsx
---------
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: nikec <nikec.job@gmail.com>
* ffs
* typo
* yeet library data over p2p
* fix a bunch of edge cases
* report complete status on responder
* better log
* fix types
* mobile debug screen
* mobile + P2P is a mess
* feature flag mobile p2p pairing
* wrong one
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
* less stupid name
* yeet
* awaiting futures is kinda important lol
* no-async
* more proto stuff
* cleanup
* move it round
* None of my homies like broadcast
* minor
* do the shuffle
* restore after force push
* reusing `sysinfo::System` as intended
* fix lol
* remove `node_id` from `Volume`
* Remove `node_local_id` from `Library`
* Remove `Job` to `Node` relation
* feature flags be like
* press save 4head
* remove `Location` -> `Node` relation
* `volume.rs` to `volume/mod.rs`
* yes
* add `Instance` model and deprecate `Node` model
* pairing is better now
* Pretty code
* thinking in code
* wip
* What if Observables but in Rust?!
* Observables aren't it + `useP2PEvents` hook
* more around some jsx
* Trade offer: bad code for working pairing?
* Unit test pairing protocol
* fix everything up
* corrections
* Have you got a moment for our lord and saviour Clippy
* tsc --fixMyCode
* Prisma being wacky
* Config files being f'ed up
* broken config after migrating
* Zed being Zed
* Argh
* cliipzy
* rewind
* Fix truncate logic
* wip: instances in peer metadata
* Rethink instance ids
* fix
* whoops
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
* 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
* Fixing conflits of mts code files showing as video
* Introducing a reidentify_objects param on fullRescan
* Fix job output metadata in case of completed with errors
* Trying to make watcher more resilient between creates and updates
* More checks on create vs update
* Rust fmt
* PCR rev
* Windows CI fix
* Some indexer improvements
* Builder pattern for jobs and reports
* fix list view invalid date
* fix progress bar
* Normalizing job metadata output
* fixed job metadata
* Removing inner report struct from identifier job
---------
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: Jamie Pine <ijamespine@me.com>
* 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>
* lul, message parsing with a response is cringe
* deadlocks hurt me physically
* super secret commit with many secret secrets
---------
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>
* 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
* theoretically
* just please don't fail man
* bruh
* go away serde
* fix migrations
* squash migrations
* plz for the love of all that is good work
* disable some node fields
* fix core types
* remove unused stuff
* regenerate migrations
* Fix error boundry
* undo stuff
* migration
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
Co-authored-by: James Pine <ijamespine@me.com>
* refactor job manager ui
* huge improvements to job ui api
* improve indexer errors
* minor improvements
* make icon bigger + improve styling
* Update useJobInfo.tsx
better
* improve job status reporting
* fix job indexer backend for ui responsiveness
* attempt at debugging job.getRunning slow invalidation during indexer's walk phase
* remove progress debounce, invalidate has its own throttle layer
* hotfix ghost jobs
* basic pause/resume
* pause functionality immaculate
* pause resume working for first job in group, testable on indexer phase two
* WIP
- refactored job manager
- added better job api
* fix merge issues
* add throttle to job update events and correct index
* improve front end job data handling
* move subscription to job
* wip active job indicator
* minor tweak
* Isolated subscriptions for job events + cleanup
Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
* mutable ctx
* plz let me build rspc typesafe errors Jamie
* fix merge
* working job reporting
* fix thumbnail text
* faster tick speed
* fix error
---------
Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
* 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>