* wip + working backfill
* Finished BackfillWaiting page + initial auth setup
Also, setting up the cloud sync page.
* mobile auth
* Import Cloud Library
Currently, you can import a cloud library, however it seems that the data, such as locations, is not transferring correctly.
* Working Mobile Cloud Sync
Cloud Sync works for Mobile, and the mobile app can sync files from a cloud library, and other clients can access the data from the phone's cloud library.
* Cloud Sync Done
* Formatting
* Fix new library button
* New device type passing to auth
* Improve design of cloud settings and import modal
* ui adjustments and code cleanup
* Update styling if there's only 1 instance
* code cleanup, design tweaks
* empty state & simple indicator animation
* lint
* loading indicator and cleanup
* Fix to Sync Subscription
* Update Cargo.lock
* Async logout for debug
* tweaks
* Update SettingsStack.tsx
* cleanups and cloud desktop design improvements
* more cleanups and ui improvements
* ts
* i18n
* Cloud Sync Docs
* styling
* Delete library-sync.mdx
Moving docs to a separate branch
---------
Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
Greatly improve production build size, now prod builds are 1/3 of the size
- Main spacedrive binary went from ~120M to ~40M
- Add more optimize options for rust prod build
- Improve vite settings for front-end prod build
- Improve lossless compression of PNGs
- Don't include videos in bundles when they are not used
- Don't generate/bundle sourcemap for prod builds
* Basic cypress test
* Add e2e test command
* Add full e2e test for creating and deleting a library
* Add cypress to CI
* Fix cypress CI
- Use arm macos for running cypress
- Setup rust on cypress job
- Increase cypress CI timeout
* Remove unused APPLE_SIGNING_IDENTITY envvar
* Update deps again + Try to fix Cypress CI setup
* Update deps again
* Only test default location if it exists
* Use latest v18 NodeJS in CI
* Increase minimum node version due to updated dependency
- @typescript-eslint/eslint-plugin now requires node >=18.18
* Fix testing failing for optional default locations
* Enable video recording
- Fix screenshot and video artifact uploading
* Fix location test
- Use correct location name, instead of trying to derive it from the internal id
* wip, black theme and updates
* wip
* More tweaks and adjustments
* eslint
* Move some components into their own file
* lint interface onboarding
* remove mobile obj and move into app
* remove navback prop since native stack does it
* all tags screen, visual improvements, and bug fix
* More sync support for file paths + saved searches (#2067)
more sync support for file paths + saved searches
* windows video intro fix
* remove video intro
* back for mob
---------
Co-authored-by: Brendan Allan <brendonovich@outlook.com>
* Fix Linux release
- Pin appimage-builder to latest master
- Add required cmp option to AppImageBuilder.yml
- Disable intro video on Linux (it breaks onboarding for some reason)
* Auto format
* Fix typecheck
* Fix some problems with the AI system
- Fix downloading model using an internal rust string representation as path for the model file
- Fix Linux loading onnx shared lib from a hardcoded path
- Fix App should not crash when the AI system fails to start
- Fix sd-server failing to start due to onnxruntime incorrect linking
- Some extra clippy auto fixes
* Use latest ort
* Fix dangling sd_ai reference
- Use entrypoint.sh to initilize container
* Fix server Dockerfile
- Fix cargo warning
* Workaround intro video breaking onboarding for the web version
* Fix rebase
* video animation for onboarding on mobile and desktop
run assets gen
cleanup
declare mp4 type
* update metro config to transform video files from sd assets
* test ci without native video exclude
* casing?
* remove to add back again due to github
* add videos back
* versions
* no need to transform
---------
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
* `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`
* 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>
* 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>
* 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>
* source search query from search params
* store filters in search params with round trip
* the rest bc apparently i forgot some?
* remove all references to overview
* add /:libraryId redirect
Dependencies overhaul
- Update dependencies for all projects (except Mobile-only deps)
- Remove unused dependencies from all projects (except Mobile-only deps)
- Fix Storybook failing to import sd/ui style
- Add Node 21 as not supported due to sass-loader not working on it yet
- Add work-around for new rook version requiring webpack specific global property
- Fix landing dev not working due to missing default env value on dev
- Fix some incorrect uses of phosphor-icons non server side icons on server components on landing
- Fix some incorrect uses of phosphor-icons server side icon on client components on landing
- Fix landing fail to build on dev due to always required a Github Token to get the latest release
- Fix new Next.js version not suporting Response.redirect due to immutable Headers
- Add Gitlab as social link for teams page
- Update Vítor's team photo
- Add Vítor's twitter link
- Fix some warning due to missing useEffect dependencies
- Remove test-files dir
- Fix QuickPreview unblurred buttons in Linux
- Formatting
* fix(UI): remove the swift code that was causing the top bar to show when the window is maximized
* fix(UI): limit the keybind handler to the `$libraryId` layout
The keybind handler is how we get MacOS menu bar events to the front-end, and to navigate to the settings page correctly we need the current library UUID. We should hide/disable the settings button (and any future buttons that require a library/certain state - e.g. during onboarding) from the menu bar.
* chore(swift): remove unused function
* fix(UI): git didn't detect hook rename
* fix(deps): revert tauri version downgrade
Was probably caused by a bad merge
* fix(UI): remove rounding of window borders on macos
This was allowing the borders to still show on MacOS, despite the app being fully maximized. This doesn't impact non-maximized styling of the app, as we have native window decorations enabled within the Tauri config (well, that's my best guess as to why this fixes the issue).
* fix(UI): conditionally enable/disable menu items on macos
This is dependent on whether a library is present or not. If there's no library, we disable things such as copy/paste/select all.
* fix(UI): try and conditionally show the border radius
I think some cached files aren't being rebuilt correctly as this *should* work fine, it uses the same conditions as the traffic lights do to determine if we're fullscreen or not.
* remove copy/select all/paste as they have uses outside of the explorer
* feat(UI): overhaul native macos menu
* fix: add toast for quick rescan and free up the ctrl+r keybind
* more menu rearrangements
* update menu further
* add comment about rounded edges
* some polish
* add working overview redirect
* fix(UI): correct border edges when non-maximized, and full corners when maximized
* cleanup event handling
* add media view and disable non-working buttons
* fix(UI): raise sidebar on fullscreen to prevent empty corner
* adjust settings padding when maximized on macos
* failed sidebar animation
* rm old stuff
* fix(UI): better transitions (i'm learning!)
* add comment about why new library is disabled during onboarding
* make the settings page static and `pt-6`
* add mock-up library selector in menu
* `maximized` -> `fullScreen`
* fix animation when fullscreening
* clippy
* change animation to 300ms
---------
Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
* offer DD and DMS coordinate displays
* clean up & optimise the conversion functions
* add support for changing between dd/dms (and some other example changeable formats)
* even further cleanup
* auto format
* dedicated clickable component to clean things up
* slim it down by passing platform directly
* make dist/temp settable, use dedicated format store
* use freedom units if locale is `en-US` 🦅
* rename the store and attempt to make it more typesafe
* cleanup mainly
* DD -> "Decimal" in the UI and swap the options as DMS will be the default
* remove useless schema
* only show S decimal on hover for DMS
* show `x` after zoom if it's a valid number