* Refactor "SourceMangas"
* Refactor "SourceMangas" - Show loading placeholder on filter reset or submit
Due to the url being the same for all "filter requests" the loading state doesn't get changed by SWR.
Instead, only the "isValidating" state gets updated.
* Refactor "SourceMangas" - Update routing
* Refactor "SourceMangas" - Prevent duplicated mangas in grid
There is a possibility that the "latest" endpoint returns the same manga on different pages
* Always set the toolbar content on the manga page
"setAction" wasn't called on the manga page, thus, in case the previous page didn't unset the action, it never got unset
* Rename source content type "Browse" to "Popular"
* Prevent mutating passed object
Causes the options to not get reset correctly and/or to get set without "submitting" them
* Always use local filter state instead of requested one
The local filter state sometimes got overwritten by the state from the server response.
This resulted in showing an incorrect filter state while still sending the correct one to the server when filtering
* Update text filter faster
The timeout (2.5s) is too long and can cause the filter state to not have been updated by the time the filters are getting submitted.
Thus, causing a request with outdated filters and requiring a "re-submit" for the actual filters to get used.
* 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
* Move "dependencies" close to "devDependencies"
Makes it easier to have a quick overview
* Upgrade "react-scripts" to latest version
With new versions of node (> v16) the build scripts fails with the following error "error:0308010C:digital envelope routines::unsupported"
* Upgrade "react-scripts" to v5 - Fix import
* Upgrade "eslint" dependencies
The latest version of "react-scripts" uses eslint v8 causing the following error "... ERROR in Plugin "react" was conflicted between ".eslintrc.js" >> eslint-config-airbnb ..."
* Upgrade "eslint" dependencies - Allow nested components as props
* Upgrade "eslint" dependencies - Fix lint issues
* 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
* Refactor library options to match chapter options using shared component
* Disable some eslint rules
* Cleanup SourceOptions layout to use same components as other panels
* scrolling filters issue fix
scrolling after changing filters and not submitting works properly now
* fixed it
wasn't something i introduced just then, just forgot to fix
* source filters array on submit
* source genre filter
much the same as the library version
* undo
* base
base + SelectFilter + CheckBoxFilter
haven't done useQueryParam yet
* gui done
left to do:
1.saving the input data (so it don't disappear when closing the drawer)
2.post to update
3.reload list after drawer close
* done ish
* done im tired
* ok, actually done now
worked out the breaking that was happening in the last commit
im probably using useState for more than is nessessary, only really needed to do triggerUpdate and Data
* key error/warning fix
* issues all done
* remove junk
* jank back button fix
i re-used the query querystring
* reove single search
* boi was that a pain to fix
* Update App.tsx