Commit Graph

32 Commits

Author SHA1 Message Date
schroda
29d54384f5 Remove most "useSetDefaultBackTo" usage
In case the "depth" of the initial opened app page was greater than 2 it was possible to get stuck in a loop of using the back button twice from the initial page to the previous page and back to the initial page...

Instead, in case a page with a greater depth than 0 is opened, the library should just be opened when using the back button.

This way the back button actually behaves like it's intended, as an app back button and not like the browsers back button
2024-06-06 00:00:38 +02:00
schroda
df66e180d8 Add setting to show duplicated library entries 2024-05-04 15:41:21 +02:00
schroda
054585f488 Rename "EmptyView" 2024-04-29 15:29:33 +02:00
schroda
f1ec97b0e6 Extract fetch logic into parent setting components 2024-04-28 02:58:38 +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
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
4aec3c94ef Feature/support settings per device (#640)
* Optionally prevent deletion and mutation of "MutableListSetting" items

* Save server metadata per device

This makes it possible to e.g. have different settings on a desktop and a smartphone.
2024-03-06 23:07:48 +01:00
schroda
8bdf035ca7 Feature/add option to remove manga from categories when removing from library (#633)
* Optionally remove manga categories when removing them from library

* Use "Mangas::removeFromLibrary"

* Handle uncatched promises
2024-03-02 15:28:58 +01:00
schroda
f335b59dca Actually send library db cleanup mutation (#577) 2024-01-26 21:36:07 +01:00
schroda
e0c5e0521d Feature/manga migration (#536)
* Add "migration" tab to "Browse" screen

* Add missing useEffect cleanup for navbar title and actions

* Make "SourceGridLayout" reusable

* Add migration tab to "Browse"

* Add migration logic
2024-01-26 20:50:51 +01:00
schroda
f12f025e9d Add option to remove non library mangas from categories (#520)
It's currently not possible to filter out non library mangas from the mangas field of categories, thus, the totalCount of mangas in a category might be greater than what is actually displayed in the library.
2023-12-27 18:17:41 +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
678df88068 Feature/modify global update settings (#432)
* Move setting components in "settings" folder

* Add setting to change global update automation
2023-10-29 02:01:59 +02:00
schroda
5a5b12a9e1 [ESLint] Prefer named exports (#427) 2023-10-28 00:32:02 +02:00
schroda
68e7b4b16d Feature/library global update exclude manga with state (#281)
* Extract global update settings

* Add option to exclude mangas with specific state from global update
2023-10-27 23:39:05 +02:00
schroda
b1aaeb4d5d Show loading text for include/exclude categories setting
Due to setting categories to be an empty array by default, the loading text was never shown
2023-10-27 21:03:37 +02:00
schroda
b3a432ed2e Update typings 2023-10-27 20:23:46 +02:00
schroda
ca18e750bf Use gql for "categories" 2023-10-27 20:23:03 +02:00
schroda
bffc1669e2 Move "RequestManager" in sub folder 2023-10-27 20:23:00 +02:00
schroda
48fe8d23e9 Fix/vite tsconfig setup (#404)
* Use "create-vite"s tsconfig files setup

The previous tsconfig file caused issues with vite throwing "missing identifiers of modules" errors

* Remove unused React imports

Starting with React 17 the nex JSX transform is being used
2023-08-14 21:43:06 +02:00
schroda
09b10cd5ab Fix/back button not working without browser history (#389)
* Introduce local history stack

To be able to know if the browser back navigation should be used, it is sometimes necessary to know which the previous page was.
E.g. it should not be used in case the current page is the manga page and the previous one is the reader.

* Handle cases where there is no previous page in the history stack

* Always use a button for the navigation back button

* Navigate from base route to library by replacing the current location

The base route should not be included in the history
2023-06-26 20:40:35 +02:00
schroda
7857645800 Enable changing include/exclude state of "default" category (#387)
The "default" handling was changed, which makes it possible to change the include/exclude state
2023-06-24 12:54:18 +02:00
schroda
322cf8c915 Move Library "search settings" to LibrarySettings (#381) 2023-06-20 01:00:54 +02:00
schroda
79b5e696b6 Fix/setting buttons unclickable area (#379)
* Move "onClick" handler to "ListItemButton" - LibrarySettings "global update categories"

Clicks were only handled on the button content leading to a small area around the content to not handle the clicks, thus, not opening the dialog

* Move "onClick" handler to "ListItemButton" - Settings "manga item width"

Clicks were only handled on the button content leading to a small area around the content to not handle the clicks, thus, not opening the dialog
2023-06-20 00:58:40 +02:00
schroda
26b48f15c5 Fix/library settings global update categories empty dialog after updating (#361)
* Prevent dialog not to showing any categories after updating them

After updating to react v18 the dialog categories were empty after updating the category changes

* Immediately close the dialog after starting update

Catalog was open as long as the update was running

* Remove unnecessary state
2023-06-10 00:42:10 +02:00
schroda
4b83ccc889 Feature/use alias for imports (#352)
* Use alias "@" for imports

* Use alias "@" for imports - Fix imports

* Use alias "@" for imports - Prevent faulty "import/extensions" linting issue

For some reason the rule throws an error for alias imports

* Use alias "@" for imports - Update "no-relative-imports" eslint rule
2023-06-05 01:42:39 +02:00
schroda
6911f60eb4 Feature/remove dependency mui system (#331)
* Remove duplicated dependency "@mui/system"

Already included in "@mui/material"

* Remove duplicated dependency "@mui/system" - Fix theme "custom" palette

Already included in "@mui/material"

* Remove duplicated dependency "@mui/system" - Fix imports

Already included in "@mui/material"
2023-06-04 21:08:39 +02:00
schroda
606ee9de2d RequestManager make requests abortable - Fix missed usages (#318) 2023-05-23 13:54:14 +02:00
schroda
a457d80c44 Feature/streamline backend requests (#297)
* Introduce "RequestManager"

* Use "RequestManager" - Simple replacements

 - Get rid of all "util/client" imports
 - replace old requests with new "RequestManager"
 - remove "fetcher" from global SWR config
     instead of using the SWR hooks by themselves, the "requestManager" is supposed to be used

* Use "RequestManager" - Do requests via SWR hooks

Use SWR hooks at places where it's easily usable

* Prevent trailing slashes in the "baseUrl"
2023-05-18 13:25:19 +02:00
schroda
8dae72604f Update to SWR version 2.x (#296)
* Update SWR to version 2.1.5

* Improve generic type names

* Use "isLoading" property of "useSWR" response

* Correctly load library without selected tab

With the latest SWR version the library was empty on the first load.
Not sure what exactly is the reason, but due to "isPaused" the request wasn't sent even after "activeTab" wasn't undefined anymore.
Instead of using "isPaused", passing "null" as the key will also prevent SWR from doing the request.
2023-05-15 11:56:55 +02:00
schroda
548b22d211 fix/library_settings_screen_title_update_on_language_change (#287) 2023-05-01 23:32:38 +02:00
schroda
9a27335760 Add option to include and exclude categories from the global update (#265) 2023-04-22 13:03:51 +02:00