Due to the reader and the "default" nav bar updating the same navbar width in the context, the grid item width calculation resulted in different grid item widths, which caused the items to "jump" after closing the reader
* Route to "/" in case path is unknown
* Remove deprecated routes
"sources" and "extensions" were merged into "browse" but the routes were never removed, thus, the paths still matched and opened the components
* Require "Theme" to be passed to "SxProps"
Decreases typescript performance otherwise
* Disallow "top" and "third-level" MUI imports
* Exclude "node_modules" in tsconfig
* 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.
* 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.
The scroll position was persisted when switching to a different page.
Thus, when the current page was scrolled down and the next page was also scrollable, the top of the new page was not visible
* Move "Server Address" setting to server settings
* Rename "ServerDirSetting" to "TextSetting"
* Use "TextSetting" for server address
* Reset value when closing the dialog
* Support passwords in "TextSetting"
* Add server settings
* [Codegen] Update settings fragment
* Extract logic to change a number setting
* Show slider for global update interval setting
* Add download settings
* 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