Commit Graph

891 Commits

Author SHA1 Message Date
Utku
ed156f742d Performance to the moon (#1946)
* to the moon

* ignore searchbar

* fix

---------

Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
2024-01-20 02:52:36 +00:00
Vítor Vasconcellos
22abd85ba8 Fix NaN progress on first stats data for StatCard (#1953)
- Fix some typos + improved the progress logic
2024-01-18 05:45:49 +00:00
ameer2468
d4f6175631 update tailwindcss to 3.4 (#1949)
* update tailwindcss to 3.4

* Update pnpm-lock.yaml

* update others
2024-01-17 20:46:14 +00:00
ameer2468
405306535b [ENG-1547] Fix strange blue line in input (#1950)
remove console logs and fix strange blue line in input
2024-01-17 20:16:35 +00:00
Jamie Pine
fdf31fc3a8 [ENG-1511] Library Screens (#1903)
* init

* changes

* Now updating statistics once a minute

* More robust statistics updater

* Concurrency is hard

* improvements to stats

* refactor

* adjust setting back/forward padding so it matches top bar

* refactor sidebar

* rename

* setting up screens

* some changes

* Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>

* yes

* yes2

* refactored explorerItem.ts

* important explorer code shouldn't be thrown away in a util moment

* support for multiple thumbnails in ExplorerItem

* clippy

* move debug

* yes

* label filters

* ts

* comment out unconnected stuff

* added .mid for midi files

---------

Co-authored-by: Ericson Fogo Soares <ericson.ds999@gmail.com>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2024-01-16 12:15:03 +00:00
nikec
3eb938a8d8 [ENG-1544] Add spacedrop light icon (#1941)
add Spacedrop_Light.png
2024-01-16 11:29:00 +00:00
Oscar Beaumont
9fc3b8e635 Solid Iterop v2 (#1925)
* portals all the way

* CI for mobile JS

* whoops

* do install plz

* Solid JSX on mobile

* Cleanup portals + file structure

* wip

* reset explorer changes

* fail

* make it work betterer

* cleanup

* It's not a `useEffect` bug, no way

* Fix `useSubscribeToThemeStore`
2024-01-10 09:40:18 +00:00
Brendan Allan
4962b1160b [ENG-1488] Cloud sync message compression (#1922)
* CRDTOperationWithoutInstance

* almost there

* fully compress messages

* implement more of sd-cloud-api

* sd-cloud-api-ify

* landing -_-

* openssl

* clippy

* idk

* bruh

* wut

* ahhh right
2024-01-09 10:21:23 +00:00
Oscar Beaumont
f7cd96732f @sd/client SolidJS support - Part 1 (#1920)
* `createSolid` + `createPersistedMutable`

* Move all Valtio stores to SolidJS

* Remove Valtio from `@sd/client`

* Missed auth store

* wip

* `useSolidStore` allow mutable setting

* Restructure `@sd/client` a bit

* Add `WithSolid` + custom `useObserver`

* Parse props both ways

* Universal Context

* Solid to React context working

* Working universal context

* context inheritance

* whoops

* Make it clearer how the demo works

* wip: `useUniversalQuery`
2024-01-09 08:05:01 +00:00
Utku
a94832c1ee [ENG-1502] I18n (#1897)
* you know, you could just work on first try

* fix extension

* configure plugin and fix few translation issues

* more

* more keys

* and more

* more keys and sort

* commit msg

* we like keys here

* end my suffering

* jk i just love keys

* key fix

* add turkish

* add german

* Entendido

* Demnächst

* Mettre une étoile sur GitHub

* 成功

* pnpm-lock

* vite plugin

* remove i18next backends

---------

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2024-01-08 20:26:46 +00:00
Oscar Beaumont
bef1ebcade [ENG-1508] Launch Spacedrop (#1893)
* Shit UI

* refactor a bit

* wip

* yeet

* farming the wry but it's stale

* Real-time hover event

* Hook with `Platform` + fix broken window-state plugin

* `DragAndDropDebug`

* Clippy

* revert Tauri v2 stuff

* minor

* probs not gonna work

* undo last commit

* a

* b

* c

* d

* e

* f

* g

* long shot

* 1

* no 7

* da hell

* large bruh moment

* lol

* zzzz

* SSH into CI

* yeet

* Tauri mouse position without new Wry

* go for gold

* Correctly lock `ort` version

* minor fixes

* debounce hover events

* WTF Tauri

* Replace DND hooks with goated versions

* wip frontend stuff

* fix ts

* disable library p2p stuff

* remove Spacedrop dialog + hook up backend

* `useOnDndLeave` working

* Close popover when drag outside

* Allow `openFilePickerDialog` for Spacedrop

* couple of fixes

* empty state

* smh

---------

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2024-01-08 06:42:17 +00:00
Oscar Beaumont
49bdbc4b60 SolidJS Build Infrastructure (#1919)
* backport changes from #1913

* Make ESLint play nice

* eslint fix

---------

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2024-01-08 06:20:20 +00:00
Oscar Beaumont
b6ea70b8d0 Hosted Locations - Part 1 (#1861)
* Hosted locations CRD

* Authorise + file upload demo

* Configurable path for testing perms
2024-01-08 06:10:26 +00:00
Oscar Beaumont
f9853dad85 Remove useExplorerStore (#1916)
* Replace `useExplorerStore` with `useSelector`

* Remove `getExplorerStore()

* Devtools names for all major anonymous components

* referential equality

* Undo mobile changes

* remove debug log

* Properly memoise `RenameTextBox` args

* goodbye log

* Fix a couple of bugs
Thanks @ameer2468 for pointing out!
2024-01-05 08:46:03 +00:00
Oscar Beaumont
8d9e6dbf39 Fix mobile app (#1914)
`import.meta.hot` no worky in React Native
2024-01-02 11:36:49 +00:00
Oscar Beaumont
949707c7f9 Vite upgrades (#1911)
* Upgrade Vite + use SWC React plugin

* Upgrade to type module

* lazy load Sentry

* Lazy load prism

* fix

* Lazy load some of the icons

* fix types

* Fix eslint config

* run lint --fix

* Upgrade Turbo

* Turborepo not happy

* Upgrade Typescript

* Stop complaining Turborepo
2024-01-02 06:26:28 +00:00
Oscar Beaumont
26f610014a Improve ephemeral walker (#1877)
* `non_indexed::walk` as `impl Stream`

* wip

* this is gooooood

* savepoint

* remove

* Batched stream

* `unsafe_streamed_query`

* nightmare nightmare nightmare nightmare nightmare nightmare

* JS Mutex

* cleanup

* proper error handling

* myCode satisfies Typescript

* Move to npm fork of rspc

* fixes

* rspc more crashy crashy

* Typescript is very disappointed
2024-01-02 06:09:44 +00:00
Brendan Allan
5371e9f961 [ENG-1512] Replace sync operation types with single type (#1900)
* replace multiple op types with crdt_operation

* cleanup
2023-12-21 05:58:03 +00:00
Ericson "Fogo" Soares
7c90bcb95b [ENG-1479] AI Prototype (#1845)
* First draft on image labeling

* Fixing execution providers for other OSs

* Better error handling and shutdown

* Working with shallow media processor

* bruh

* Fix warnings

* Now hooked to media processor job

* Link desktop app with libonnxruntime to avoid TLS error during startup

* Be able to change models on runtime
Revert to use labels table instead of tags

* A bug on a model-less inference

* Show AI labels on Inspector
 - Change yolo inference to use half precision
 - Add labels api to core

* Remove LD_PRELOAD

* Fix race condition on model executor shutdown

* Don't load all images in memory moron

* Embeed yolo model in prod build
 - Change yolo model path to new one relative to executable

* Disable volume watcher on linux, it was crashing the app
 - Invalidate labels when they are updated

* Rust fmt

* Minor changes

* Gate onnxruntime linking to the ai-models feature

* Add build script to sd-server to handle onnxruntime linking workaround

* Move AI stuff to its own crate and normalize deps

* Rust fmt

* Don't regenerate labels unless asked to

* Now blazingly fast

* Bad merge

* Fix

* Fix

* Add backend logic to download extra yolo models

* Add models api route
 - Add api call to get available model version
 - Add api call to change the model version

* Improve new model download logic
 - Add frontend to change image labeler model

* Fix new model downloader

* Fix model select width

* invalidate labels count after media_processor generates a new output

* Rename AI crate and first draft on download notifications

* fix types

---------

Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-12-19 09:28:57 +00:00
Brendan Allan
3cabc9c3a9 Basic actor manager (#1888)
* basic declared actor manager

* put actors in separate file

* clippy

* hopefully clean up some clippy warnings

---------

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>
2023-12-13 17:49:22 +00:00
nikec
caf4fc5cde [ENG-1353] explorer dnd (#1737)
* locations dnd

* fix icon

* reduce navigate timeout

* fix types

* another

* fix drag overlay count

* Update pnpm-lock.yaml

* merge

* ephemeral support and other improvements

* merge

* Tag dnd

* merge

* type

* merge

* remove offset

* update dnd logic to not depend on drag source

* handle allowed types if parent isn't available

* saved searches dnd navigation

* well

* rendering

* Update pnpm-lock.yaml

* types

* remove width

* Temporary solution

* merge

* @dnd-kit/utilities

* Update pnpm-lock.yaml

* explorer path dnd

* remove unused drag hook

* fix dnd on LayeredFileIcon

---------

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-12-13 11:59:27 +00:00
Brendan Allan
a9da6a0093 [ENG-1495] Pull new instance data when receiving cloud sync operations (#1882)
* add sd-cloud-api

* consume sd-cloud-api & leave instance writing to receiving

* module-ise api crate

* put back logging

* remove 'join cloud library'
2023-12-12 07:47:21 +00:00
Brendan Allan
1db2a4eccc [ENG-1493] Fix navigation buttons with @remix-run/router patch (#1871)
* patch @remix-run/router

* add replace to a bunch of redirects

* updates + lockfile
2023-12-07 08:10:38 +00:00
Lemming
e4d21b001c fix(landing):Fixed the style of the mobile navigation bar menu bar (#1869) 2023-12-07 04:38:03 +00:00
ameer2468
84d44afcd5 [ENG-1462] Visual improvements for search (#1864)
* light mode correction and visual improvements for search

* Update AppliedFilters.tsx
2023-12-06 19:07:35 +00:00
Brendan Allan
4fb9028452 Cloud Sync Basics (#1856)
* cloud operation models

* please clippy

* cloud sync table

* cloud ingest works very simply

* move stuff around + stop invalidation from triggering every 10ms

* cleanup

* fix ts

* remove localhost

* re-enable vendored openssl
2023-12-06 16:47:51 +00:00
Oscar Beaumont
89a7f735e5 [ENG-1400] Normalised caching (#1734)
* prototype

* `.normalise` helper + only `String` keys

* implement it for 'search.paths'

* redux devtools

* fix

* refactor backend

* wip: upgrade to rspc fork

* mega cursed

* Upgrade Specta-related stuff

* Upgrade Typescript

* Cache debug page

* bruh

* Fix optimistic library setting

* Cache clearing

* better timeout

* Fix tags page

* bit of cleanup

---------

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-12-05 13:16:03 +00:00
Brendan Allan
f1b61dbc3d Cloud connection (#1842)
* actual cloud connection wow

* Preliminary cloud library joining

* remove dev overrides

* add back library caching

* re-enable vendored openssl
2023-11-30 07:39:39 +00:00
ameer2468
0ddea92f13 [ENG-1430] Improve keymatcher hook (#1835)
* improve keymatcher hook

* fix delete context menu icon
2023-11-26 08:51:43 +00:00
ameer2468
4cff4763ed [ENG-1461] Fda layout update (#1832)
fda layout update
2023-11-25 22:38:09 +00:00
Utku
d0f318bf2b 0.1.4 (#1825)
prettier and tag
2023-11-25 01:49:52 +00:00
Brendan Allan
908a13130c [ENG-1435] Saved Searches (#1810)
* saved search CRUD (not perfect)

* saved search settings page

* minor improvements

* fix search filter text apply

* serach in setting

* reduce new tab flicker

* fix tab delete index

* temporarily remove hover effect from applied filters

* fix types

* fix progress

* fix double-add for inOrNotIn

* no more saved searches settings page

* redirect on saved search delete

* cleaner

* fix filter checkbox double fire

* types

---------

Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
2023-11-25 00:16:26 +00:00
jake
59ef3b94de [ENG-1095] HEIF* and PDF thumbnail orientation (#1815)
* fix horizontal pdf rendering

* don't rotate certain formats (heif*)

* return `u32` from scaling function

* add `avifs` as a valid extension

* add avifs as a valid MIME type

* re-categorize `avifs` as a video (sequence)

* Fix mime-types

* Add Hif extension
 - Cannon uses a special extension for heif in its cameras: https://github.com/digipres/digipres.github.io/blob/master/_sources/registries/fdd/fddXML/fdd000525.xml#L213-L221

* hif is actually a heic

---------

Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
2023-11-24 22:07:25 +00:00
Utku
3b12e4ea19 [ENG-1414] Docker Server Installation Dialog (#1774)
* docker dialog

* move tooltip inner

* types

* rename "production" tag to latest

* fix dialog with and url

* pnpm-lock
2023-11-24 19:30:19 +00:00
ameer2468
f0d37c46d7 [ENG-1456] General UI Tweaks (#1819)
* General UI Tweaks

* Update general.tsx

* Update general.tsx
2023-11-24 14:46:57 +00:00
ameer2468
a7fed83556 [ENG-1413] Full disk access perms (#1791)
* fda wip

* clippy

* add tauri invoke fns for FDA

* fda wip

* clippy

* add tauri invoke fns for FDA

* wip

* fda wip

* clippy

* add tauri invoke fns for FDA

* wip

* wip

* wip fda

* remove imports

* hopefully improve FDA

* execute only on macos

* ts

* ts

* Update Platform.tsx

* Update AddLocationButton.tsx

* remove console log

* fix: fda and add unit tests

* temp commit for Jake

* add fda state and keybind handling (so the frontend is kept up to date)

* update FDA

* update imports

* testing purposes

* Jakes work

* fix fda checks

* work in progress (but not working)

* remove dead files

* attempt #2

* !!!temporarily enable devtools in prod

* remove alert

* show FDA screen but don't require it

* add an FDA button to general client settings

* Update AddLocationButton.tsx

* remove dead code

* unused dep

* old errors

* remove import

* dead code

* dead code + typesafety

* eslint

* remove fda dialog references

* remove mp4 vid

* hopefully fix onboarding for non-macos OSes

* shorter nav

---------

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>
2023-11-23 20:54:45 +00:00
Ericson "Fogo" Soares
f662bf7594 [ENG-1398] Make thumbnailer parallelism configurable (#1780)
* Removing migrator

* Adding serde_repr dep

* Generalizing version manager

* Updating library config to use version manager

* Updating node config to use version manager

* Updating stuff to use new configs

* More async

* Library manager errors

* Node and thumbnailer preferences

* Small warning on prep

* Upgrading batch construction for thumbnailer

* Updating thumb version file to new version manager

* Configurable parallelism for thumbnailer

* Integration with frontend and refresh batch

Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>

---------

Co-authored-by: Vítor Vasconcellos <HeavenVolkoff@users.noreply.github.com>
2023-11-23 11:23:32 +00:00
Jamie Pine
27f077ea0b [ENG-1269] Search options (#1561)
* search options start

* small progress

* more

* bunch of stuff

* semi functioning filters

* cleanup setup api

* progress

* remove filters

* hooked up to query epic moment

* fix

* move db stuff to specific modules

* in/notIn for some fields

* generate ts

* big gains

* working filter options for locations, tags and kind

* working search query

* perfect fixed filters

* saved searches lol

* merge error

* saved searches via api

* better routing

* [ENG-1338] Fix fresh Spacedrive install failing to start due to attempting to query a nonexistent Library (#1649)

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

* Show hidden files false by default (#1652)

bool

* fix remove filter in list

* tweaks

* fix nav buttons

* unify MediaData search handling

* cleanup saved search writing

* Add left top bar portals for tags and search + fixed media view on tags

* added search to filter dropdown

* render cycle improvements

* hotfix

* wip

* Refactor with Brendan, but this is a WIP and the search query no longer works

Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>

* progress

* fix location/$id page

* fix tags too

Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>

* 3rd refactor lol

epic style

* half-done with enum-ification of SearchFilterArgs

* broken fixed filters but working inNotIn filters

* search name + extension kinda working

* hidden filter

* fixed filters working??

* deferred search value

* extensions works

* filtered search items mostly working

* tweaks

* stacked approach working for non-search filters

* move to Explorer/Search

* actually use filterArgs in queries

things actually work properly now

* added new icons from Mint

* goof

* cleanup types, filters and mutation logic

* actually use search value

* remove overview from sidebar

* don't shrink LibrariesDropdown ga

* remove overview from sidebar and default to /network

---------

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>
Co-authored-by: Brendan Allan <Brendonovich@users.noreply.github.com>
2023-11-17 06:58:44 +00:00
Brendan Allan
0ef65fce2d [ENG-1423] Multiple tabs (#1777)
* tabs w/ multiple router instances

* fix router switching

* keybinds

* manual history tracking

* eslint

* remove scroll restoration

* fix tab removal

* route title + tab create delay

* typescript

* put tab list up top

* Remove import + show close button only if tabs length more than 1

* lint

* unify blur across whole top bar

* add to keybindings page, tauri drag region, and tooltip

* fix blur

* more drag regions

* merge moment

---------

Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
2023-11-16 15:14:47 +00:00
ameer2468
9cf71c1511 [ENG-1397] Quickpreview images slider (#1773)
* wip

* wip

* wip

* Update ImageSlider.tsx

* wip

* wip

* wip

* Update ImageSlider.tsx

* bump virtual-grid version for horizontal support

* quickpreview image slider almost

* cleanup

* add mouse wheel support

* Update ImageSlider.tsx

* Update ImageSlider.tsx

* feedback

* block down and up if quickview is open

* Update GridList.tsx

* spacing

* Update GridList.tsx

* Update GridList.tsx

* feedback and fixes

* refactor

* Update GridList.tsx

* Update ImageSlider.tsx

* Update ImageSlider.tsx

* remove unnecessary checks & update scroll behavior

* add shortcut to trigger image slider, full width aswell.

* persist value

* Fix Esc explorer shortcut, fix quick preview move between items shortcut & support multiple selected items on image slider

* fix list view key selection

* don't exit selection if slider is toggled off

---------

Co-authored-by: nikec <nikec.job@gmail.com>
2023-11-16 13:16:29 +00:00
Brendan Allan
031ac7b670 [ENG-1276] move assigned tags to top of tag assign list (#1768)
* move assigned tags to top of tag assign list

* sort tags by most recently assigned

* console.log

* error boundary
2023-11-14 09:35:50 +00:00
Oscar Beaumont
5705f40aae [ENG-1333] Display active P2P listeners (#1644)
* wip

* share the actual port

* fixes

* wip: remove it

* cargo fmt

* thanks @niikeec
2023-11-13 07:02:03 +00:00
Ericson "Fogo" Soares
614ca0d811 Remove < 21 node restriction (#1728) 2023-11-04 03:44:07 +00:00
Ericson "Fogo" Soares
f23e0b13c6 [ENG-1181] File System actions for Ephemeral Files (#1677)
* Backend side

* Rust fmt

* Removing uneeded duplicate files rspc route

* Create folder for ephemeral files

* Ephemeral delete files

* First draft on copy, cut and delete, still buggy

* Fixing copy function and updating async-channel dep

* Rename and some fixes
2023-11-03 17:06:34 +00:00
nikec
809cf636d4 [ENG-1246] Fix icons on light theme (#1502)
* Fix icons on light theme

* more icons

* more icons

* update icons

* assets gen
2023-11-01 15:24:09 +00:00
Brendan Allan
c91ccff37d [ENG-443] Allow folders to be tagged (#1712)
* allow folders to be tagged

* remove bruh

* custom useAssignItems hook

* fix types
2023-11-01 05:23:56 +00:00
Oscar Beaumont
c7b74ccffa [ENG-1380] Stabilise p2p settings (#1703)
* let me create pr

* a whole lotta changes

* split `p2p_manager.rs` into smaller files

* the arcpocalypse is over

* minor generic cleanup

* wip removing 'MetadataManager'

* more wip

* wip: i am changing branch

* discovery2 -> discovery

* make it somewhat compile

* more wip

* wip: reassembling manager stream

* state more goodly

* wip

* more wip

* removing generic from sd_p2p::Manager

* reassemble networked libraries

* wip: hooking back up mDNS

* multi-flume wip

* contain bad code to a single file

* p2p_manager_actor + split handlers into file per operation

* cleanup after restructure

* cleaning up more

* wip: reenable resync

* wip: remote identity in connection payload

* track connected clients (required for `service.rs`)

* a big ass iterator

* working towards finishing `service.rs`

* service shutdown

* hook up listen channel in service

* fix address resolution

* merge nlm stuff into LibrariesService

* finish library to service mapping

* less footguns in p2p - seal `PeerId`

* fix previous pr

* p2p state rspc query

* send node events to the frontend

* minor

* wip

* more worky, less crashy

* make spacedrop work + debug state

* fix mdns expiry

* clippy

* other clippy

* remove feature flag
2023-10-31 04:29:25 +00:00
ameer2468
2b52555c2b [ENG-1193] Added icons to dialogs (#1708)
* Added icons to dialogs

* update file/folder icon when deleting

* tweaks

* ts

* ts
2023-10-30 16:46:12 +00:00
Oscar Beaumont
02775921ef [ENG-1318, ENG-1199, ENG-931, ENG-1046] Ability to disable mDNS discovery (#1620)
* let me create pr

* a whole lotta changes

* split `p2p_manager.rs` into smaller files

* the arcpocalypse is over

* minor generic cleanup

* wip removing 'MetadataManager'

* more wip

* wip: i am changing branch

* discovery2 -> discovery

* make it somewhat compile

* more wip

* wip: reassembling manager stream

* state more goodly

* wip

* more wip

* removing generic from sd_p2p::Manager

* reassemble networked libraries

* wip: hooking back up mDNS

* multi-flume wip

* contain bad code to a single file

* p2p_manager_actor + split handlers into file per operation

* cleanup after restructure

* cleaning up more

* wip: reenable resync

* wip: remote identity in connection payload

* track connected clients (required for `service.rs`)

* a big ass iterator

* working towards finishing `service.rs`

* service shutdown

* hook up listen channel in service

* fix address resolution

* merge nlm stuff into LibrariesService

* finish library to service mapping

* less footguns in p2p - seal `PeerId`

* fix previous pr

* p2p state rspc query

* send node events to the frontend

* minor

* wip

* more worky, less crashy

* make spacedrop work + debug state

* fix mdns expiry

* clippy

* other clippy

* remove old tests

* add tests back

---------

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-10-30 08:24:04 +00:00
Oscar Beaumont
95f48ea575 [ENG-1367] TypeError: null is not an object (#1698)
strickter types pog
2023-10-30 00:43:18 +00:00