Commit Graph
100 Commits
Author SHA1 Message Date
schroda e310ec3ba7 [Release] Version 1.0.0 (#501) 2024-02-23 20:35:38 +01:00
schroda 21bb931a74 Use full available width for reader component (#618)
Due to horizontally centering the flex-box items via "alignItems", the items did not stretch anymore, which is the default value for "alignItems" and thus, did not take up the available width.

Regression introduced with ab0ecf4da0
2024-02-22 19:24:27 +01:00
schroda 629b742140 Feature/settings add new socks proxy settings (#617)
* Add new socks settings

* [VersionMapping] Require server version "r1493" for preview
2024-02-22 00:25:12 +01:00
schroda ab0ecf4da0 Center page number correctly (#616) 2024-02-21 23:39:12 +01:00
schroda ceec260d14 Feature/reader setting add scale small pages (#615)
* Add option to stretch small pages

In case "fit page to window" is enabled, small pages can be scaled up to the available width and height, while maintaining the aspect ratio

* Cleanup "imageStyle" function
2024-02-21 02:42:07 +01:00
schroda 9531825bab Fix size of pages in continues reader mode (#613)
In case "fit to page" was enabled, the styling got incorrectly applied to horizontal pages. Causing the pages to be small

Regression introduced with 15825fbe53
2024-02-21 02:32:16 +01:00
schroda d8ee676d55 Prevent invisible pages (#614)
Sometimes after changing the current page, the next page had 0 width and thus was invisible.
2024-02-21 02:32:09 +01:00
schroda 97ab4004a6 Do not update chapter in case it has not been loaded yet (#612) 2024-02-18 15:20:37 +01:00
schroda 5a9618aefe Correctly update function refs when state changes (#611) 2024-02-18 15:20:30 +01:00
schroda e8bfc28350 [VersionMapping] Require server version "r1487" for preview (#610) 2024-02-18 02:11:09 +01:00
schroda 02dc9ca736 Add "thumbnailUrlLastFetched" to thumbnail url (#607) 2024-02-17 20:24:09 +01:00
schroda e5ffbb462c Feature/gql remove download ahead limit (#608)
* Use new "autoDownloadNewChaptersLimit" setting

* Use "downloadAheadLimit" from metadata

Should have been changed with 2acf2b6d33
2024-02-17 20:24:02 +01:00
schroda fd651b6165 Feature/add vui as webui flavor (#609)
* Remove unused "downloadAhead" function

* [Codegen] Update generated files

* Add "VUI" as webui flavor

* Add info about changing the webUI channel or flavor
2024-02-17 20:16:51 +01:00
schroda 05077b4a2b Correctly link to custom repos settings (#603)
Regression introduced with 4b54b09395
2024-02-17 16:53:53 +01:00
schroda 99c9d9d12f Use set reader width on small devices (#602)
On small devices (greater height than width) the width was always set to 100vw ignoring the set reader width via the settings
2024-02-17 00:41:37 +01:00
schroda aea112e292 Create correct manga thumbnail url (#601)
Regression introduced with c099e01fb7
2024-02-16 21:21:47 +01:00
schroda 4b54b09395 Rename "ExtensionSettings" to "BrowseSettings" (#600) 2024-02-16 19:53:00 +01:00
schroda e383cc9ea8 Add info text to download ahead setting (#599)
Show info that current and next chapter have to be downloaded for this setting to work
2024-02-16 19:38:31 +01:00
schroda c099e01fb7 Add manga fetch timestamp to thumbnail url (#598)
In case the fetch timestamp of a manga changed, it's possible that the thumbnail has changed as well, thus, the currently cached image should be ignored
2024-02-16 19:38:13 +01:00
schroda 2acf2b6d33 Feature/download ahead trigger chapter downloads client side (#597)
* Trigger download ahead while reading client side

* Trigger download ahead while reading earlier

Download ahead was only triggered once the chapter got marked as read

* Optionally ignore dupe chapters for download ahead

* Consider current chapters scanlator for dupe check

* Update download ahead related settings

- add new metadata setting for download ahead limit
- previous setting
  - rename
  - update usage (auto download new chapters limit)

* Select chapter to auto delete while reading depending on ignore dupe setting

Currently, the n-th to last chapter always got deleted ignoring if "ignore dupes" setting was enabled or not.

* Only auto delete chapter while reading if it is read

In case not the last read but the n-th to last read chapter should get auto deleted while reading, it currently just got deleted ignoring if it has been read or not.
2024-02-16 19:16:18 +01:00
schroda 0edec685f9 Correctly select next chapter id for download ahead (#596)
Chapters are being fetched sorted by descending source order, thus, the next chapters index is less than the current one

Regression introduced with 7caea4e526
2024-02-13 01:53:49 +01:00
schroda d244ba6538 Fit double page reader pages correctly to windows width (#595)
The max-width, which is for a single page, was applied to each page of the double page reader, which resulted in both of them being able to take up 100% of the available width
2024-02-13 01:53:18 +01:00
schroda 4ffd3584c6 Handle RTL reading direction for double page reader (#594)
Changing the reading direction for the double page reader did nothing.
It just always was LTR.

Regression introduced with 4d75474b39
2024-02-13 01:53:10 +01:00
schroda 444ebf8007 Fix/reader outdated chapter page count (#593)
* Always fetch pages for not downloaded chapter

The pages of non downloaded chapters have to be re-fetched since the local data might be out of date which would result in page fetch failures

* Correctly check for loading state of chapter

For the first render of e.g. the next chapter, the "arePagesLoaded" flag was still true from the previous chapter which caused the loading state to incorrectly be false.

This caused pages to get requested which on server side potentially pointed to invalid urls and thus the requests failed.

* Use updated chapter in case page count changed
2024-02-12 21:45:50 +01:00
schroda 5017ba9932 Handle backup creation on same domain as server (#592)
In case the webUI is hosted by the server the backup creation caused the app to navigate to the backup url which resulted in an empty page

Regression introduced with db5d3ff7c0
2024-02-12 21:45:33 +01:00
schroda 7caea4e526 Download ahead only in case current and next chapter are downloaded 2024-02-12 20:53:53 +01:00
schroda d5b633f5c9 Feature/improve create changelog script (#591)
* [Tooling] Switch to github gql api

* [Tooling] Credit all authors

* [Tooling] Add pr info from the commits associated pr

* [Tooling] Log unexpected commit format before throwing error

* [Tooling] Prevent running script without sha of last commit of previous release
2024-02-02 18:59:57 +01:00
schroda bf3815e3bd Correctly update cache after updating an extension (#590)
After installing/uninstalling/updating an extension all other extension were removed from the list besides the updated extension

Regression introduced with 506e0aa0e3
2024-02-01 22:58:01 +01:00
schroda 3077824ca7 Update dependencies (#587) 2024-01-29 21:17:27 +01:00
schroda b074de26a2 Fix/install external extension does not update extension list (#580)
* Update extension list after installing external extension file

The cache was never updated after the installation

* Make it possible to install external extension while having an empty list

* Show toasts while having an empty extension list

* Use correct extension id

* Update extension action after manual file installation

When installing an external extension the action button did not get updated due to this being an internal state of the ExtensionCard.
By including this in the key, it gets ensured that the component will get correctly updated
2024-01-29 20:59:27 +01:00
schroda 506e0aa0e3 Update extension list after removing an obsolete extension (#579)
The removed extension was never removed from the cached list
2024-01-29 20:56:09 +01:00
schroda cee566d9b2 [Codegen] Update manga chapter total count on initial refresh (#582)
In case a manga hadn't been initialized yet, its chapter total count was still 0 after refreshing the manga and its chapter list data.
This was caused because its chapter list hadn't been fetched yet by the time the manga refresh mutation resolved.
2024-01-29 20:55:49 +01:00
schroda c483e71bf1 Remove automatic manga update (#583)
Since the server now has an automatic global update functionality, this is not needed anymore
2024-01-29 20:55:33 +01:00
schroda d6468bca57 Add manga migrate option to menu on mobile devices (#584)
Should have been added with e0c5e0521d
2024-01-29 20:55:26 +01:00
schroda 6716339c0e Set default value for resetting to 50% (#585)
Should have been updated along with 2dab88eb7e
2024-01-29 20:55:16 +01:00
schroda 891d6f4165 Fix/manga migration opening search twice (#586)
* Update "MenuItem" props

* Navigate to manga migration only once

* Remove disabling migrate button on manga refresh

too much copy&paste
2024-01-29 20:54:56 +01:00
schroda 10ec7de628 Correctly calculate width (#578) 2024-01-26 23:59:12 +01:00
schroda f335b59dca Actually send library db cleanup mutation (#577) 2024-01-26 21:36:07 +01:00
schroda 18ca66cb40 Feature/settings add flaresolverr (#568)
* [Codegen] Update to server changes

* Set "dialogTitle" by default to "settingTitle" for "NumberSetting"

* Add FlareSolverr to settings

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

* Replace static strings with translation keys
2024-01-26 21:20:06 +01:00
schroda 771d6beb18 Add missing gap to VerticalReader mode with fit to window setting (#574) 2024-01-26 20:55:27 +01:00
schroda ab4cddfedd Force a reconnect in case a heartbeat is missing (#569)
There seems to be cases where the connection is lost without the client being able to reconnect (e.g. active subscription -> system hibernation -> waking up system => not receiving any messages anymore).
2024-01-26 20:55:14 +01:00
schroda 15825fbe53 Prevent pages from being bigger than the 100% in width (#573) 2024-01-26 20:54:38 +01:00
schroda 2dab88eb7e Decrease default "reader width" to 50% (#576) 2024-01-26 20:54:19 +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 5224ad1391 Add missing id to request (#571)
The id is required to normalize the data
2024-01-26 20:50:09 +01:00
schroda 6edf3bad64 [ESLint] Allow zero warnings (#575) 2024-01-26 20:49:43 +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
schroda 69a62b6c2c Add webUI settings again (#564)
Was accidentally removed with e10cbf9e8f
2024-01-21 22:31:27 +01:00
schroda 24379c1e46 Infinitely try to reconnect gql subscriptions (#563) 2024-01-21 22:31:20 +01:00
schroda de596426bf [Codegen] Update generated files (#561)
Should have been updated with 1c2a196950
2024-01-17 13:48:43 +01:00
schroda f8e1bfc401 Correctly change the category of a manga from the library (#560)
For a single manga the "mangaId" should be passed while "mangaIds" is empty, however, the "mangaIds" were passed as an empty array which caused an empty array of manga ids to be passed with the mutation
2024-01-17 13:46:05 +01:00
schroda 1c2a196950 Fix/adding manga to library not updating category (#559)
* Refetch categories after updating a manga

After adding/removing a manga to/from the library, the categories did not update.

* Include manga categories int the manga update mutation response
2024-01-17 13:45:30 +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 38b364bb55 Remove reader webtoon mode page gaps (#552)
Regression introduced with 199b62341f
2024-01-15 14:27:29 +01:00
schroda 738a22233b Internationalize failed img retry text (#551) 2024-01-15 00:55:39 +01:00
schroda 199b62341f Feature/add retry button for failed image requests (#550)
* Improve img loading placeholder

Prevent showing a loading placeholder in case the image is already cached.

* Add failed img load retry button
2024-01-15 00:32:39 +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 3973eda089 [ServerMapping][Codegen] Update to latest server gql MangaType changes (#546) 2024-01-11 03:53:06 +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 684ae69470 Update tokens (#542) 2024-01-07 20:41:57 +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 9caca6e753 Update dependencies (#534) 2024-01-02 16:46:41 +01:00
schroda 6c46c56252 Handle showing disabled state of automatic chapter deletion (#533)
The disabled state (0) was incorrectly handled as the downloading state
2024-01-02 16:14:19 +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 7d3d82556a Handle extension update failure (#530)
The failure was never handled and instead, the update was infinitely stuck in progress.
2023-12-31 01:46:53 +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 37d6b84cf4 Use correct titles for manga actions in selection mode (#529)
Should have been changed with ecea80f41e
2023-12-30 15:05: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 a3a52064cc Feature/cleanup chapter actions (#525)
* Extract chapter actions into "Chapters"

* Extract chapter action menu into component

* Rename "SelectionFABActionItem" to "MenuItem"

* Decouple "MenuItem" from "SelectionFAB"

* Use "MenuItem" in "ActionMenus"

* Merge chapter action menus

* Simplify chapter "mark as read" action
2023-12-30 04:04:59 +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 356303ab5a Allow browser context menu for images in reader (#524)
The changes of dabe88385d removed the ability to copy/open images in a new tab due to enabling scrolling via left mouse click and dragging the mouse.
2023-12-28 20:22:34 +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 a1dca02fea Add missing extension key field to mutation result (#522)
Regression introduced with c8747d6db4
2023-12-28 16:08:02 +01:00
schroda f81b20b4fd Fix/library continue read button causes page refresh (#521)
* Use app routing to open reader

Otherwise, the app loses the navigation history and won't open the last page (library) when closing the reader

* Prevent setting 0 as grid width

After the change of 4ebe6494f6c97c0d064c617f70b36682e6aedcb2, closing the reader and coming back to the library resulted in a single manga per row, due to the grids width being 0.
2023-12-28 16:07:50 +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 1345cfe624 Update manga category selection in case categories changed (#518)
After a manga got added to the library, the category selection dialog did not show the categories the manga got automatically added to.
The selection only got updated after the dialog got closed and opened again

Regression was introduced with 446deeae06
2023-12-27 17:20:28 +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 980da657d9 [Codegen] Check cache before executing query for a single item (#513)
E.g. in case a manga was already loaded through the category mangas query, the query for that specific manga should not run against the server if it hasn't been executed before
2023-12-25 21:20:07 +01:00
schroda c115fcd573 Feature/make selection logic reusable (#515)
* Introduce "selectable collection" hook

* Extract "select all" button into component

* Make "SelectionFABActionItem" reusable

Was to tightly coupled to chapters

* Make "SelectionFAB" reusable

Was to tightly coupled to chapters
2023-12-25 21:20:00 +01:00
schroda c8747d6db4 Use correct key to normalize extensions (#512) 2023-12-25 21:16:04 +01:00
schroda 0615ef87ce Add divider between library tabs and mangas (#514) 2023-12-25 21:15:52 +01:00
schroda 2390361fb2 [Codegen] Request manga download count with chapter deletion mutation (#516)
After deleting a chapter, the download count of the chapters manga did not update, because the information was not requested with the mutation
2023-12-25 21:15:41 +01:00
schroda 168e8f82f6 Use "Footer" to prevent fab overlapping the last item (#517) 2023-12-25 21:15:31 +01:00
schroda 09d1cf91e0 Prevent navigation state update in case path already changed (#511)
The fix of e4beafb11f only worked in dev env and not in prod.
This prevents the navigation state update from getting triggered in case the path has changed in the meantime
2023-12-24 02:36:09 +01:00
schroda e4beafb11f Cancel the navigation state update correctly (#507)
The timeout was never canceled in case the tab changed, thus, it kept updating the navigation state for the previous tab and the new tab.
2023-12-23 15:15:14 +01:00
schroda e966b0328b Remove unnecessary query refetches with mutations (#508) 2023-12-23 15:15:08 +01:00
schroda 3756b65256 Correctly check for dev env (#509) 2023-12-23 15:15:03 +01:00
schroda f4e8441238 Prevent ApolloError handling the manga category mutation result (#510)
Unclear what is causing the error or why this is fixing it, but without requesting the categories total count, the mutation fails on the first execution with "Uncaught (in promise) ApolloError: Cannot convert object to primitive value"
2023-12-23 15:14:57 +01:00