Commit Graph

105 Commits

Author SHA1 Message Date
schroda
7abfbd09ef Properly detect active library filters 2024-09-21 22:20:43 +02:00
schroda
b05660dc82 Remove scroll to top on library filter change 2024-09-21 22:20:39 +02:00
schroda
a1131bf85b Save library options per category 2024-09-21 22:20:38 +02:00
schroda
df129f723a Rename library option variable names 2024-09-17 00:26:41 +02:00
schroda
4e763192a8 Add sort by total chapter count 2024-09-15 22:53:35 +02:00
schroda
1708d5daff Add "status" library filter 2024-09-15 14:22:55 +02:00
schroda
fe6757f308 Migrate to mui grid v2 2024-09-14 22:00:46 +02:00
schroda
1423ca23be Set appbar color on light theme 2024-09-09 22:20:46 +02:00
schroda
054b9c33bc Cleanup library filter logic 2024-08-14 23:12:51 +02:00
schroda
431248d69a Cleanup library search logic 2024-08-14 23:00:11 +02:00
schroda
5bbde0edc6 Include artist, author and source name in library search 2024-08-14 22:58:22 +02:00
schroda
66e2bd47ea Include description in library search 2024-08-14 15:21:19 +02:00
schroda
af44421838 Improve library search
Simplify searching by making matching logic less strict.

- do not require full match
- additionally compare by removing all non letter and number chars
2024-08-14 14:15:19 +02:00
schroda
e99ed3eec5 Add "has duplicate chapters" library filter
closes #777
2024-07-28 23:15:11 +02:00
schroda
3d21266f92 Reduce requested manga data in queries 2024-07-09 00:30:15 +02:00
schroda
83be995fb8 Reduce requested tracker data in queries 2024-07-09 00:21:49 +02:00
schroda
9b8ace003d Reduce requested category data in queries 2024-07-03 23:24:50 +02:00
schroda
f9b1d2bae2 Add option to stop global update 2024-06-26 13:25:43 +02:00
schroda
3206944052 Optionally trigger update for specific category 2024-06-26 12:42:03 +02:00
schroda
230acc23d5 Prevent scrollbar from shortly disappearing on library category change
Due to the MangaGrid getting unmounted when changing the category, the "y overflow" value got reset to "auto" which caused the scrollbar from disappearing and immediately reappearing again.
This caused the site content to slightly "jump" due to the increase and immediate decrease in is width.

Related commit 871908eba9
2024-05-24 17:31:49 +02:00
schroda
c29173681f Reduce code duplication for Library filtering and sorting 2024-05-03 17:01:04 +02:00
schroda
3efb2662de Correctly sort library by latest uploaded chapter 2024-05-03 16:40:13 +02:00
schroda
29ade85f7f Use "Intl.DateTimeFormat" instead of Date locale functions
It's recommended to use "Intl.DateTimeFormat" instead of using Date locale functions which get called often with the same options (e.g. https://developer.mozilla.org/en-US/docs/web/javascript/reference/global_objects/date/tolocaletimestring)
2024-05-03 15:57:38 +02:00
schroda
7531edbd59 Add retry logic to Library error handling 2024-04-28 02:58:28 +02:00
schroda
473e85a8ed Feature/use second level mui imports (#743)
* Require "Theme" to be passed to "SxProps"

Decreases typescript performance otherwise

* Disallow "top" and "third-level" MUI imports

* Exclude "node_modules" in tsconfig
2024-04-14 15:50:12 +02:00
schroda
aab3e25031 Feature/improve restoring grid snapshots (#713)
* Update local storage functions

* Update local storage hooks

* Add session storage

* Improve storing virtuoso grid snapshot

* Use "useSyncExternalStore" for browser storage access

* Get rid of location replacements in "AppbarSearch"

Use session storage instead to prevent reloading the page all the time due to changing the location

* Get rid of location replacements in "SourceMangas"

Use session storage instead to prevent reloading the page all the time due to changing the location
2024-04-07 15:22:03 +02:00
schroda
4f7a05f6fe Add bookmarked filter in library (#687) 2024-04-01 01:12:26 +02:00
schroda
d59f90f787 Consider track filters for library filtered out message (#683) 2024-03-30 16:07:29 +01:00
schroda
374e71f521 Highlight library filter icon as active for tracker filter (#681) 2024-03-29 16:55:07 +01:00
schroda
74f945dd59 Use correct translation key (#679) 2024-03-29 00:51:14 +01:00
schroda
816cbee145 Add library filter for trackers 2024-03-29 00:45:38 +01:00
schroda
511b1f7c5e Specify type of custom scalars 2024-03-29 00:45:38 +01:00
schroda
0c22a9012e Feature/cleanup metadata related logic (#657)
* Remove unnecessary parameter from "requestUpdateServerMetadata"

* Streamline updating metadata server settings

* Move metadata related logic
2024-03-16 16:21:15 +01:00
schroda
be5497af94 Add new library sort options (#547)
- latest fetched chapter
- latest uploaded chapter
2024-01-11 03:56:04 +01:00
schroda
05fa3d0732 Fix/chapter not getting deleted after being read (#532)
* Create permanent subscriptions

The subscriptions have to be permanently open, otherwise, the cache gets outdated.

E.g. in case a view is open, which does not subscribe to the download updates, finished downloads are never received and thus, data of existing chapters/mangas in the cache get outdated

* [Codegen][Tool] Get latest data from cache for automatic chapter deletion after reading

The manga chapters query is on "standby" to prevent the reader from rerender in case the underlying query data updates, which would cause the reader to jump back to the beginning of the last read page.
Thus, when checking if the chapter should be automatically deleted, the data from the query can't be used, since it is outdated.
2024-01-01 22:40:39 +01:00
schroda
37ce494fda Log promise failures instead of ignoring them (#531)
In case the failure does not get handled, it should at least get logged, to prevent silently ignoring it
2023-12-31 01:42:54 +01:00
schroda
e025efb9dc Feature/add manga to library category select dialog (#519)
* Move "SearchSettings" into "LibrarySettings"

* Change property "setOpen" to "onClose" for "CategorySelect"

* Optionally show category selection when adding manga to library

* Update "ignore filters" translation

* Move "ignore_filters" setting to "metadataServerSettings"
2023-12-27 18:08:16 +01:00
schroda
446deeae06 Feature/library manga actions (#506)
* Extend "IMangaGridProps" from "DefaultGridProps"

* Move library manga filtering into hook

* Add logic to select mangas

* Add manga actions

* Remove cache only policy for category mangas

Unclear why this was added

* Prevent SelectionFAB from being hidden by the mobile footer

On e.g. the library page, the footer is visible and thus, the fab was not completely visible

* Update categories of manga only after clicking "OK"

Previously, selecting a category resulted in an immediate mutation.
To be able to reuse the "CategorySelect" component to change the categories of multiple mangas at once, this behaviour is not suited.

* Add action to change categories of multiple mangas

* Cancel selection mode after removal from library

The mangas would still be selected and other action could get performed. However, this should only be possible for mangas that are in the library

* Remove unintentionally added console log

Accidentally added with 980da657d9
2023-12-25 21:37:45 +01:00
schroda
2f8c284c8b Add continue read button to library (#505) 2023-12-19 15:17:00 +01:00
schroda
c6cc7c14dd Update the "lastRunningState" in case update was triggered outside of app (#478) 2023-11-25 18:20:49 +01:00
schroda
7c69a4a5a1 Feature/global update last timestamp use stale data while fetching (#473)
* Cache last update timestamp

* Correctly detect update as finished

The update status on server side does not get reset, thus, in case a previous update was finished, it would get detected as finished and handled once on the initial render.
2023-11-25 15:35:36 +01:00
schroda
cdf9229457 Feature/global update show last update time (#468)
* Show last global update timestamp

* Add update button to "Updates" screen
2023-11-19 22:43:29 +01:00
schroda
4ab61723e7 Add missing tooltips (#444) 2023-11-05 17:22:29 +01:00
schroda
4c6d507405 Feature/show backup restore progress (#431)
* Extract "Progress" component

* Show backup restore progress
2023-10-29 01:49:27 +02:00
schroda
5a5b12a9e1 [ESLint] Prefer named exports (#427) 2023-10-28 00:32:02 +02:00
schroda
09c7e804ba Refresh library mangas after update
the gql updater subscription currently return stale data, thus, the mangas do net get updated in the cache
2023-10-27 21:03:37 +02:00
schroda
b3a432ed2e Update typings 2023-10-27 20:23:46 +02:00
schroda
d3e15e9d3b Use gql for "subscriptions" 2023-10-27 20:23:45 +02:00
schroda
af9d49e5e9 Use gql for "mangas" II - category mangas 2023-10-27 20:23:04 +02:00
schroda
bffc1669e2 Move "RequestManager" in sub folder 2023-10-27 20:23:00 +02:00