Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ENG-1020] Explorer loading indicator #1318

Merged
merged 2 commits into from
Sep 8, 2023

Conversation

ameer2468
Copy link
Contributor

@ameer2468 ameer2468 commented Sep 8, 2023

This is quite a useful PR

  • We show a loading indicator if loading time is greater than 100ms. Has been tested and fits the job well. We don't want to show a loading indicator if the loading is too fast.

This is useful for when you scroll 10+ pages using the scrollbar.

@ameer2468 ameer2468 requested a review from a team as a code owner September 8, 2023 15:33
@linear
Copy link

linear bot commented Sep 8, 2023

ENG-1020 Show a little loading indicator while explorer is fetching

On a big folder, using scrollbar to skip huge amounts of files can show empty explorer for few seconds which is not ideal. Let's show loading indicator somewhere.

@vercel
Copy link

vercel bot commented Sep 8, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
spacedrive-web ✅ Ready (Inspect) Visit Preview 💬 Add feedback Sep 8, 2023 3:40pm
1 Ignored Deployment
Name Status Preview Comments Updated (UTC)
spacedrive-landing ⬜️ Ignored (Inspect) Visit Preview Sep 8, 2023 3:40pm

@ameer2468 ameer2468 added this pull request to the merge queue Sep 8, 2023
Merged via the queue into main with commit 2111d35 Sep 8, 2023
7 checks passed
@ameer2468 ameer2468 deleted the ENG-1020-explorer-loading-indicator branch September 8, 2023 16:19
jamiepine added a commit that referenced this pull request Oct 10, 2023
* [ENG-925] - `Arc<Library>`/`Arc<NodeContext>` (#1124)

* `Arc<Library>` + `Arc<NodeContext>`

* fix specta version

* remove unneccessary derefs

---------

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

* 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

* Push libraries into vec after loading (#1129)

push libraries into vec after loading

* [ENG-767, ENG-916] Improvements and fixes for `Open`/`Open With` (#1082)

* Normalize PATH and XDG envvars on Linux

* Fix normalize_xdg_environment

* Replace custom Desktop file parsers with Glib

* Fix AppImage env influencing external apps
 - Normalize GStream plugin path

* Fix macos pulling linux deps

* Attempt to fix gnome apps failing to launch
 - Fix incorrect logic in `normalize_pathlist`

* Ensure empty envvars are not set

* Revert AppImage ovewritten GTK specific variables
 - `normalize_pathlist` now prefers entries with less priority when dealing with repeated entries, this is not compatible with the default behavior, but it is a more sane approach IMHO

* Remove 32-bit libs from release CI build host

* Remove 32-bit from github runner 2 attempt
 - Remove deprecated vscode config

* Remove libc6-i386

* [ENG-916] Implement `Open With` logic compatible with macOS < 12

* Add some missing gstreamer deps in Linux

* Replace opener with Glib API

* Fix reveal opening file instead of dir
 - Improve Open With logic in Windows
 - Expose functions to test if app is in a flatpak, snap or appimage

---------

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

* [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

* [ENG-926] Prevent thumbnail destruction and fix the remover (#1127)

* fix(core): thumbnail removal

* chore(core): add todo

* New actor on steroids

* Improving thumbnail remover actor

* Ignoring errors from files that doesn't exist

---------

Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>

* [MOB-31] Separate analytics for mobile (#1132)

* 1 line change pr damn

* more lines

* [ENG-794] Library deletion hangs (#1137)

Solving deadlock on library deletion
Also improving some minor stuff on thumbnails remover actor

* Small fix due to how sharding works (#1138)

* Include `openssl` and `clang-devel` in the Fedora dependencies (#1141)

* openssl is sometimes missing from fresh installs?

* add `clang-devel`

* rearrange order of installs

* fix: unknown feature `proc_macro_span_shrink` (#1143)

fix: https://github.com/rust-lang/rust/issues/113152

* Cleanup core (#1140)

* `NodeContext` -> `SharedContext`

* Cleanup context init

* Goodbye `Arc`'s

* Cleanup context

* rename

* minor

* abstract `Platform` into it's own file

* More `Arc`'s go goodbye

* parallelise `categories.list`

* parallelise `categories.list`

* Unused code in `libraries.rs`

* whoops

* a cheeky rename

* bruh

* :-(

* Networked sync (#1133)

* temp remove discriminator from tunnel

* i'm lost :(

* Working `Tunnel` + move sync stuff back into p2p

* sync module

* `NetworkedSyncManager`

* Move sync stuff off `P2PManager`

* Test `SyncMessage`

* Library edit + delete hooks

* stable `identity` column

* fix

* plz work

* p2p is hard

* sync identities post pairing

* Remove `p384`

* a couple improvements

* comment out ReqRes

---------

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

* Removed Browsers AutoSuggestions from inputs (#1156)

I modified it from UI because every text input was suggesting autoComplete

* [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>

* [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

* :tada: [ENG-847] Add Full Path to inspector :mag_right: :file_folder: :sparkles:

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

* :tada: [ENG-847] Add Full Path to inspector :mag_right: :file_folder: :sparkles:

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>

* 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

* Library "state" (#1160)

* `Library` -> `LoadedLibrary`

* Move `ThumbnailRemoverActor` onto `NodeServices`
It should either be on `Library` or `NodeServices` none of this in-between stuff.

* small > big files

* prune imports

* isolate cringe

* it helps to test the code

* `Vec` -> `HashMap` - faster lookups

* mpscrr

* minor fixes

* fix language

* `!Sync` :(

* lets goooooo

* removed a comma

* fixes

* fix desktop

* lol, no one uses it

* Clippy

* Sync ingesting (#1181)

* sync + ingest refactor

* fix Event enum description

* actually do sync over network

* re-enable heif

* remove comment

* Library "states" continuation (#1180)

* Remove `NodeServices`

* minor

* fix

* cleanup services

* do the shuffle

* `LoadedLibrary` -> `Library`
Yeah this is probs better

* fixes

* bruh

* lol

* get_all_libraries -> get_all

* job::manager::Actor

* `ctx` to `node` for consistency

* _

* cleanup

* do arc higher up

---------

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

* bruh (#1182)

* lock libheif-sys version (#1183)

* Update command to run server (#1188)

* Update command to run server

I encountered an issue where the cargo run -p server command was not functioning properly. It took me nearly an hour to pinpoint the problem, which turned out to be related to a modification in the Cargo.toml file. This change was made by @Brendonovich during their work on issue #1181, which pertained to *syncing ingestion*.

Initially, I believed that re-cloning the repository from GitHub would resolve the issue. However, after attempting this solution exactly 5 times, I realized my assumption was incorrect. Despite the time and effort spent, I was able to successfully identify and rectify the problem.

* Mention pnpm dev:web in CONTRIBUTING.md

---------

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

* [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>

* Readme update (#1192)

* update

* compress img

* add gradient

* Better readme image (#1193)

update img

* fix error when project path contains "src" (#1185) (#1194)

fix error when project path contains src (#1185)

Co-authored-by: Tim Havlicek <t.havlicek@s-v.de>

* [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>

* Update `test-files` submodule within the `core` (#1196)

chore: update `test files` submodule

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

* Isolate sync p2p logic (#1198)

* remove p2p from sd-core-sync and isolate p2p handling

* re-enable tests and stop being silly

* move sync protocol to modules

* don't emit messages

* cleanup

* formatting

* update landing page image (#1199)

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* [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>

* 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

* [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>

* Update server Dockerfile due to crate name change (#1211)

* Update server Dockerfile due to crate name change

* Forgot that the bin name changed too

* Store portal elements as state instead of refs (#1212)

i :heart: dan abramov

* [ENG-835] Duplicating an empty directory doesn't duplicate nested empty directories (#1213)

* Bunch of warnings

* Solving the issue

* sd_core_sync::New

* dumb

---------

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

* [ENG-644] Deleting a single file should be background job (#1214)

Deleting without job for single file

* scripts: filter actions by main branch in workflow runs (#1215)

Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>

* [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>

* [ENG-967] Reset confirmation for db sd reset (#1221)

Reset confirmation for db sd reset

* [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>

* [ENG-937] Work-around running out of space in GitHub CI for cache factory (#1158)

* Attmept to workaround Linux and Windows CI runners out-of-space problems

* Don't mix cmd and powershell

* bruh

* Attempt to fix prisma cache

* No need to cd, as the step is already in the correct cwd

* Leave enough room in root to install the necessary system packages

* Attempt to fix macOS cache being ovewritten

* Fix dumb mistake

* Up linux root free size to 6GB because
 - The cache action compress the data to root and it need more free space

* Remove pull_request trigger from cache_factory

---------

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* [ENG-876] Show folders first in explorer (#1223)

Grouping directories before files

* Fix Server CI running out of disk space (#1222)

* Fix link to expired patched tauri cli artifact breaking macOS builds (#1224)

Fix link to expired patched tauri cli artifact

Co-authored-by: Ericson "Fogo" Soares <ericson.ds999@gmail.com>

* [ENG-983] fix categories overflow (#1225)

fix

* [ENG-974] DB Backup prototype (#1216)

* DB Backup prototype

* Put backups behind feature flag

* Warning for data folder

* nit

* Clippy

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>

* missplaced dialogs (#1227)

* remove

* remove

* [ENG-607] Explorer persist options (#1189)

* 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>

* [ENG-986] - Reset confirm dialog (#1232)

* Update ErrorFallback.tsx

* Update ErrorFallback.tsx

* [ENG-976] Fixed Missing scrollbar in the Explorer (#1228)

* fixed scroller in the `Explorer`

* Update style.scss

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* [ENG-947] Add frame and black bars to inspector thumb (#1234)

* Add frame and black bars to inspector thumb

* add blackBarsSize

* type

* prevent black bars from showing after video

* [ENG-993] fix node icon (#1236)

fix node icon

* [ENG-971] More File Icons (code extensions) (#1217)

* 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>

* [ENG-980] Barebones, essential telemetry (#1237)

* rename everything to "full" telemetry and re-word onboarding

* impl the `ping` event every 4.5 mins, or on path change

* fix debug popover

* update mobile

* remove callback (and cargo lock update?)

* add to mobile, remove eslint ignore, remove console log

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* [ENG-556] New toast component (#1235)

* toast

* remove useToasts

* toast improvements

* Fix PDF icon and clean some svgs  (#1239)

* clean icons

* few more

* Re-run generate script to remove references to non-existing asset files

---------

Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>

* [ENG-862, ENG-921] Ephemeral locations (#1092)

* 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>

* show "see more" if locations > 5, not if locations >= 5 (#1241)

* enter = close tag deletion modal

* "see more" if locations > 5, not locations >= 5

* forgot about old commit...

* Fix PCR formatting (#1243)

use newer commit of pcr

* Formatting (Prettier + Rustfmt 1.72) (#1246)

Formatting

* [ENG-992] Add `search.pathsCount` route (#1244)

search.pathsCount route

Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>

* Updater channels (#991)

* types

* channel-aware update server

* fix build

* man idk

* use main repo + add redirect for old updater

* tabs

* remove octokit

* [ENG-1001] Config Kind (#1248)

* config

* cleanup

* cleanup

* clsx

* [ENG-1002] update executable icon (#1249)

update executable icon

Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>

* [MOB-2] Job Manager (#1114)

* add job manager modal and button

* cleanup directories and add card to debug screen

* expo sdk 49

* update pods

* updated native android files

* updated native ios files

* pods being cringe

* update hermes

* podfile

* big update packages

* fix and upgrade animations to reanimated 3

* nice types moti

* clean imports

* upgrade react-hook-form (fix type)

* move stuff to sd/client and some organization

* camel case

* i liek switch

* Merge iconImg & circleIcon props

* wip

* copy changes to mobile

* move job context and job progress to client and also use it on mobile

* pnpm-lock

* (wip) - make job swipeable + styling

* job progress bar and more style tweaks

* no spring animation on progress bar pls

* new loading animation

* padding and pnpm lock

* indeterminate progress bar

* cleanup & update packages etc

* leave some todos for future

* fix types

* monorepo types :)

---------

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>

* Always enable tauri update + Misc Clippy warns fix (#1250)

Always enable tauri update
 - Fix some misc clippy warnings

* [ENG-1005] fix search icon (#1253)

fix search icon

* [ENG-1003] fix search bar position (#1252)

fix search bar position

* [ENG-1004] Add offset pagination capability to search queries (#1251)

Add offset pagination capability to search queries

* Revert "[ENG-1004] Add offset pagination capability to search queries… (#1254)

Revert "[ENG-1004] Add offset pagination capability to search queries (#1251)"

This reverts commit a5a25b1439762b0f810a99364f7adb3af8149075.

* [ENG-1004] Add offset pagination to search queries (#1255)

fix undefined cursors

* [ENG-994] Minor P2P fixes (#1238)

* mdns advertisement on detection

* fix bug in P2P discovery

* Add `P2PEvent::ExpirePeer`

* React properly

* Consistent tracing versions

* better logger config

* Reduce excessive logging from P2P

* Fix panic log hook

* Remove `dbg`

* Fix bug in thumbnailer remover

* wip: Connected peers in UI

* `Sync` is large pain

* init services after library load

* improve error handling of logger

* Sync protocol shutdown

* Add "updater" feature

* fix commands bindings

* nlm state debug query

* nlm debug status

* Make TS happy

* Add `RemoteIdentity` to libraries debug info

* Improve debug data presentation

* Among us level sus

* minor fix panic hook

* Fix EOF issue

* fix instance not being added on pairing

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: Ericson "Fogo" Soares <ericson.ds999@gmail.com>

* [ENG-1009] Fetch item count to increase scrollbar size in explorer (#1258)

* search.objectsCount

* provide count to useExplorer and react-table

* use row count if custom count not provided

* remove placeholder items from list view

* [ENG-988] fix layout shift (#1259)

fix layout shift

* [ENG-1011] fix explorer inspector scroll (#1260)

fix explorer inspector scroll

* [ENG-1013] prevent explorer parent context menu on DismissibleNotice (#1261)

prevent explorer parent context menu

* [ENG-1014] multi-select double click on list view (#1262)

multi-select double click on list view

* [ENG-1016] Job name overflow (#1263)

* Update JobContainer.tsx

* Update JobContainer.tsx

* Update JobContainer.tsx

* [ENG-1015] fix view fetching (#1264)

* fix fetching

* reset scroll position

* move useEffect

* Extending `QuickPreview` functionality with additional filetype support (#1231)

* added some files `standard` mime type

* Used `TEXTViewer` Component to show Code Preview

* Update Thumb.tsx

* added `prismjs`

* removed unnecessary comment

* `CODEViewer` Component for Syntax Highlighting

* formatting

* using **Atom** Theme for `Prism`

* merge text/code viewers & bg-app-focus for prism

currently calling onError and onLoad without an Event argument
that should change but i'm not really sure what to do there

* removed unused imports

* Update index.ts

* `TEXTViewer` to `TextViewer_`

* `TextViewer_` to `TextViewer`

* Don't highlight normal TextFiles

* clean code

* `TEXTViewer` to `TextViewer`

* using tailwind classes more

* doing things correctly.

* installed `prismjs` in interface

* using own scroller

* Update Thumb.tsx

* Add an AbortController to the fetch request
 - Fix onError and onLoad calls
 - Format code

* Fix onError being called when request was aborted due to re-render
 - Fix Compoenent re-rendering loop due to circular reference in useEffect
 - Remove unused imports

* Improve text file serving and code syntax highlight
 - Implement way to identify text files in file-ext crate
 - Do not depend only on the file extension to identify text files in custom_uri
 - Import more prismjs language rules files
 - Add line numbers to TextViewer when rendering code

* Clippy and prettier

* Fix reading zero byte data to Vec
 - Improve empty file handling

* Expand code highlight to more file types
 - Fix 10MB when it should be 10KB
 - Add supported for more code and config files extensions to sd-file-ext
 - Add comlink and vite-plugin-comlink for easy js worker integration
 - Move Prismjs logic to a Worker, because larger files (1000+ lines) where causing the UI to hang
 - Replace line-number prismjs plugin with our own implementation

* Fix uppercase extension name

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: pr <pineapplerind.info@gmail.com>
Co-authored-by: Vítor Vasconcellos <vasconcellos.dev@gmail.com>

* [ENG-1007] Per-page onboarding forms (#1256)

* useMultiZodForm

* fix imports

* handle obStore.data undefined

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* Allow more than one character to be typed at a time in new library page (#1267)

bruh

* Remove react devtools dependency (#1266)

remove react devtools dependency

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>

* [ENG-288, ENG-601] Media data (image) extraction, thumbnail orientation fix (#1099)

* basic layout

* lock

* add codec to image

* very messy wip

* rm that

* lock and toml

* working perfect exif extraction

* formatting

* migration and formatting

* mostly working

* fix

* set date created properly

* fix tsc

* working media data creation

* fix bad main merge? sorry brendan

* schema, migrations, bindings

* working exif data extraction

* why won't it work

* update migrations

* fix bad merge

* final cleanup

* cleanup migrations

* remove test (that was purely used for testing my code)

* working media data pulling, correct thumbnail orientation

* slightly optimise thumbnail rotation

* rename location to prevent specta clashes

* further improvements (location parsing is still broken)

* fix coordinate parsing i think

* rspc add some todos regarding final cleanup

* further thoughts

* major upgrades

* Some improved handling of errors and async calls

* accordion component

* heavily wip flash refactor

* fix builds all because of a (terrible) merge/move

* annoying missing newline

* i really hate exif

* remove dead code

* further flash progress :D

* docs(media-data): clarification

* minor cleanup

* cleanup and some async removal

* fix location parsing

* remove async (will do proper impl for async eventually) and major cleanup

* big W

* clippy and `FlashMode::Unknown` instead of `Invalid`

* add `NIKON` gps ref support

* comments about gps refs

* commit the submodule -_-

* major cleanup & composite image support

* remove old test image

* major cleanup and easier to use API

* remove old consts

* move `ExifReader` to dedicated module

* Media Data Extractor job and shallow job

* Extracting media data on watcher

* report no exif data on file gracefully

* cleanup errors and doctests

* Merging thumbnailer and media data extractor

* Job name and some strings in UI

* remove reliance on `sd-prisma` within the media data crate

* rename query to be more specific

* custom serializer for `MediaTime`

* tweak to format utc -> naive correctly

* generate migrations

* comment out duration in mobile

* delete test-assets folder

* all optional fields

* fix migrations again

* make requested name changes

* make further requested changes

* remove erroneous files from another wip branch

* updates procedures

* use strings where appropriate

* regen pnpm-lock

* add base layouts for video and audio media data

* use appropriate data types in schema and add audio media data framework

* make requested changes

* general cleanup and renaming of enum

* cleanup media data api

* rename media metadata type

* finishing touches

---------

Co-authored-by: Ericson Soares <ericson.ds999@gmail.com>
Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>
Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>
Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>

* Improve Sync + P2P Integration (#1265)

* Big bruh moment

* whoops

* Less stackoverflowy debug

* stuff

* Fix flawed P2P mDNS instance advertisements

* do sync when connecting with peer

* Sync after pairing

* resync_part2 all the time

* Invalidate all the things

* Invalidate whole React Query on sync event

* emit_messages_flag

* emit_messages_flag

* Backend feature flags + "emitSyncEvents" feature

* Patch `confirm` type cause Tauri cringe

* clippy

* idk but plz work

* bruh

* Fix ComLink bug

* remove log

---------

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

* Fix media processor job text (#1269)

fix

* [ENG-1027] Fix build on Windows (#1271)

* Fix Vite relativeAliasResolver on Windows
 - Add Strawberry Perl installation to setup-system.ps1 (stop rust-analyzer from crashing on Windows)
 - Remove unused imports from desktop windows crate
 - Add todo for missing sync test match cases

* Use path.join instead of doing string concatenation with path.sep by hand

* Disable updater + add feature gate (#1268)

* disable updater + feature gate

* remove updater enabling from custom tauri cli

* formatting

* [ENG-1029] Fix `pnpm assets gen` not working with Prettier 3.0 (#1272)

Fix assets generation breaking due to prettier update to 3.0
 - Make assets generation async
 - Update prettier and babel deps

* [ENG-401] Spacedrop betterer (#1273)

* Spacedrop progress on `useP2PEvents`

* Spacedrop Tauri file picker for saving

* Prompt for save location when closing dialog

* quick maths

* Spacedrop progress

* Spacedrop cancellation

* Move accept/cancel dialog to toast

* Toast when rejecting transfer

* yeet

* `useEffect` more like `useBug`

* [ENG-1017] Job name tooltip center (#1274)

Update JobContainer.tsx

* [ENG-991] copy location path indicator (#1276)

copy location path indicator

* [ENG-775] Jobs clearing improvement (#1278)

Update index.tsx

* Fixes release action (#1277)

* fix action

* updater artificats

* [ENG-953] Zero-byte files occasionally receive a random thumbnail (#1280)

* Better handling empty files

* windows bruh

* Stop App Freezing (#1257)

* Drop Tauri custom URI handler
Me no likely but it has to be done.

* fix app startup with location

* fix "Add Location" button on web

* Serve correct content range

* Backport changes from 08ba4f91

* none of my homies like panics

* minor fixes

* fmt with new Rust version

* [ENG-809] Enter key submits dialog (#1279)

* enter key submit dialog

* code test

* input focus fix + dialog closes only if form is valid

* Update CreateDialog.tsx

* [ENG-904] Thumbnail for `svg` (#1220)

* Initial implementation for svg rendering

* Remove unused errors
 - Round up size before allocating Pixmap
 - Re-order some operations

* Finish integrating with Thumbnailer
 - Fix svg thumbnail size
 - Fix incorrect color space while converting tiny_skia::Pixmap to image

* Fix Clippy warns

* Feedback + sd-heif async

* Update implementation to match recent changes to the Thumbnailer
 - Change sd-heif and sd-svg to receive the file data, instead of opening the file internally
 - Update changes to make Thumbnailer and sd-heif more async

* Minor import improvement

* Add missing cfg to gate use of sd_heif only to plataforms that have it enabled

* Fix dialog entry (#1284)

remove if valid `if` statement

* [ENG-1038] toast improvements (#1285)

* toast improvements

* improved toast message

* fix types

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* [ENG-1064] replace alert dialogs with toasts (#1290)

* replace alert dialogs with toasts

* revert job error to alertDialog

* [ENG-1063] Actually regenerate thumbnails on `Regen Thumbnails` button (#1288)

Done

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>

* Remove auth (#1286)

remove auth

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>

* [ENG-1028] Media data for ephemeral locations (#1287)

Introducing new getEphemeralMediaData
Fixing some minor stuff
Running pnpm format

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>

* Fix job image (#1291)

fix job image

* [ENG-1070] Dialog form button submit disabled if form is not valid (#1292)

* Feedback dialog cleanup, disable submit button of dialog if form not valid

* ts

* Update FeedbackDialog.tsx

* [ENG-1072] Connect sentry with sourcemaps (#1293)

add sourcemaps

* [ENG-999] Order aware pagination (#1283)

* correct types

* remove optional override

* handle group_directories properly

* throw errors if is_dir is null

* disable size ordering

* usePathsInfiniteQuery

* implement for objects too

* cleanup

* [ENG-1073] Fix Vite running out of memory in release builds (#1294)

* increase node max ram usage

* add NODE_OPTIONS to release workflow

* add sentry token to release workflow

---------

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>

* [ENG-1044] Focus buttons styling + storybook (#1295)

* focus buttons styling improved + storybook

* Update Button.stories.tsx

---------

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>

* [ENG-198] Cleaning up after removing a location (#1296)

Done

* [ENG-560] P2P Credits (#1297)

add a README with appropriate p2p credits

* [ENG-1039] Apply hard `clippy` lints to the entire `ffmpeg` crate (#1281)

* apply clippy lints to the entire ffmpeg crate in hopes of making it safer

* wording

* revert the prisma changes

* fix typo

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>

* fix another typo

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>

* remove so many `#[must_use]`s

* fix bad merge and hopefully clippy

* clippy please work i beg

* make HEIF_EXTENSIONS always available

---------

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>

* [ENG-1078] Fix pagination (#1299)

* fix 'load more' breaking

* paginate all paginated queries by model id

* arrays start at 0 stupid

* [ENG-1006] overview inspector (#1275)

overview inspector

Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>

* [ENG-1036] Fix library rename (#1300)

* Fix Library Rename + `RwLock` on `LibraryConfig`

* Input width fix

* cleanup

---------

Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>

* [ENG-566] Stream files through P2P (#1282)

* Add range to `SpaceblockRequest`

* Determine if file should be served from P2P

* Feature flag serveFromP2P + fix `ServeFrom` logic

* wip: yeet files over P2P

* Just work, argh

* restore backend feature flags after restart

* cleanup

* [ENG-1055] Fix previewing large files (#1304)

* Proper streaming from disk

* Handle `If-Range`

* fix bad merge

---------

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

* [ENG-1080] fix explorer fetching (#1302)

fix fetching

* [ENG-934] EXIF UI (#1305)

* Media data UI

* Make `MediaTime` adjacently tagged

* cleanup ts

* don't destructure accordion props

* Large bruh

* round location coords

---------

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>
Co-authored-by: Brendan Allan <brendonovich@outlook.com>

* [ENG-941] Jobs running in another library do not appear in the job manager (#1306)

* Fetching job reports from all libraries
Some clippy warnings
pnpm format

* Reverting expects to unwraps

* Fix mobile by using memo (#1308)

* fix

* fix double library display

* [ENG-1079] Toggle focus styling update (#1309)

updated focus styling

* [ENG-621][ENG-1074] Trait-based image conversion overhaul (#1307)

* sd-images crate which will support raw/dng, bmp, etc

* more work on the image formatter

* re-work `sd-images`, add svg support, r/g/b and r/g/b/a HEIF image support (will all be async again soon)

* remove `ImageFormatter`, add note about r/g/b/(a) heif impl

* implement the image formatter

* rename the conversion trait and minor cleanups

* isolate heif feature and major cleanup

* very untested raw support

* change fn name to `from_path` (a lot more idiomatic)

* clean up orientation fixing

* heif is no longer forbidden (linux has good heif)

also all extensions are correctly matched in lowercase

* fix builds, ext matching, feature gating

* attempt to fix svg handling?

* raw attempt, quite a few errors

* add comment

* new (untested) attempt

* remove `raw` stuff for now

* replace `sd-svg` with a `ToImage` `SvgHandler` impl

* add some simple math to appropriately scale thumbnails (and bmp/ico support)

* add comments regarding how the math works for image thumbs

* rename the trait to `ImageHandler`

* fix: remove the git submodule for test-files (#1311)

remove the git submodule for test-files

* [ENG-1082] Accordion variants (#1310)

* updated with variants

* className

* naming

* requested updates

* Update Accordion.tsx

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* Improve Location Formatting in UI (#1315)

make it betterer

* Fix Sentry sourcemaps (#1316)

update @sentry/cli

* [ENG-972] quick view improvements (#1233)

* quick preview improvements

* fix ts

* improvements

* fix merge

* non-indexed support

* Update index.tsx

* Update pnpm-lock.yaml

* update quick preview

* sidebar icon weight

* fix thumb

* ts

* fix focus

* remove usePortal

* quick preview store

* Update index.tsx

* Update index.tsx

* cleanup

* add tooltip to name

* hide nav buttons and match explorer nav buttons

---------

Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>

* [ENG-1023] Change location path from settings page (#1301)

* update location path in db

* remove + add location watcher if path is changed

---------

Co-authored-by: Ericson "Fogo" Soares <ericson.ds999@gmail.com>

* [ENG-1084] Correctly format `Orientation` EXIF data in the UI (#1313)

* impl `Display` and a custom serde serializer

* remove the + as rust already shortens coords to 8SF

* remove manual serde impl and string conversion

* add `formatOrientation` to the `MediaData` part of the inspector

* make requested changes

---------

Co-authored-by: Jamie Pine <32987599+jamiepine@users.noreply.github.com>

* [ENG-1020] Explorer loading indicator (#1318)

* loading indicator

* cleanup tw

* Update recommended VS Code extensions (#1323)

* update recommended extensions

* Update extensions.json

* [ENG-1068] Plus codes / Open Location Code support (#1324)

* bring in rand deps

* SUPER crude pluscode attempt

* working pluscodes!

* some cleanup

* `encodeURIComponent` for URL escaping

---------

Co-authored-by: Oscar Beaumont <oscar@otbeaumont.me>

* Fix builds and make `String` -> `PlusCode` validation more generic (Google support) (#1326)

fix builds and make string -> pc matching more generic, so it works with google's format too

* Twitter -> X (#1321)

* [ENG-1067] Update phosphor to new package & update sort imports (#1330)

* ianvs > trivago

* @phosphor-icons/react > phosphor-react

* [ENG-1021] Explorer Scrollbar color (#1331)

* Now visible :D

* Update colors.scss

* [ENG-970] Job dropdown with actions (#1329)

* Job dropdown with actions

* Update JobGroup.tsx

* fix hover colors for theme support

* Update Dropdown.tsx

* Update JobGroup.tsx

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* fix(landing) - fix opengraph image (#1332)

fix opengraph image

* [ENG-874] Windows needs reindex after renaming a file (#1303)

* Done

* Rust FMT

* Better debounce create and update events

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* [ENG-736] Watcher should check if a file has open write handles before processing it (#1319)

* Handling temporary files events on MacOS

* Debouncing create and update events

* Take files being updated for a long period
of time into account

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* Fix dropdown styling (#1337)

* Update JobGroup.tsx

* Update JobGroup.tsx

* [ENG-1085] Text view rounded scrollbar (#1338)

Update style.scss

* Update Rust dependencies (#1314)

* Update most of Rust dependencies

* downgrade notify

* a

* fix Linux?

* Android is painful

* update build.gradle

* The lord Clippy has spoken

* Bruh

---------

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>
Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>
Co-authored-by: Ericson "Fogo" Soares <ericson.ds999@gmail.com>

* [ENG-814] Explorer shortcuts: Escape de-selects all selected items (#1339)

* Escape de-selects all selected items

* Cleanup + add to list view

* put return next line

* Update GridList.tsx

* Update ListView.tsx

* [ENG-1092] Fix key item selection after layout switch (#1342)

fix active item after layout switch

* [ENG-1093] Quick preview TextViewer selectable text (#1340)

text viewer select text

* [ENG-1103] Fix list view freeze (#1341)

fix list view freeze

* [ENG-1090] Handle explorer selection while quick preview is open (#1344)

* handle selection

* update timeout

* one more

* prevent explorer reset when open

* remove timeout

---------

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>

* Fix Android bridge + drop IOS and Android projects (#1336)

* Goodbye Android Project, you won't be missed

* fix ignore ignoring Kotlin code

* Backport IOS `Podfile` + move Rust crates into `modules/sd-core`

* Workaround for issue in OpenSSL build script

* Fix IOS

* Migrate IOS bridge into Expo Native Module

* Optimistic update for library creation

* useFrameworks static

* add key to infoplist

* more keys

* fix `Podfile`

* Remove IOS project from repo

* fix mobile ci

* woops wrong place

* clean package.json

* Make Android's Rust code build again

* Add back in `if_watch` patch for IOS

---------

Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>

* [ENG-1109] Fix explorer double click (#1346)

fix double click

* [ENG-1107] `file_path` unlinked from `object` (#1345)

Done

* [ENG-1076] Opening a sub dir closes the app (#1349)

Fix

* [ENG-1022] Keep track of hidden files (#1328)

* allow indexing + viewing hidden files

* generate db migration

* add 'Show hidden files' control to OptionsPanel

* clippy

* handle file renames

* use macos file attributes along with unix heuristic

* handle hidden ephemeral paths

* use un-deprecated st_flags getter

* tweak for uniformity

* formatting?

---------

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>

* Reorder navbar (#1347)

Reorder mobile navbar links to match web navbar.

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* [ENG-1106] Rename text box improvements (#1348)

rename text box improvements

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* [ENG-1113] Toggleable list columns (#1352)

* Toggleable list columns

* type

* [ENG-1060] Fix the `PlatformProvider` bug (#1353)

* Life is a lie and nothing makes sense

* consistent version

* Web uses the relative alias resolver it would seem

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* [ENG-1089] Tooltips visual upgrade and shortcuts (#1351)

* tooltip visual upgrade and shortcuts

This gives tooltips an upgrade, visually + supporting keybinds

* B to V

* Cannot make tooltip do conversion due to dependency cycle

* semantics

* Update style.scss

* useKeyBind to consider upper and lowercase

* Change from strings to array + small visual tweaks

* oops

* Increase ram for server release (#1354)

* js has 4gib of ram now

* define env var properly

---------

Co-authored-by: brxken128 <77554505+brxken128@users.noreply.github.com>

* Add logo to landing page (#1356)

static logo

* [ENG-1119] - Open folder shortcut + select item with arrow down (#1355)

* Open folder shortcut + select item with arrow down

* tweaks

* symbol tweaks

* Update index.tsx

* [ENG-815] Shortcuts page (#1357)

shortcuts page

* [ENG-1097] DMS coordinate display support (#1335)

* 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

* [ENG-1126] Key matcher hook (#1358)

* key matcher hook

* Update TopBarOptions.tsx

* [ENG-1125] Mouse navigation support (#1359)

Mouse navigation support

* Fix typo server.yml (#1360)

Remove `ghcr.io` from the server's docker image name, as the registry is already being appended by `buidah`

* [ENG-1116] Distinct job manager for library (#1363)

Done

* [ENG-812] Folder size calculation (#1362)

* Fix warnings

* Working when doing a full location indexing

* Directory size calculation for sub_path indexing
Also for shallow indexer
Now shallow indexer dispatches sub_path scans when it finds a new folder

* Directory size calculations in the watcher

* Pass directory sizes to sync system

* Adding location: Error message bypass submit button being disabled (#1367)

Form location error message submit fix

* [ENG-1135] Locations: Total size query and return to Frontend (#1366)

* Done

* Fix size text to take its space

---------

Co-authored-by: ameer2468 <33054370+ameer2468@users.noreply.github.com>

* [ENG-1132] Disable pagination for ordering by file path size (#1365)

* disable pagination for order by size

* disable 'take' when paginating on size

* miss-typed-check (#1369)

miss-type fix

* Remove @variants css (#1370)

remove @variants

* [ENG-1133] Tooltip overflow fix - take up y-axis space (#1374)

Tooltip overflow fix, take up y-axis space

* [ENG-1139] Walker wrongly marking files for update (#1373)

* Small warnings

* Solved another bug and more logs

* Rust fmt

* Even more logs

* [ENG-1114]  List view improvements (#1371)

* almost there

* so close

* fix drag scroll

* rerender

* Update index.tsx

* fix y scroll

* scroll

* header border

* remove react-scroll-sync

* [ENG-1112] Explorer Path Component (#1375)

* Explorer Path component

Update ExplorerPath.tsx

Update ExplorerPath.tsx

* Tweaks & bug fix

* Selected item no hover

* Update index.tsx

* fix keys

* ts

* Feature/target gate HEIF on Linux (#1312)

* feature/target gate the heif stuff

* more gating

* make clippy happy

* `--cfg linux_heif` override and dep bump

* disable `libheif` on windows temporarily too

* [ENG-1130] fix toast overflow (#1376)

fix toast overflow

* [ENG-1140] Bind an entire location to a single device number (#1386)

Removing device from file_path

* [ENG-1148] Fix inputs (#1389)

Fix inputs

* Fix mobile core not building on non-darwin machines (#1388)

* find `llvm-ranlib` for linux and windows systems

* simplify the exec block

* fix path not recognizing `darwin`

* [ENG-1142] Path bar shortcut (#1377)

* Path bar shortcut

* Add option to popover and tweak UI

* increase size of folder icon + frame thumbs

* view adjustments

* truncate

---------

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

* [ENG-1156] Grid list remove left/right key selection limit (#1391)

remove block

* [ENG-1145] Keep more info open if it is (#1392)

* Keep more info open if it is

* toggle off when closing inspector

* Update TopBarOptions.tsx

* tweak code

* Update Accordion.tsx

---------

Co-authored-by: jake <77554505+brxken128@users.noreply.github.com>

* [ENG-1157] fix useKeybind (#1393)

* remove

* fix

* use new api (#1396)

* use new api

* remove waitlist from landing

* fix url

* [ENG-265] Improve setup scripts (#1368)

* Setup script revamp

* Move toml to dev dep + CI runs the postinstall in debug mode

* Fix windows CI

* chmod +x scripts/setup.sh

* Fix eslint and ts CI

* Remove binstall + Fix trying to read input in CI

* Doesn't need to check pnpm and rust in CI

* Run postinstall script for Clippy CI

* Attempt to fix windows CI not running postinstall
 - Ignore cache when running postinstall on CI

* commited generated config.toml by mistake

* Pass GITHUB_TOKEN to `pnpm i`

* Update archive-wasm + Increase minimum node version to 18.17

* CI: Move rust setup after post-install script

* Revert: CI: Move rust setup after post-install script

* Fix CI, generate dummy cargo config.toml to fix prisma generation

* Fix windows CI

* CI: Fix wrong command

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* [ENG-830] Open with text cut (#1397)

* Update ContextMenu.tsx

* Update ContextMenu.tsx

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* Desktop + Web auth flow (#1378)

* initial login session route

* auth works!

* auth on web is dummy easy

* load api url from envs

* SpacedriveAccount + oauth

* use verification url

* heif

* better env handling

* error handling

* handle config write error

* add logout config write error

* [ENG-1081] Ignore the case of extensions when matching (#1394)

Done

* [ENG-1131] File path hidden filter (#1398)

hidden filter

* settings pages: consistent padding on every side (#1399)

* settings pages: consistent padding on every side

* reduce padding to 12

* Improve QuickPreview (#1350)

* Handle large text files

* wip

* nit

* Fix syntax highlighting

* Requiring an API call for my dev builds, no shot

* backend for line counting + wip frontend

* 600 lines is too much for this file, ngl

* wip: `LimitedByLinesBody` & some more restructuring

* Virtualised list for QuickPreview

* yeet bad ideas

* general cleanup + hack to fix broken toml

* fix

---------

Co-authored-by: Utku <74243531+utkubakir@users.noreply.github.com>

* [ENG-1117] Remove Tauri drag regions on non-macOS platforms (#1402)

That'll do it

* [ENG-1118] Force close context menu when no items are selected (#1407)

* close context menu if no items are selected

* fix

* Update index.tsx

* ups

* one more

* [ENG-1149]  Tags unassignment UI update and fixes (#1406)

* Multiple minor fixes and tweaks

* close context menu if no items are selected

* fix

* type

* Update keybindings.tsx

* useMatch and rspc to invalidate

* fix selectable

---------

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

* [ENG-1164] Fix Explorer Path Render (#1408)

fix render

* [ENG-1158] List view range initialization (#1410)

* range initialization

* auto it is

* [ENG-1165] Add a security policy and notices to the appropriate READMEs (#1409)

* add security policy

* add a link to it in the main and crypto readmes

* Fix nodejs supported version in engine field (#1413)

* Use actual oauth clients + ship ids and secrets (#1415)

* use actual oauth clients + ship ids and secrets

* re-enable features

* use prod as default api url

* [ENG-1147] Fix overview stats (#1416)

* Fix it

* Fix slow accounts panel

* Add pnpm tauri root command (#1411)

add pnpm tauri root command

* [ENG-1170] - Prevent sidebar scrolling with keyboard (#1417)

* Prevent sidebar scrolling with keyboard

* remove ref import

* [ENG-1171] - Clicking on a tag within inspector navigates to that tag route (#1418)

* Clicking on a tag within inspector navigates to that tag route

* Update index.tsx

* [ENG-1172] - Update navigation keys (#1419)

Update navigation keys

* Enabling frontend dev tools (#1420)

* Change docs and CI scripts to use `pnpm tauri` command (#1421)

* Change docs and CI scripts to use `pnpm tauri` command
 - Fix documentation and some scripts to use the new tauri subcommand following https://github.com/spacedriveapp/spacedrive/pull/1411 changes
 - Format/Lint some files

* Document new envvar to lauch devtools alongside the desktop app

* [ENG-871] - Rename shortcut update (#1422)

* f2 to rename

* Update RenameTextBox.tsx

* Keybindings some refactoring to accommodate our needs

* Update keybindings.tsx

* correct direction for nav

* Update keybindings.tsx

* ts documentation + key -> keys

* Update keybindings.tsx

* Remove client secret from apps (#1423)

* remove client secret from apps

* dumb

* [ENG-1075] Light mode for QuickPreview (#1403)

* fix line number background thing

* Prism dark mode + move to one dark/one light

* subtle

---------

Co-authored-by: Utku Bakir <74243531+utkubakir@users.noreply.github.com>

* [ENG-1141] Show running jobs first (#1400)

* Fix Rust panics when opening HEIC in `QuickPreview`

* Sort it

* improve sorting

* [ENG-872, ENG-1177] - Windows enter key opens & Open context menu correction (#1424)

* Enter key opens on windows, cmd and o on mac. Open in context menu now opens in SD and not Finder.

* Remove access time func as doubleClick already does it

* [ENG-1054] libheif for Linux (plus fixes) + Webp update (#1405)

* Move postinstall script to a preprep script
 - Fix libheif crate failing to build with our libheif
 - Rework CI due to postinstall to preprep changes

* Linux heif build script + Update webp

* Fix ctrl+c/ctrl+v bug

* Improve libheif linux script
 - Add support for linux aarch64
 - Add CI workflow to build libheif for linux
 - Some other misc fixes

* Fix libheif CI requires sudo

* Fix wrong path for libheif build.rs override in Windows

* Fix wrong path manipulations in libheif build script

* 🤦

* Use ubuntu-latest in libheif action
 - Specify glib version in target triple to support old distros
 - Fix libheif artifact publishing

* Fix artifact upload path again

* Add musl support for libheif
 - Remove unused files from libheif artifact
 - Add setup logic for libheif in postinstall script

* Build libheif for linux as a shared lib

* Fix meson not building the correct arch
 - Add logic to get git branch from githubs CI env vars

* libheif finnaly works on linux
 - Make spacedrive binary rpath point to where appimage and deb expects our libs to be
 - Add some logic to tauri.js to convince tauri to bundle our shared libs
 - Work-around appimage bundling…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants