* Require "Theme" to be passed to "SxProps"
Decreases typescript performance otherwise
* Disallow "top" and "third-level" MUI imports
* Exclude "node_modules" in tsconfig
* 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.
* 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.
* 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
* 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
* Introduce "RequestManager"
* Use "RequestManager" - Simple replacements
- Get rid of all "util/client" imports
- replace old requests with new "RequestManager"
- remove "fetcher" from global SWR config
instead of using the SWR hooks by themselves, the "requestManager" is supposed to be used
* Use "RequestManager" - Do requests via SWR hooks
Use SWR hooks at places where it's easily usable
* Prevent trailing slashes in the "baseUrl"
* Fix i18n tsc issue
"t" can return null by default.
This was already disabled in the config, but it had no effect on tsc.
* Fix translation in "DefaultNavBar"
key was missing and since this is a constant the translation wouldn't update in case the language got changed after first load.
* Enable typing for i18n translation keys
* Add translation keys
* Rename file
".d.ts" files are files that are automatically generated during compilation (in case option is set) and shouldn't be created manually.
* Export types and interfaces
* Add missing imports
* [Prettier] Increase max line length to 120
100 is quite low, especially on modern monitors.
The length is also reached quite quickly with 4 spaces per tab depending on the indentation depth
* [Prettier] Increase max line length to 120 - Fix formatting
* [Prettier] Add "prettier"
Makes the formatting of the code consistent.
By using the eslint-plugin-prettier formatting issues will be highlighted as a lint error.
These errors will be auto fixed by running "lint --fix" (which can be done automatically on file save)
* [Prettier] Add "prettier" - Fix formatting
* Fix library update progress rendering
The websocket sends a list with mangas for each category (completed, running, pending) instead of a number.
This resulted in the progress to always be 0
* Prevent TypeError
The "UpdateStatus" can have a "statusMap" that contains not data.
Co-authored-by: schroda <github@dasch.simplelogin.com>