Commit Graph

452 Commits

Author SHA1 Message Date
schroda
d3e15e9d3b Use gql for "subscriptions" 2023-10-27 20:23:45 +02:00
schroda
e2f34f1f47 Use gql for "fetchMore" workaround
The "loading" and "networkStatus" state do not get correctly updated when e.g. calling "fetchMore".
This seems to happen because an abort signal is passed on every hook call.
Due to passing this signal, the passed args to the hook change, and thus, it looks like apollo considers this a completely new hook call.
By preventing the signal from being passed, the hook correctly updates these states, but, on the contrary, it is not possible to abort these requests anymore
2023-10-27 20:23:44 +02:00
schroda
aad87463f3 [Codegen] Use gql for "loading chapters" 2023-10-27 20:23:44 +02:00
schroda
78049282a7 Use gql for "sources" - preferences 2023-10-27 20:23:05 +02:00
schroda
dcead5a801 Preserve selected filters on browser back navigation 2023-10-27 20:23:05 +02:00
schroda
12dd973179 Use gql for "mangas" VI - source mangas filter 2023-10-27 20:23:05 +02:00
schroda
87aef85683 Use gql for "mangas" IV - source mangas popular/latest 2023-10-27 20:23:04 +02:00
schroda
0a73496cba Use gql for "mangas" III - global search 2023-10-27 20:23:04 +02:00
schroda
af9d49e5e9 Use gql for "mangas" II - category mangas 2023-10-27 20:23:04 +02:00
schroda
89dc053f00 Use gql for "mangas" I - get manga 2023-10-27 20:23:04 +02:00
schroda
222f8f5c9b Use gql for "downloader" 2023-10-27 20:23:03 +02:00
schroda
ca18e750bf Use gql for "categories" 2023-10-27 20:23:03 +02:00
schroda
f0d55c01c8 Use gql for "updating chapters" 2023-10-27 20:23:03 +02:00
schroda
e1f338d013 Use gql for "sources" 2023-10-27 20:23:02 +02:00
schroda
4a80e18cd0 Use gql for "extensions" 2023-10-27 20:23:02 +02:00
schroda
59468bc568 Use gql for "about" 2023-10-27 20:23:01 +02:00
schroda
bffc1669e2 Move "RequestManager" in sub folder 2023-10-27 20:23:00 +02:00
Robert Perez
3155c1d602 Add option to offset first page in double page reader (#418)
* added toggle for doublespreads

* changing pages works as intended

* undid package.json changes

* deleted packege lock json

* curPage changes when changing invertDoublePage

* changed yarn.lock

* it switches better now

* fixed formatting

* changed it to offset first page

* fixed flipping when switching

* offset first page hides when double page is not enabled

* removed uncreachable line
2023-09-28 00:36:47 +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
5279339b86 Feature/update i18next to v23.x (#391)
* Update i18next to v23.x

Update to version 23.2.7

* Use new "ParseKeys" (old: "TFuncKey") type

* Remove unnecessary casts to string

Not needed anymore with the latest version
2023-07-04 21:53:25 +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
67b4bbbdcf Do not use and mutate global array 2023-06-24 12:41:27 +02:00
schroda
5c0dcf1f6c Rename function 2023-06-24 12:41:27 +02:00
schroda
084308a833 Fix typo 2023-06-24 12:39:01 +02:00
schroda
95ca2fabae Group obsolete extensions 2023-06-24 12:39:01 +02:00
蓝云Reyes
5d9bc5474c Prevent white screen in Updates page (#383) 2023-06-22 21:40:41 +02:00
schroda
ed9c51cd37 Reset scroll position when changing the search term (#382)
I hate my life (f5a8c8d35c)... AINTNOWAY
2023-06-20 01:12:10 +02:00
schroda
322cf8c915 Move Library "search settings" to LibrarySettings (#381) 2023-06-20 01:00:54 +02:00
schroda
f5a8c8d35c Update reset scroll position flag after doing the reset (#380)
Should have been added with 3ad33b0a15
2023-06-20 00:59:19 +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
4dcf6a3ad9 Make library tabs menu position fixed (#369) 2023-06-17 16:55:24 +02:00
schroda
19d27fdf26 Feature/virtualize manga grid (#363)
* Disable ssr by default for "useMediaQuery"

SSR would cause the hook to run once with default values and only after the first render with real values.
This can cause issue on rendering when depending on useMediaQuery results like in 8c129f2e08

* Virtualize manga grids

* Remove SourceMangas load more guard

Was required due to the previous load more trigger logic from the MangaGrid.
Due to using Virtuoso now, load more will be triggered only once when the bottom of the grid was reached and thus won't trigger multiple load more requests

* Remove old Library pagination

Pagination is handled by virtuoso, thus, the previous pagination can be removed

* Increase initial loaded pages to make infinite load work

virtuoso requires enough initial items to be rendered, so that actual virtualization takes effect, for it to fire "endReached"

* Prevent virtuoso grid scrollbar from jumping around

In case the items have a big height difference there is a bug where the scrollbar starts jumping around the moment these new items are rendered

* Restore scroll position

For some reason the UI jumps around when accessing "document.documentElement" during loading more items.
After the items are rendered the loading placeholder gets removed and the previous items jump to the bottom of the viewport.

* Limit manga grid titles to two lines

* Remove "last page" info from MangaGrid

Info is not needed. The only thing the MangaGrid has to do is to trigger a request to load more data
2023-06-17 16:50:17 +02:00
schroda
3ad33b0a15 Reset scroll position when changing searchTerm (#373) 2023-06-17 16:29:55 +02:00
schroda
938b5166d9 Fix Library tab change animation (#372) 2023-06-17 15:45:52 +02:00
schroda
05fa6d8fa9 Never pass "searchTerm" for "filter" source content type request (#371)
There was an issue when switching from the "search" back to the "filter" source content type.
The "filter" request returned the data from the search request and thus, showed invalid data until the correct data was loaded instead of showing the loading placeholder
2023-06-17 15:45:43 +02:00
schroda
0495a932de Use the "disableCache" flag for the "filters" source content type request (#370) 2023-06-17 15:45:18 +02:00
schroda
64eb420ba6 Use same endpoint for search in SearchAll and SourceMangas (#368)
SearchAll used a different search endpoint and thus, the already requested pages for the search weren't reused and instead had to be requested again since the swr cache key was different
2023-06-17 15:45:06 +02:00
schroda
97c77027f2 Scroll to top when changing source manga content type (#365) 2023-06-16 00:15:13 +02:00
schroda
dcd5302a26 Fix/source mangas white screen when directly open page via url (#362)
* Correctly handle missing location state

In case the view gets opened directly via url, there won't be any location state.
This leads to a TypeError when trying to get "contentType" from the location state.
Issue was introduced with 4e8813b526 where the function was adapted incorrectly with code that will never work (good job me KEKW)

* Add info about dev mode + strict mode issue
2023-06-10 00:42:26 +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
63c1ac95eb Feature/remove use back to util (#360)
* Remove "useBackTo"

Not needed

* Use browser back navigation to close the reader

This will cause the previous page (manga or updates) to be opened instead of always opening the manga page
2023-06-08 14:25:24 +02:00
schroda
bbdbccf235 Prevent chapter revalidation on focus event in the Reader (#359)
This caused the reader to scroll back to the beginning of the current page.
And with the latest changes of 7f83bb9a0a the loading state was shown.
2023-06-08 13:56:25 +02:00
schroda
7f83bb9a0a Do not use stale chapter data for the reader (#358)
This caused the chapter to be loaded with stale data (the old lastPageRead state) and then jumping to the actual lastPageRead after the latest data was received.

It's not possible to mutate the chapter when updating lastPageRead since this causes the reader to always jump back to the just set lastPageRead when scrolling
2023-06-08 13:46:55 +02:00
schroda
67e554ede6 Prevent updating "lastPageRead" of chapter to the initial chapters "lastPageRead" (#357)
This could cause racing conditions with the chapter load which lead to the lastPageRead to be reset to 0
2023-06-08 13:43:58 +02:00
schroda
cce6ec0113 Preserve "SourceMangas" location state (#354)
Due to setting the "defaultBackTo" url the back button was a Link instead of a normal Button.
The Link causes the page to get opened like it's the first time and to get put on top of the browsers history stack. Instead of actually going back in the history.
Thus, the previous location state of the "SourceMangas" page was lost and the content type (browse, latest, filter) couldn't be reopened.
2023-06-08 13:40:08 +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
1ec6d77598 Fix/library title size info initial render flickering (#350)
* Rename variable

* Hide size tag until tabs data was loaded

The wrong loading state (mangas) was being used to check if the size tag can be shown.
2023-06-05 01:24:56 +02:00
schroda
61975b5c49 Feature/update dependency react to v18.x (#346)
* Update dependency "react" to v18.x

Update to v18.2.0

* Update dependency "react" to v18.x - Fix some dependency version issue

Something caused weird tsc issues, most likely a version mismatch since it got fixed by doing a clean install (deleting node_modules folder, yarn.lock and clearing the cache) of the dependencies

* Update dependency "react" to v18.x - Fix "i18n" tsc issues

* Update dependency "react" to v18.x - Fix tsc issue

Typography can only have a single child

* Update dependency "react" to v18.x - Prevent build warning

TODO: migrate to Vite

Gets used without being declared as a dependency.
Since CRA is unmaintained this will not get fixed.

* Update dependency "react" to v18.x - Use "createRoot"

* Update dependency "react" to v18.x - Fix dnd in strict mode
2023-06-04 21:40:04 +02:00
schroda
4e8813b526 Feature/update dependency react router dom to v6.x (#340)
* Update dependency "react-router-dom" to v6.x

Update to v6.11.2

* Update dependency "react-router-dom" to v6.x - Replace "Switch" with "Routes"

* Update dependency "react-router-dom" to v6.x - Relative paths

* Update dependency "react-router-dom" to v6.x - Nested routes

* Update dependency "react-router-dom" to v6.x - Prevent route warnings

 - Route without an element causes a warning message.
 - Routes with non-matching Route causes a warning message.

* Update dependency "react-router-dom" to v6.x - Replace "useHistory" with "useNavigate"

* Update dependency "react-router-dom" to v6.x - Fix "Link" usage

* Update dependency "react-router-dom" to v6.x - Overwrite "useParams" and "useLocations" typing

For both functions it's the users fault if they are getting used incorrectly.
It's inconvenient to always have to make sure the params exist (useParam) or to cast the return object to a specific type (useLocation)

 - "useParams": Make generic type non-optional
 - "useLocation": Add generic type

* Update dependency "react-router-dom" to v6.x - Fix use-query-params provider
2023-06-04 21:30:15 +02:00