Commit Graph

429 Commits

Author SHA1 Message Date
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
Chance Zibolski
5032a0ae94 Make reader width configurable (#565)
Signed-off-by: Chance Zibolski <chance.zibolski@gmail.com>
2024-01-21 22:33:13 +01:00
schroda
dcbf5a1899 Fix/library manga selection type error (#566)
* Prevent TypeError when deselecting items from a specific key

This was noticed when changing the categories of a manga to a category without any selected mangas, in this case, when trying to deselect a manga after changing the categories, a TypeError was thrown which resulted in a white screen

* Remove duplicates from the list of all selected ids

* Update state via setter

* Clear selection after disabling the library selection mode

* Remove console log
2024-01-21 22:31:43 +01:00
Chance Zibolski
05f57730db Support configuring automatic downloads by category (#562)
Signed-off-by: Chance Zibolski <chance.zibolski@gmail.com>
2024-01-21 22:31:04 +01:00
schroda
e10cbf9e8f Add extension settings screen (#557) 2024-01-15 23:48:11 +01:00
schroda
f0e1bd3249 Feature/extension list show info when no repo is defined (#556)
* Show add extension repo info in case no repo is defined

* Update extension repositories localization
2024-01-15 23:22:35 +01:00
schroda
42e3d64f80 Clear extensions cache after extension repos change (#555)
This will force a refetch of the extensions the next time the list gets opened which will update the extensions on the server
2024-01-15 23:22:25 +01:00
schroda
bed586383f Update extension repo regex to server changes (#554) 2024-01-15 23:22:18 +01:00
schroda
6708a958ce Render selection fab in case only one category exists (#553) 2024-01-15 21:19:35 +01:00
schroda
955cc682fd Apply filters when searching in SourceMangas (#545) 2024-01-11 02:57:56 +01:00
schroda
89e8472ebc Add disclaimer to custom repositories setting (#544) 2024-01-09 22:09:43 +01:00
schroda
fd1fa63064 Feature/show extension repo only in case more than one repo is set (#543)
* Rename "isSingleRepoSet" prop to "showSourceRepo"

* Show repo of source in case sources of different repos are installed

* Center the source icon
2024-01-09 22:09:31 +01:00
schroda
8faa756ab5 Feature/improve custom extension repos support (#540)
* Move "TextSetting" to new folder

* Extract dialog of "TextSetting"

* Immediately show dialog when adding a list item

* Reuse "TextSettingProps" for "MutableListSetting"

* Add "placeholder" prop to "MutableListSetting"

* Prevent duplicates by default

* Clear dialog values on save

* Validate repo url
2024-01-07 16:30:40 +01:00
schroda
39b79c6ebe Feature/settings support custom extension repos (#539)
* [Codegen] Support custom extension repos

* [VersionMapping] Require server version "r1444" for preview
2024-01-06 18:38:16 +01:00
schroda
b42c3103f1 Feature/rebrand to suwayomi (#500)
* Rename "Tachidesk-WebUI" to "Suwayomi-WebUI"

* Rename "Tachidesk-Server" to "Suwayomi-Server"

* Rename "Tachidesk" to "Suwayomi"

* Rename variables
2024-01-05 20:11:29 +01:00
schroda
779dafe1dc Pass correct group sizes to "GroupedVirtuoso" (#537)
One item was always hidden from the list.
Noticed during searching for a specific extension, which caused the list to only have one item, which was not shown

Was incorrectly changed with db65b9df44
2024-01-03 18:57:12 +01:00
schroda
db65b9df44 Feature/merge source and extensions screen on desktop (#535)
* Merge "source" and "extension" screen for desktop

* Move "tab" related components into new folder

* Reuse "tab" components for "browse" screen

* Prevent extension list from being taller than 100% of the parents height

- remove margin - virtuoso has issues calculating the height otherwise
- change group title styling, fontSize caused issues

* Align "source" list group header with "extension"

* Remove bottom padding from "ExtensionCard"

* Move "GroupedVirtuoso" related components into folder

* Use "GroupedVirtuoso" for "extensions"

There was an issue with the height calculation of the virtuoso list, which apparently was caused by the conditional rendering of the group title and item as list items.
Due to this, while scrolling down, the virtuoso list caused an overflow, which rendered the scrollbar, which in turn caused the list items to shrink in width.
The end result of this was, that the list items "jumped" slightly on the initial render of the items, due to the scrollbar appearing and disappearing
2024-01-02 23:32:49 +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
edc2a62a76 Feature/cleanup files (#528)
* Move menu components into new dir

* Move chapter components into new dir

* Extract menu helper functions

* Move "SelectionFAB" to "collection" dir

* Move debounce hook to global utils dir

* Rename manga "hooks" to "useRefreshManga"
2023-12-30 14:30:04 +01:00
schroda
ecea80f41e Merge manga action menus (#527) 2023-12-30 14:26:50 +01:00
schroda
d15be603b1 Use up-to-date manga data for selection fab actions (#526)
The selected manga data was only updated in case the selection changed, thus, after executing an action, the used data was outdated
2023-12-30 04:04:47 +01:00
schroda
120e97e882 Feature/restore backup inform about missing sources (#523)
* Validate backup before starting restore process

In case sources were missing, the user was never informed and thus, did not know which sources were required for all manga to work

* Reset file input after restoring

Otherwise, the same backup file can't be restored until the page gets refreshed/re-opened
2023-12-28 16:08:13 +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
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
0615ef87ce Add divider between library tabs and mangas (#514) 2023-12-25 21:15:52 +01:00
schroda
663e20fff9 Visualize read chapters in the update list 2023-12-18 23:12:42 +01:00
schroda
1300c10d83 Remove unnecessary library refetch
The server is now returning up-to-date manga data and thus, it's not necessary to refetch the library anymore after the update is finished
2023-12-16 20:43:11 +01:00
schroda
1dc60af67c Add logic to reorder downloads (#495) 2023-12-13 02:05:03 +01:00
schroda
b5f86ae609 Feature/virtualize download queue (#494)
* Virtualize the download queue

* Show loading placeholder for download queue
2023-12-13 01:55:38 +01:00
schroda
c51897ed54 Feature/download queue clear queue (#490)
* Use "NavbarContext" in "DownloadsQueue"

* Add option to clear the whole download queue
2023-12-10 00:09:00 +01:00
schroda
9cb72243d6 Automatically check for server updates (#489) 2023-12-09 23:20:52 +01:00
schroda
78310496aa Feature/about screen add option to check for and trigger updates (#485)
* [VersionMapping] Require server version "r1436" for preview

* Move ts util types to new type file

* Add buttons for updating server and webUI
2023-12-09 23:08:27 +01:00
schroda
2caf88ce51 Remove incorrect "ListItemSecondaryAction" usage (#486) 2023-12-09 14:16:59 +01:00
schroda
fbf627b3aa Add option to clear the server cache (#487) 2023-12-09 14:16:52 +01:00
schroda
db5d3ff7c0 Remove "directLink" prop (#488)
Is not required anymore since "Link" of react-router-dom is a "<a>" element now anyway.
It also caused the following warning

"react-dom.development.js:86  Warning: React does not recognize the `directLink` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `directlink` instead. If you accidentally passed it from a parent component, remove it from the DOM element"
2023-12-09 14:16:44 +01:00
schroda
ad0f072651 Feature/automatic chapter deletion more options (#484)
* Add missing translations keys

* [Codegen] Update to latest server schema changes

* [VersionMapping] Require server version "r1431" for preview

* Rename "deleteChaptersAutoMarkedRead" metadata setting

* Add more options to auto delete chapters while reading

Makes it possible to delete the last to fifth to last read chapter instead of only being able to delete the last read chapter
2023-12-05 22:20:13 +01:00
schroda
259d1d87df Show info about hosted WebUI in "About" (#482) 2023-11-27 19:14:43 +01:00
schroda
47b077cbf5 Feature/update dependencies (#477)
* Remove accidentally committed script

* Update dependencies

* [ESLint] Fix issues

* Remove unnecessary "??" operator

* Update "vite" to v5.x

* Disable "no default export" rule in vite config
2023-11-25 18:13:51 +01:00
schroda
5aa7fc0f9f Remove icon for library search filter setting (#476) 2023-11-25 17:22:51 +01:00
schroda
6b2245d730 Move the last update timestamp to the body (#472)
On small screens, the last update timestamp caused the pages title to get cut
2023-11-25 15:39:39 +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
aa01d6712b Update extensions list after extension update (#471) 2023-11-24 03:20:16 +01:00
schroda
7adc28a35c Feature/gql improve queries mutations subscriptions (#470)
* [Codegen] Request less fields for category mutations

* [Codegen] Request less fields for chapter mutations

* [Codegen] Request less fields for downloader mutations

* [Codegen] Request less fields for extension mutations

* [Codegen] Request less fields for manga mutations

* [Codegen] Request less fields for source mutations

* [Codegen] Request less fields for updater subscription

* [Codegen] Request less fields for downloader subscription

* [Codegen] Combine chapter update mutations
2023-11-24 03:17:49 +01:00
schroda
3b147b1b46 Fix/update gql after server changes (#469)
* [Codegen] Update files

* Update "AboutServer"

* Cache "WebUIUpdateInfo"
2023-11-24 01:33:56 +01:00
schroda
3766540ce5 Add WebUI settings (#460)
* Add WebUI settings

* [VersionMapping] Require server version "r1427" for preview
2023-11-20 22:14:24 +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
dbb4bf70af Use correct local source header in settings (#466) 2023-11-19 21:22:21 +01:00
schroda
d12ac27b61 Feature/download ahead while reading (#464)
* Download next chapters when marking chapter as read while reading

* Add "auto delete chapter" settings

* Delete chapter after finished reading

* Delete chapters after marking them as read

* Improve "mark previous as read" action

Send only ids of chapters that are actually unread
2023-11-19 21:17:35 +01:00