Commit graph

552 commits

Author SHA1 Message Date
maxichrome d7dee1bf9c re-add rspc codegen 2023-01-21 00:10:50 -08:00
maxichrome a0975ec8c0 fix prettier unparseable file issues 2023-01-20 23:40:30 -08:00
maxichrome 5b45458939 remove rspc codegen 2023-01-20 23:38:52 -08:00
Brendan Allan e4e80fa603
Refactor routes (#535)
* refactor routes

* use default export for screens

* use "route" relative routing

* don't use absolute import for root screens

* no absolute importing folders!!!

* fine we can absolute import folders
2023-01-20 12:40:36 -08:00
brxken128 2a40bf403d clean things up a tad 2023-01-20 14:02:36 +00:00
brxken128 8c70bc40ea remove unused icon 2023-01-20 13:26:07 +00:00
brxken128 e26cbd77fc add "nice data" for jobs 2023-01-20 13:26:04 +00:00
brxken128 508c6bdd6b attempt to move duplicate over to copy job 2023-01-20 13:23:17 +00:00
brxken128 efc7843c24 use files.cutFiles route within TS 2023-01-20 13:21:05 +00:00
brxken128 6b5af02b87 add frontend ground work for cut/copy actions 2023-01-20 13:18:11 +00:00
brxken128 f81c1b35a8 basic single file duplication 2023-01-20 13:12:11 +00:00
Brendan Allan 24de617b92
Fix webkit reload (#534)
* wrap WKWebView in UnsafePointer

* formatting

* more formatting
2023-01-20 00:25:12 -08:00
maxichrome 49218cb1bb Merge branch 'main' of github.com:spacedriveapp/spacedrive into consistent-formatting-please 2023-01-19 20:41:59 -08:00
Brendan Allan 77fb8a27e8 make alias resolver independent of package/app 2023-01-20 12:21:20 +08:00
maxichrome ec4352a30a cleanup(don't hate me): prettier format everything 2023-01-19 19:32:35 -08:00
Brendan Allan c2ab9466f5
New dialog system (#531)
* use new dialog system

* rename + cleanup

* fix util imports

* remove GenericAlertDialog*

* remove unnecessary setShow
2023-01-19 19:23:22 -08:00
jake 0a31e7f8ce
[ENG-257] File erasure and deletion (#524)
* add helper functions for getting context-menu related filesystem info

* update comments and such

* add a barebones delete job

* add file deletion route

* add (empty but working) delete file dialog

* add super experimental file erase function

* update function doc

* add erase files route

* add erase files job

* tweak file erasing in crypto crate

* bindings

* add erase files dialog

* add missing `?`

* fix erase file form trickery

* remove unused imports

* terrible attempt at recursion for file erase

* IT WORKS

* code cleanup + clippy

* async just dropped (not for erase yet)

* async erase just dropped (+async crypto crate)

* add "nice data" for jobs
2023-01-18 19:55:14 -08:00
Brendan Allan 2059c64e1f
stop doing useRef outside component (#530) 2023-01-18 19:49:17 -08:00
Brendan Allan 1041cb6e3c
use latest swift-rs (#526)
* use latest swift-rs

* update cargo lock
2023-01-17 06:37:32 -08:00
jake 0ef7f64bbb
[ENG-328] Keymanager mounting queue (#514)
* add `get_queue` and `is_queued` to KM and router

* mark keys as being mounted/finished mounting, use a `DashSet` instead of vec

also includes temporary `dbg!()`s for manual valdiation that it works

* remove dbg and fix build (works great)

* mark key manager as unlocking correctly

* cleanup keys api

* add `KeyAlreadyQueued` error

* use react mounting queue

* fully prevent against multiple mount jobs of the same key with the rust queue

* show keymanager as unlocking in the UI

* handle query invalidation for `isKeyManagerUnlocking` with a closure (semi-temporary)

* revert changing text (doesn't work where the keymanager is unlocked from, only the other unlock screen)

* clippy

* add `useRef` for mounting queue within react

* pass `ref.current` to `Key` instead
2023-01-17 06:19:54 -08:00
Jeremy Möglich 1a1ddf3409
Desktop - Add more tooltips (#519) 2023-01-16 17:32:14 -08:00
Brendan Allan 8e479f736f
Eng 332 auto generate sync ids (#523)
* generate sync ids and use model name from ModelActions

* cleanup AddLocationDialog imports

* rustfmt
2023-01-15 07:25:11 -08:00
Brendan Allan ae94ada4f8
Begin form abstraction (#515) 2023-01-12 07:26:59 -08:00
jake 0d554e9d06
[ENG-331] StoredKey overhaul (#513)
* add wip storedkey versioning

* storedkey versioning! (not pretty, but it never will be)

* add version to `StoredKey` and re-gen migrations to handle serde

* use `serde` for interacting with the DB + handle errors
2023-01-11 05:15:08 -08:00
Utku 783d7736f6
Mobile Explorer (#512)
* Fix spacing

* Primitive popup menu

* Sort by & layout menu

* Add sort direction

* Style sort by menu

* new file icons

* thumb wrapper

* update packages & fix folder color

* explorer list & grid views

* Fix grid view spacing

* Grid image sizing

* Explorer store + calculation of grid item size

* Explorer list view

* Explorer store on filerow too
2023-01-11 14:39:19 +03:00
jake 4536710586
Detect SD-encrypted files and display them as such (#511)
* add encrypted file magic bytes/extension

* use archive icon for encrypted files temporarily

* use pascal case for encrypted extensions

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-01-11 00:40:49 -08:00
jake 434bc81deb
[ENG-329] Crypto dialog refactor (#509)
* update backup restoration dialog

* restructure MPC dialog

* refactor `EncryptFileDialog`

* dialog changes

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-01-11 00:38:45 -08:00
jake fbd8b6d199
[ENG-327] Crypto refactor (#510)
* fix secret key showing as `Some()` when it's empty

* rename function

* use `uuid` feature of `rspc`  so clippy works with `--all-features`

* remove dead error

* update clippy rules

* more idiomatic + cleaner hashing, that handles secrets better

* remove dead code + minor refactor of the KM

* cleanup`KeyManager::get_key()`

* cleanup keys router

* variable inlining, idiomatic rust, etc

* clean up encrypt/decrypt jobs

* embed preview media into encrypted files

* even more idiomatic rust

* fix previous file extension code (no amount of idiomatic rust can fix bad patterns)

* hopefully make large serialization slightly more efficient

* remove dead code + old tests

* inline key derivation (not so sure about this one)

* use `then` instead of `if`

* stop using expensive clones

* add `Protected::into_inner()` to prevent `.expose().clone()` patterns

* use `tokio::fs::File` where possible

* add and use `JobError::MissingData`

* use `|| null` for the secret key

* use `block_in_place` for large r/w sync tasks
2023-01-10 12:36:28 -08:00
Brendan Allan c08622827c
Use import aliases (#508)
* implement a bunch of aliases

* build packages with tsc for turbo
2023-01-06 20:21:36 -08:00
Brendan Allan c61c773147
relative imports in @sd/interface (#504) 2023-01-06 19:07:24 -08:00
jake c1b2b1f5ee
[ENG-323] Key manager onboarding fixes (#506)
* add hash with secret functions

* refactor KM to make the secret key both optional, and user-settable

* update library create function and create library dialog

* fix annoying MPC typo

* fix ordering of key manager creation and seeding

* overhaul master password changing UI to support the potentially empty secret key

* patch keymanager unlocking for potentially empty SK

* make create library dialog text more fitting

* remove dead code

* add autogeneration, view/hide, copy to clipboard icons

* cleanup older code

* make onboarding screen look a tad better

* minor UI tweaks

* patch backup restoration UI

* add pw generation to MP change dialog

* make sure passwords are same before submitting lib creation

* UI fixes and allow setting algorithm/hashing algorithm for master password

* make sure KM is re-seeded on SD load and prevent loading duplicate keys into the keystore

* remove old comment

* small organization

* update encryptfiledialog

* remove dead KM code

* cleanup some TS

* move `PasswordMeter` to separate file

* refactor master password change dialog

* cleanup the TS and improve string -> hashingalgorithm conversions

* add `key` values to selectoption

* capitalise `BLAKE3`

* fix sorting for `getHashingAlgorithmString`

* remove onboarding route

* Revert "add `key` values to selectoption"

This reverts commit 10e6456f22.

* add `key` to `SelectOptionKeyList`

* fix using rspc errors directly

* Update packages/interface/src/components/onboarding/Onboarding.tsx

Co-authored-by: Brendan Allan <brendonovich@outlook.com>

* use `navigator.clipboard.writeText`

* move `OnboardingConfig` to crypto crate

* move `zxcvbn` options outside of component

* further cleanup

* fix mobile typecheck

* fix keylist typo

* improve `SelectOptionKeyList` further

Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-01-06 17:03:22 +00:00
jake 746ac76803
[ENG-325] Local paths for the context menu (#507)
* use `path_id` instead of `object_id` for finding local file paths

* fix bug

* make automounting better, UX-wise

* find file_paths correctly

* use `obj_id` for fetching metadata/preview media

* stop using `expect()` during jobs
2023-01-06 16:26:25 +00:00
Brendan Allan 676e512c4a
Beginning of sync stuff (#502) 2023-01-04 23:11:55 -08:00
jake 2673a233c2
[ENG-320] Key manager bugfixes (#501)
* force key updates once a new key is mounted

* set KM decryption type if a single key is mounted

* prevent the key viewer dialog from changing size based on encryption algorithm

* fix spacing for the key mounter slider and remove unfitting text

* bump rspc version (fixes a lot of KM concurrency bugs)

* add personal reference for rspc override

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
2023-01-05 12:52:34 +08:00
Brendan Allan 05a6ea0319
Fix Vercel Deployments (#503) 2023-01-04 20:32:46 -08:00
jake 22bc77a39e
[ENG-319] Balloon hashing (#489)
* add key attribute to `Key` in `ListOfKeys`

* add balloon hashing function with untailored parameters

* add ser/de rules for blake3-balloon (and change argon2id's)

* fix benchmark

* use `to_bytes`, `from_bytes` and `from_reader`

* cleanup code

* add blake3-balloon options to the UI and fix library sync/automount enable bug

* cleanup some serialization code

* fix hashing algorithm deserialization

* clean up header serialization + more idiomatic master key decryption

* clippy

* add generic ser/de error to crypto crate

* fix `Display` and crypto cli

* move crypto cli to cli app

Co-authored-by: Brendan Allan <brendonovich@outlook.com>
2023-01-04 09:57:02 +00:00
Oscar Beaumont 3964d44ce5
Integrate KeyManager with library creation flow (#491)
* integrate keymanager with library creation flow

* final fixes

* fix clippy recommendations

* minor fixes on library create dialog

* reenable `panic!` for no key + fix secret handling code

* prevent user setting secret , instead hardcode it

* clean library manager default key selection

* bring back wrongly removed `keys.onboarding` resolver

* fix types in `CreateLibraryDialog`
2023-01-04 00:13:12 +08:00
jake db5b401238
[ENG-318] Implement a KDF to derive new keys (#487)
* add blake3, `derive_key()` and clean up code

* fix a couple of things from the previous commit

* add context strings for root/file key derivation

* add salt to schema

* update refs of `salt` to `content_salt` within the keyslot

* cleanup code and add kdf salt to the keyslot

* rename salt to content salt in examples

* cleanup header code + remove dead code

* implement key derivation for keyslots

* gen new migrations that contain a salt column

* keymanager refactor (code is very idiomatic now) - needs thorough testing

* further cleanup

* clippy

* add a master password context string

* use key derivation for deriving keys from the root key

* update to use new code and remove `match` from `en/decrypt_bytes()`

* clippy

* use less unwraps in library manager code

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
2022-12-30 20:09:44 +00:00
Ericson "Fogo" Soares bcbcd260d4
ENG 223 Location Awareness (#468)
* Introducing location online/offline checks and location relink

* Some initial drafts for location watchers

* Location metadata relink and add library

* Many improvements at job system
Now using prisma batching at identifier job
Removing blocking I/O from extension subcrate
Implementing lazy generation of thumbnails
New current directory identifier job to be used on light rescans

* Some optimizations on identifier and object validator jobs

* merge jamie's identifier PR

* fully repaired identifier job

* properly hooked up object kind

* inspector fix

* fix video badge

* small improvements to libraries settings

* identifier and inspector improvements

* fix feature flags and hook up context menu location utilities

* BETTER CONTEXT MENU x100

* test-files

* style tweaks

* new icon designs

* manifest

* fix thumbnails on web

* media data

* New Location Watcher and some minor fixes

* disable broken media_data extractor, wip

* wip

* function name fix

* Fixing pnpm prep and some warnings

* Solving a race condition beetween indexer job and FS event handlerSome other minor warnings

* Generating thumbnails on watcher

* Remove event handler on watcher

* Some initial works on modify events and other small fixes

* File update event

* Trying to be more generic with used events and some tests to validate our assumptions

* Turning on location metadata file

* Introducing core unit tests on CI pipeline

* Submiting new unit test assumptions to validate on windows CI

* Fixing unit tests

* Fixing unit tests again

* Fixing unit tests

* Fixing unit tests for macos

* Fixing unit tests for macos again

* New structure for platform dependent event handling
Implementing event handlers for Linux and MacOS

* minor fixes + rustfmt + clippy

* Windows event handling

* Introducing a feature gate to only use location watching on desktop app for now

* Putting more stuff behind feature gates to avoid warnings

* Adding feature to cargo test on CI

* Changing some debug logs to trace logs and removing Jamie specific stuff

* Make location removal from manager less async

* fix build when "location-watcher" feature disabled

* fix types + clippy

* make location manager non-static

* remove uses of `to_string_lossy`

* more invalidate_query calls

* Expose `library_ctx` directly to avoid needless clones

* New materialized_path handling for directories

* Removing cascade delete between file_path and object
- Some other minor stuff

* remove unused `CurrentDirFileIdentifierJob`

Co-authored-by: Jamie Pine <ijamespine@me.com>
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
2022-12-31 00:53:24 +08:00
jake bbca699e33
[ENG-316] Decrypt with Password (#484)
* update generated key on slider click

* add ui for decrypting with password+saving to key manager

* update rust code to support password decryption and saving it to the library

* add decrypt with password UI functionality

* add content salt to key viewer

* disable key manager decryption if no keys are mounted

* clippy
2022-12-21 13:04:52 +08:00
Utku Bakir f7afb9ac2b Add eslint to @sd/client & fix types 2022-12-14 13:10:42 +03:00
Utku Bakir 959783b08a Bump node to lts (v18) 2022-12-14 12:43:02 +03:00
Utku 42f09b0918
Mobile - Settings & Tags (#479)
* Sync tailwind configs

* Switch to new colors part 1

* new colors part 2

* switched to new colors

* settings screens template

* settings progress

* Setting header titles

* Refactor settings icon

* Fix tsconfig relative path issue

* Move mobile eslint config to @sd/config

* Add no-restricted-imports rule to eslint

* rename TextInput to Input & tailwind font sizing

* General Settings screen + Card component

* Library settings screen & delete lib dialog

* autoform hook

* Mini tweaks and new packages

* Exclude android & ios from search

* Add Switch (Input)

* Library General settings screen

* Refactor settings + Switch and Switch Container

* Locations screen & delete and rescan locations

* Rename folder + small tweaks

* Make things Swipeable

* Create Tag Dialog with color picker

* Upgrade to Expo 47

* More tag stuff

* fix pnpm lock

* regen pnpm-lock

* Change CI node version to 16

* Move `isVideo` into shared package

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
2022-12-13 15:18:03 +08:00
jake 78a5754f4e
[ENG-315] Key viewer/general improvements (#483)
* 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
2022-12-13 09:48:14 +08:00
jake 3ce8c74a0d
[ENG-313] Key auto-generation and viewing (#478)
* add generic dialog for keys settings

* revert artifact failed key viewing attempt

* move `Select` key list component

* rename dialog

* remove unused imports and add new select option for *all* keys

* add WIP but broken key viewer dialog

* cleanup code and fix key viewer dialog

* add clipboard icon and copy functionality

* generalise the `AlertDialog` and refactor `BackupRestoreDialog` to use it

* use new alert dialog in place of JS/tauri alerts

* use generic alerts everywhere and bring generic alert props/default state

* make `SelectOptionKeyList` generic for mounted/unmounted keys (with the use of `map` for the latter)

* add clipboard to generic alert dialog + clean up

* fix accent colour button for backup restoration

* remove unneeded props from components

* add slider+automount button

* tweak password gen function

* add password autogeneration

* clippy

* tweak password generation

* use `crypto-random-string` and drop rust password generation

* add default TEMPORARY keymanager pass/secret key to library creation screen

* make key automounting functional

* clean up key viewer

* change dialog name

* remove slider as that wasn't even being used?

* make requested changes and hide key viewer if no keys are in the key manager

* prevent automount and library sync from being enabled simultaneously

* include `memoryOnly` in key

* mark keys as memoryOnly
2022-12-12 17:13:52 +00:00
jake 8ee2d18053
[ENG-309] Envelope encryption for the KM's root key (#482)
* use master key to encrypt the root key (breaking)

* introduce breaking changes to the keymanager (this breaks master password changing, backup restoration, etc)

* change MP -> RK

* minor tweaks + comment out broken features temporarily

* experimental new master password changing

* add a `write_storedkey_to_db` helper function

* general cleanup and fixes

* potentially patch backup restoration

* uncomment+clean up restoration in api

* strip whitespaces from user inputted secret key, and fix MPC bug

* clippy

* add memory only flag to `StoredKey`
2022-12-12 15:04:08 +00:00
jake f1292d6e51
Crypto Hotfixes (#477)
* fix annoying typo that was breaking master password changing under certain conditions

* move `Select` boxes out of `react-hook-form` so they work

* add `DummyKey` and rework the UI a little

* fix bug where user could select a hashing algorithm (it did nothing)

* fix bug where encryption algorithm would be inherited from the key, not the user's choice
2022-12-09 22:05:32 +08:00
jake 5651ac3f69
[ENG-251] Crypto Jobs (#475)
* add base crypto job

* leave hashing to the KM and not keyslots

* add latest header object versions and update examples

* add a very experimental (local file!) encrypt job

* working file encryption with default key

* working file decryption

* non-working encrypt file dialog

* general code cleanup

* comments and correct feature locking

* fix the `Dialog`

Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>

* WIP encrypt dialog

* massive encrypt dialog overhaul

* add generic explorer alert dialog

* better key naming/numbering, alerts for unsupported scenarios

* cleanup + decrypt file dialog

* remove debugging stuff

* remove dead code & fix a bug with key select being empty

* clean up dialog UI massively

* add support for setting output path

* add correct button type to prevent early dialog submits

* add "nice" job data for encrypt/decrypt

* tweak functionality of key setting in encrypt dialog

* include full file metadata if selected, and lay out groundwork for preview media inclusion

* add comment about not restoring metadata/pvm just yet

* general cleanup

Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>
2022-12-07 15:16:13 +00:00
jake 2baf16d982
[ENG-307] Key manager features (#467)
* working key management in settings page

* sync with library button

* fix `rspc` feature and add passphrase generation

* untested key manager rework

* trying to return values from mutations

* update library manager and remove settiong master PW

* update bindings

* set static secret key/master password

* prompt user for master password if correct one hasn't been provided yet

* add `hasMasterPassword` route

* add `clearMasterPassword` route + remove dead code

* tweak `set_master_password()` and add dedicated error

* tweak UI, fix `few hooks than expected`, add unmount+lock button

* remove old comment

* fmt

* clippy

* move static key/password setting so it doesn't fail sometimes

* add dedicated `get_key()` and remove keys from memory

* add `getKey` route

* update bindings

* use `const` instead of `let`

* comment updates

* update schema to remove salt

* add string parse error

* generate passphrase within key manager

* generate new migrations

* feature gate serde support in `crypto` crate

* fmt

* more specific error types

* foramatting

* add locking mechanism to keysettings page (not working?)

* fix react hook issues

Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>

* remove empty onclick

* add keymanager dropdown menu

* working key backup functionality

* add experimental master password changing support

* update bindings

* semi-working change master password dialog

* use gear/lock icons to clean up key manager UI

* make settings button functional

* make buttons uniform and format code

* fix double base64 encode

* add change master password dialog and secret key dialog

* code cleanup

* restore backup dialog

* change UI wording

* make a start on restoring from a backup

* potentially working keystore restore

* don't overwrite verification key if one is set

* working backup restore + fix master password changing

* fix typo in static password/verification key check logic

* change wording to make UI clearer

* disable mount button if key is empty

* handle errors+remove type annotations

* show total imported keys on backup restoration

* add zxcvbn package

* change input border colour based on zxcvbn score

* clippy and formatting

* password strength meter

* remove nbsp

* add button type to stop early form submission

* use `react-hook-form` for backup restoration dialog

* more `react-hook-form` stuff

* attempt to fix password meter

* small cleanup

* Fix password meter

* update colours

Co-authored-by: maxichrome <maxichrome@users.noreply.github.com>
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
2022-12-02 10:18:21 +00:00
Brendan Allan c593fa3344
Utilise tsconfig paths for workspace module resolution (#454)
* use @sd/client for tsconfig extends

* move all svgs to @sd/assets

* only use vite-tsconfig-paths

* remove ui from web

* use relative extends for ui tsconfig

* remove aliases from landing?

* use wacky landing vite config

* try using tsconfig paths and root on landing

* Revert "try using tsconfig paths and root on landing"

This reverts commit 43bd2a0f84.

* remove tsconfig-paths from landing
2022-11-06 20:18:41 -08:00
maxichrome b71a19e75d
Merge pull request #458 from PyRo1121/node-version
Enforce minumum Node version
2022-11-06 02:07:10 -06:00
Brendan Allan 8007523b80 use node 16 2022-11-06 10:14:09 +08:00
erikpodusel 90890bbc1c
fixed traffic lights bar showing all the time (#464)
desconstructed props inside TrafficLights

Co-authored-by: Erik Podušel <podusel@gomerch.company>
2022-11-05 14:15:35 -07:00
Olen Latham dadbfe2833 ignore last commit derp 2022-11-05 18:05:40 +00:00
Olen Latham 862d23e2e3 looking over I think we want our @type/node to be in line with our node version requirements 2022-11-05 17:55:32 +00:00
jake a403224b3b
[ENG-262] Key Manager Integration (#450)
* add keys router

* make progress on keymanager integration

* make name non-negotiable

* hyphenate encryption algorithm names

* Revert "make name non-negotiable"

This reverts commit 9c0f51329e.

* add some more keymanager queries

* add master password and default key routes

* add newly registered key to db + fmt

* clippy, formatting and `updateKeyName` route

* add automount to schema+automount keys where `true`

* update bindings

* working key add/mount

* working keylist

* mounted keys show first

* cleanup code

* add comments, code cleanup, more functions

* unmount all keys button

* comment and keymanager `clear_master_password()`

* add no keys available message

* fix unmount button

* use dashmap for concurrency

* fix missing keylist issue and add invalidate query macro

* set correct RSPC types

* statically set master password (TEMPORARILY)

* add remove key function within the keymanager

* key dropdown menu and impl

* formatting

* allow `option_if_let_else`

* add comment about key stats

* add additional comment

* rpsc error handling for the keys route

* fix rspc errors with an impl

* crypto crate errors to `sd-crypto::Error`

* remove `map_err`

* use custom result type

* cargo fmt

* clippy

* fix builds

* remove `Error::MutexLock`

* fix unnecessary unwrap

* mutex error handling (buggy for some reason)

* clean default key logic

* fix default key clearing

* allow a key to be removed without bugs

* implement requested changes

* use a single `useMemo`

* update schema with defaults

* re-generate migrations

* use rust enums in TS

* remove dead code

* remove mutate expansion

* read key list from keymanager, not prisma

* add "Default" key marker and cleanup TS

* rustfmt

* remove dead code
2022-11-05 04:18:01 -07:00
Oscar Beaumont dc97f087c9
fix prod build not working & thumbnails on web 2022-11-04 17:19:46 +08:00
Utku 76e3d0b9a2
Mobile - File Import (#443)
* 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>
2022-11-01 21:32:56 +08:00
Oscar Beaumont 4e0b595073
Error Bounary Sentry support (#444)
* Sentry support

* remove broken import

Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
Co-authored-by: Jamie Pine <ijamespine@me.com>
2022-10-29 02:06:09 -07:00
Jamie Pine cd74f47641
Update Team Page (#440)
update team page
2022-10-27 00:45:03 -07:00
Jamie Pine 0725459fc0
Polish Icon Usage (#437) 2022-10-25 18:47:09 -07:00
Oscar Beaumont 9e77b56962 fix ENG-226 - App crashing with no libraries 2022-10-25 19:16:00 +10:00
Oscar Beaumont aaa03b2aa1 Fix types 2022-10-25 11:48:00 +10:00
Oscar Beaumont 73eea94572 React Query devtools 2022-10-25 11:41:46 +10:00
Oscar Beaumont 473bc6e515 add useDebouncedForm hook 2022-10-25 11:41:05 +10:00
Oscar Beaumont b3695287dd Fix enter key not submitting dialog 2022-10-25 10:11:07 +10:00
Jamie Pine 130443d689 keybinds 2022-10-24 04:14:07 -07:00
Jamie Pine 8933e2bf1d more styles 2022-10-24 03:04:52 -07:00
Jamie Pine 01c29dadf4 Merge branch 'spacedrive-but-themable' of github.com:spacedriveapp/spacedrive into spacedrive-but-themable 2022-10-24 01:18:05 -07:00
Jamie Pine 2d8590c616 job indicator + styling 2022-10-24 01:17:10 -07:00
Oscar Beaumont 2b81acc30e debug mode + minor fixes 2022-10-24 17:48:52 +10:00
Jamie Pine 3a3ec6251f Merge branch 'main'
Conflicts:
	packages/interface/src/screens/settings/library/LibraryGeneralSettings.tsx
2022-10-23 18:43:27 -07:00
Jamie Pine fcd57c12fc more style tweaks 2022-10-23 18:20:36 -07:00
Jamie Pine 838bae14b0 various style fixes 2022-10-23 18:09:15 -07:00
Jamie Pine 25d0759a70 style tweaks, fix TS CI 2022-10-23 16:17:53 -07:00
itschip ad28ed4190
fix(interface/settings): remove library dep when updating general settings (#432)
* fix(interface/settings): remove library dep when updating general settings

* LibraryGeneralSettings use react-hook-form

useEffects are cringe

* Fix Typescript errors

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
2022-10-23 16:16:49 -07:00
Jamie Pine 6d774c7639 remove spline test 2022-10-23 03:43:10 -07:00
Jamie Pine 6ecdc6a02f finish theming 2022-10-23 03:24:46 -07:00
Jamie Pine 5ba07ac6c2 more theming 2022-10-22 22:46:46 -07:00
Jamie Pine df8564b024 further tweaking 2022-10-22 07:01:59 -07:00
Jamie Pine 53caf144e3 more theming 2022-10-22 04:24:00 -07:00
Jamie Pine 0f6b4206be morpe stuf 2022-10-22 00:02:35 -07:00
Jamie Pine da344f954c styled explorer top bar 2022-10-21 23:21:22 -07:00
Jamie Pine 2f105e9bb6 Merge remote-tracking branch 'refs/remotes/origin/spacedrive-but-themable'
Conflicts:
	packages/interface/src/screens/settings/client/GeneralSettings.tsx
	packages/ui/src/Dropdown.tsx
2022-10-21 21:53:45 -07:00
Jamie Pine a9e263e2f6 refactor switch component + update styles 2022-10-21 21:50:47 -07:00
Brendan Allan d6880c0343 dropdown refactor 2022-10-22 01:35:03 +08:00
Jamie Pine f92303c7d6 refactor progress 2022-10-21 04:45:53 -07:00
Jamie Pine c4226f0e7a Merge branch 'eng-259-identify-objectkind'
Conflicts:
	apps/landing/package.json
	apps/landing/vite.config.ts
	packages/interface/src/AppLayout.tsx
	packages/interface/src/components/explorer/Explorer.tsx
	packages/interface/src/components/explorer/ExplorerTopBar.tsx
	packages/ui/src/ContextMenu.tsx
	pnpm-lock.yaml
2022-10-20 22:49:15 -07:00
Jamie Pine 827287b26d progress 2022-10-20 22:36:25 -07:00
Jamie Pine a36a30e317 merge 2022-10-20 21:55:39 -07:00
Brendan Allan f7f3976024 add CreateLibraryDialog to sidebar dropdown 2022-10-21 11:26:15 +08:00
Brendan Allan e9acbe4b42 disable dropdown storybook 2022-10-21 10:30:19 +08:00
Brendan Allan c41bfae297 refactor dropdown 2022-10-21 10:29:50 +08:00
Brendan Allan 09201d0fa8
use custom tailwind styled function (#426)
* use custom tailwind styled function

* update pnpm lock

* fix landing vite config
2022-10-20 17:34:40 -07:00
Jamie Pine e39f903b07
some esm vite plugin thing (#425) 2022-10-20 16:21:50 -07:00
Brendan Allan d418fd4780 use padding="thin" 2022-10-21 04:14:54 +08:00
Brendan Allan 21e156c517
UI refactor (#418)
button refactor

Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
2022-10-18 21:24:47 -07:00
Oscar Beaumont 4ab1e65059 Merge remote-tracking branch 'origin/main' into fix-reactivity 2022-10-18 22:09:33 +08:00
Oscar Beaumont ddcc20c020 use React.PropsWithChildren 2022-10-18 22:04:19 +08:00
Oscar Beaumont 11c370e4c7 purge unused dependencies 2022-10-18 21:52:00 +08:00