Commit Graph

266 Commits

Author SHA1 Message Date
Vítor Vasconcellos
c1a224e592 [ENG-620] Update QuickPreview when selected item change (#1218)
Update QuickPreview when selected item change

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
2023-08-16 08:06:37 +00:00
ameer2468
40e035bc62 [ENG-967] Reset confirmation for db sd reset (#1221)
Reset confirmation for db sd reset
2023-08-16 07:16:18 +00:00
nikec
717e01ef1f [ENG-300] Explorer multi-select (#1197)
* grid

* Improved multi-select, grid list & view offset. Added gap option & app frame.

* List view multi-select

* Include multi-select in overview, fix page ref type

* Add gap to options panel

* Fix drag

* Update categories z-index

* going pretty well

* fix a couple bugs

* fix another bug :)

* minor improvements

* Separate grid activeItem

* extra comments

* um akshully don't ref during render

* show thumbnails yay

* cleanup

* Clean up

* Fix ranges

* here it is

* fix cols drag

* don't enforce selecto context

* explorer view selectable

* Update index.tsx

* Context menu support for multi-select (#1187)

* here it is

* stopPropagation

* cut copy multiple

---------

Co-authored-by: nikec <nikec.job@gmail.com>

* explorer view selectable

* Update index.tsx

* items Map

* fix renamable

* Update inspector

* Hide tag assign if empty

* fix merge

* cleanup

* fix un-rendered drag select

* fix double click quick preview

* update thumbnail

* mostly handle multiple select in keybindings

* fix ts

* remove another todo

* move useItemAs hooks to @sd/client

* fix thumb controls

* multi-select double click

* cleaner?

* smaller gap

---------

Co-authored-by: Jamie Pine <ijamespine@me.com>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: Ericson "Fogo" Soares <ericson.ds999@gmail.com>
2023-08-15 08:23:41 +00:00
Brendan Allan
f36412709e Store portal elements as state instead of refs (#1212)
i ❤️ dan abramov
2023-08-13 17:27:42 +00:00
Jamie Pine
13650236d1 [ENG-887] Category empty screens (#1056)
* begin

* default category ui + schema

* yes

* better light icons

* new text icon

* fix schema

* fix merge error

* fix optional

* re-export icons

* tweaks

---------

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
2023-08-12 16:30:03 +00:00
Brendan Allan
e65a6e31f7 Move onboarding form handling logic to Layout (#1206)
* move onboarding form handling logic to Layout

* better default handling + progress tracker

* relative routes >>>

* wait for libraries to load

* move screen unlocks to Progress
2023-08-12 09:14:02 +00:00
Brendan Allan
9139ce5aae [ENG-968] Cache job progress events (#1203)
* cache job report events in context

* hoist report state to JobManager

---------

Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
2023-08-12 07:41:18 +00:00
Aditya
0102b61880 [ENG-954] Quick Preview for text file (#1184)
* 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>
2023-08-10 18:52:57 +00:00
Tim
52ebcef92d [ENG-960] pause inspector thumbnail while quick preview is open (#1186)
* 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>
2023-08-09 08:48:56 +00:00
Brendan Allan
1eb3b0e55a Sync ingesting (#1181)
* sync + ingest refactor

* fix Event enum description

* actually do sync over network

* re-enable heif

* remove comment
2023-08-07 07:52:43 +00:00
Brendan Allan
2054b72ebb Fix remove from recents (#1179)
* allow adding custom items to explorer context menu

* provide extra fn to all cms

* fix type errors

* disable ban-types eslint rule
2023-08-05 12:02:00 +00:00
Aditya
64d3dd54af [ENG-847] implement Display Full Path in inspector (#1155)
* #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>
2023-08-04 11:34:29 +00:00
Aditya
ff5a484274 [ENG-848] Implemented "Copy as Path" functionality (#1139)
* #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>
2023-08-04 10:26:34 +00:00
Ericson "Fogo" Soares
9e65a22e74 [ENG-875] Re-index & Re-thumb should be smart (#1130)
* New sub_path rescan rspc route

* Changing some rescan call sites to use new route
2023-07-25 12:47:56 +00:00
Brendan Allan
9907ac29dc CRDTOperation receiving (#1122)
* operation receive + compare

* cleanup + deduplication

* operation receive + compare

* cleanup + deduplication

* sync route + operation grouping

* tag assign sync

* proper relation support in sync debug page

* migration

* separate core-sync + utils crates

* separate p2p event loop from manager

* cleanup library handling

* clippy

* feature gate sync messages properly

* make migration not add required field
2023-07-24 15:26:00 +00:00
Oscar Beaumont
c025326e03 [ENG-906] Initial library sync (#1095)
* 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>
2023-07-17 11:53:25 +00:00
Brendan Allan
63a1648904 Use codegen for ModelSyncType exec (#1098)
* use codegen for ModelSyncType exec

* folder client format

* hande create operation properly
2023-07-15 04:22:04 +00:00
nikec
bf6cbdd830 [ENG-913] Fix quick preview showing wrong file (#1096)
Fix quick preview
2023-07-13 12:34:52 +00:00
Oscar Beaumont
97a7104473 [ENG-537] Notification system (#805)
* `Notification` struct

* Manage dem notifications

* a dash of rspc

* `read` field

* `handle_notification_callback`

* some Prisma

* TS-centric notifications backend

* `useNotifications` hook

* Notification test buttons
2023-07-12 07:43:27 +00:00
Oscar Beaumont
74bf175442 [ENG-759] P2P Cleanup (#1062)
* 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>
2023-07-12 06:23:30 +00:00
Brendan Allan
4240048d33 [ENG-846] Preferences (#1047)
* preferences table + trait

* cleaner implementation

* router + ts type

* preference test

* per-column list view preferences

* preference read + write

* add some docs

* migration + docs

* remove ts expect error
2023-07-12 04:32:53 +00:00
nikec
1a31417882 [ENG-893] Fix categories offset (#1086)
Fix categories offset
2023-07-07 15:48:08 +00:00
nikec
4feca104f7 [ENG-889] Display options based on selected view (#1079)
* Update slider color

* Update tooltip color

* Display options based on view
2023-07-07 10:57:25 +00:00
nikec
cdf1767e85 [ENG-885] Move online locations to lib store (#1074)
* Enable trace logging for invalidate query

* Fixing quick rescan on explorer
And annotating wrong quick rescan usage on top bar reload button

* Move online locations to lib store

* Fix topbar reload path

* fix mobile

* Remove unused imports + format
 - Adjust `arraysEqual` arguments type

---------

Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
2023-07-05 22:27:38 +00:00
Vítor Vasconcellos
dac54e44d1 [ENG-765] Reported Total capacity and Free space are wrong (#1066)
* 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
2023-07-05 18:22:56 +00:00
Jamie Pine
7067dcb35c [ENG-869] Fix identifier missing comma (#1060)
* fix, untested

* formatNumber util

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>
2023-07-04 15:34:37 +00:00
nikec
c99657859c [ENG-882] Overview page scroll position on category change (#1071)
* Page layout context & overview page scroll on category change

* Move PageLayout
2023-07-04 12:14:33 +00:00
Brendan Allan
8211c09c1c Refactor category scroll handlers (#1069)
* state enum

* combine some useEffects

* combine all useeffects

* formatting
2023-07-04 00:59:31 +00:00
nikec
47fb03c9fa [ENG-880] Categories scroll and drag improvements (#1068)
Scroll and drag improvements
2023-07-03 15:41:17 +00:00
nikec
25d2a0170e [ENG-879] File rename improvements (#1067)
File rename improvements
2023-07-03 11:45:15 +00:00
nikec
55e4c784cd [ENG-807] List view improvements (#1065)
* Switch from window resize to ref resize

* Prevent dragging changing the cursor style

* List view improvements

* Update layout context

* Update useIsTextTruncated hook

---------

Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
2023-07-03 07:12:13 +00:00
ameer2468
3da03527d5 [ENG-760] Overview draggable categories (#1064)
* Draggable categories

* Update Categories.tsx

* fix storybook

---------

Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
2023-06-30 10:37:54 +00:00
nikec
fc7cbc1b65 [ENG-861] Organize explorer parent context menu (#1055)
Organize context menu
2023-06-29 15:37:26 +00:00
nikec
c1e47fb009 [ENG-851] Fix explorer view context menu (#1054)
* Fix explorer view context menu

* Update to check for undefined
2023-06-29 13:06:46 +00:00
Brendan Allan
9d8e1f6f73 [ENG-858] Source analytics paths from router rather than regex replacement (#1053)
* no more regex replacing in interface

* fix location create event

* onSuccess is crine

* documentation

* typescript

---------

Co-authored-by: brxken128 <77554505+brxken128@users.noreply.github.com>
2023-06-29 08:10:26 +00:00
Ericson "Fogo" Soares
9a6d88a096 [ENG-850] Wrongly labelled .ts files (as video) (#1052)
* 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
2023-06-29 02:58:33 +00:00
Ericson "Fogo" Soares
3a46ea4370 Job System and Watcher improvements (#1030)
* 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>
2023-06-28 16:30:19 +00:00
Brendan Allan
a8ed6dabc3 Rename field components + asyncify onSubmits (#1046)
rename field components + asyncify onSubmits
2023-06-28 09:44:40 +00:00
Brendan Allan
a84eec36c5 [ENG-806] Better library name handling (#1043)
better library name handling
2023-06-28 09:11:24 +00:00
Brendan Allan
3d51ac678a Cleanup empty notice (#1042)
* cleanup empty notice + move tag assign options

* typescript
2023-06-28 06:59:29 +00:00
Brendan Allan
512abbe1c3 [ENG-798] Override new tab behaviour for NavLink on desktop (#1037)
override new tab behaviour for NavLink on desktop
2023-06-28 05:09:57 +00:00
Brendan Allan
4fcd07bb73 [ENG-818] Use date_indexed properly in inspector (#1041)
use date_indexed properly in inspector
2023-06-28 04:44:59 +00:00
Brendan Allan
c9980b5546 Add context menu back to overview (#1040)
add context menu back to overview
2023-06-28 04:33:08 +00:00
Brendan Allan
c7905b297e Hide DismissibleNotice when no items (#1038)
hide DismissibleNotice if items.length === 0
2023-06-28 02:09:30 +00:00
Brendan Allan
411f0335ba [ENG-829] Render QuickPreview in Explorer/View (#1036)
formatting + render QuickPreview in Explorer/View
2023-06-28 02:07:22 +00:00
Brendan Allan
a1ed97b702 [ENG-816, ENG-821] Re-implement reveal in finder + ContextMenu overhaul (#1029)
* mostly there

* native opening working

* more

* cleanup

* reorganise

* remove unnecessary import

* uncomment some stuff

* spacing

* store quickview ref inside provider

* fix linting

* clippy

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
2023-06-27 15:34:53 +00:00
nikec
9ae7f93ec2 [ENG-836] Fix modal layout padding (#1034)
Fix modal layout padding
2023-06-27 13:54:57 +00:00
Oscar Beaumont
de7e4df0b4 [ENG-823] Fix some stuff (#1024)
* SQLite journal bug

* Remove "job.report" indexes thing

* resume button - job not found?

* panic hook with logging

* it did

* large pain

* fix `check_nested_location`

---------

Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
2023-06-27 05:12:04 +00:00
ameer2468
07bc7d17d1 [ENG-804, ENG-802, ENG-800] Minor UI Fixes (#1016)
* 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>
2023-06-25 16:27:03 +00:00
Ericson "Fogo" Soares
05bbfa7d92 [ENG-670 / ENG-774] Resumable and Pausable jobs / Queued jobs don't show in the job manager (#961)
* 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>
2023-06-24 07:23:30 +00:00