The automatic webUI update checks were not triggered in case the auto update setting was disabled but it was still possible for the update info dialog to be shown
* Require "Theme" to be passed to "SxProps"
Decreases typescript performance otherwise
* Disallow "top" and "third-level" MUI imports
* Exclude "node_modules" in tsconfig
* Correctly update search string on location change
Regression introduced with aab3e25031
* Remove unnecessary usage of "useSessionStorage"
This did not add anything and made no sense
* 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
In the reader the preloaded page requests were triggered before the actual page got rendered and thus, the image request of the rendered page had to wait for all the preloaded images to finish
* Use "fetch" instead of "axios"
Axios does not support prioritizing requests
* Deprioritize image requests
The browser requests images (<img>) with low priority by default.
Due to switching to loading images via axios (f852ce70e7), the image requests had the same priority as other requests and thus blocked e.g. xhr requests
* Use request manager to preload images in DoublePagedPager
Was forgotten to update along with f852ce70e7
The requests for the preload also never got aborted
* Revoke object urls after load
* 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
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"
* Auto open search correctly in global search
* Update search input when navigating to previous/next location
* Revert: Navigate to previous page when canceling search
Has to many edge cases and fixing them would require a global history stack which gets saved in the location state.
This then would lead to the apps internal back navigation to be the same as the browsers which is not wanted, since you should not get moved deeper into the apps navigation when clicking the back button
* Correctly autofocus search input
Sometimes the autofocus did not work, since the input did not exist yet by the time the timeout was triggered
* Restore search input open state when navigation to previous/next location
* Restore search input focus when navigating to previous/next location
* Require search to be committed with enter
* Extract back navigation logic into hook
* Navigate to previous page when canceling search
This makes the search the next page in the history stack instead of making it the previous one
* Close and open search depending on the location and available query
* Navigate to previous page in case new query is empty
* 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
* 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
* Update dependency "mui" to v5.x
Update to v5.13.3
Fixes issue of "SxProps" not being exported by "@mui/material"
* Update dependency "mui" to v5.x - Fix grid item size
Update to v5.13.3
Fixes issue of "SxProps" not being exported by "@mui/material"
* Update dependency "mui" to v5.x - Replace "ListItem" with "ListItemButton"
* Update dependency "mui" to v5.x - Fix tsc issue
* Update dependency "mui" to v5.x - Prevent reader white screen
Due to "initialChapter" being a function returning an object, it causes a re-render everytime due to it (the object) being used as a dependency.
This caused a white screen when skipping to the previous or next chapter
* Use "RequestManager" for loading updates
* [Cleanup] Fix typing
* Memoize grouped updates
* [TSConfig] Increase target version
Makes it possible to iterate over a "IterableIterator" (e.g. [...<Map>.entries()])
* Use "GroupedVirtuoso" for "Updates" screen
* Optionally use "padding" instead of margin for the loading placeholder
In case the loading placeholder gets used in a "react-virtuoso" list, the margin might cause issues with the calculated height.
* Use "padding" instead of "margin"
"Margin" breaks "react-virtuosos" height calculation
* Add background color to group header
With virtuoso the group headers are sticky, thus, a background color is needed
* Simplify "groupByDate" object structure
It's not necessary to save the items inside the group object