Commit Graph

74 Commits

Author SHA1 Message Date
schroda
946c852828 Move category files into new folder 2024-10-05 23:35:23 +02:00
schroda
17e42ae012 Move migration files into new folder 2024-10-05 23:35:22 +02:00
schroda
7cf3849911 Move tracker files into new folder 2024-10-05 23:35:21 +02:00
schroda
64629fd979 Move source files into new folder 2024-10-05 23:35:18 +02:00
schroda
79341b7817 Move reader files into new folder 2024-10-05 23:35:17 +02:00
schroda
91e1f01de5 Move library files into new folder 2024-10-05 23:35:16 +02:00
schroda
18fc225d6c Move manga files into new folder 2024-10-05 23:35:13 +02:00
schroda
23a86a77f0 Move core files into new folder 2024-10-05 22:55:08 +02:00
schroda
12d12ccc48 Use custom themes 2024-09-05 21:57:15 +02:00
schroda
e909fc64fd Move "darkTheme" setting to "Appearance" page 2024-09-05 04:49:47 +02:00
schroda
053db4a1e3 Update manga page styling 2024-08-31 23:41:39 +02:00
schroda
b80622cb17 Prevent grid items from jumping after closing reader
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
2024-07-29 17:24:37 +02:00
schroda
5632c4584b Consider y-scrollbar when setting max-width
In case there was a y-scrollbar, the set max width caused the x-scrollbar to also appear
2024-07-13 13:01:33 +02:00
schroda
f43b7af3cd Refactor base app layout 2024-07-13 03:46:37 +02:00
schroda
37a371863f Set css color scheme via MUI 2024-05-20 16:23:11 +02:00
schroda
df66e180d8 Add setting to show duplicated library entries 2024-05-04 15:41:21 +02:00
schroda
ba3aefc854 Lazy load app routes 2024-04-30 00:39:47 +02:00
schroda
c4d77d2325 Globally inform about successful webUI updates
In case automatic webUI updates are disabled, the user gets informed about available updates
2024-04-21 15:03:24 +02:00
schroda
7725673dd7 Move ServerUpdateChecker to "util" folder 2024-04-21 12:52:31 +02:00
schroda
8178574815 Fix/remove deprecated routes (#747)
* 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
2024-04-14 18:08:15 +02:00
schroda
473e85a8ed Feature/use second level mui imports (#743)
* Require "Theme" to be passed to "SxProps"

Decreases typescript performance otherwise

* Disallow "top" and "third-level" MUI imports

* Exclude "node_modules" in tsconfig
2024-04-14 15:50:12 +02:00
schroda
d22bfaa55c Implement tracker login and logout 2024-03-29 00:45:38 +01:00
schroda
535cb1b359 Fix/save active device only in local storage (#643)
* Save "activeDevice" in the local storage

* Set default back to for "DeviceSetting"
2024-03-07 01:12:35 +01:00
schroda
4aec3c94ef Feature/support settings per device (#640)
* 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.
2024-03-06 23:07:48 +01:00
schroda
4b54b09395 Rename "ExtensionSettings" to "BrowseSettings" (#600) 2024-02-16 19:53:00 +01:00
schroda
e0c5e0521d Feature/manga migration (#536)
* Add "migration" tab to "Browse" screen

* Add missing useEffect cleanup for navbar title and actions

* Make "SourceGridLayout" reusable

* Add migration tab to "Browse"

* Add migration logic
2024-01-26 20:50:51 +01:00
schroda
69a62b6c2c Add webUI settings again (#564)
Was accidentally removed with e10cbf9e8f
2024-01-21 22:31:27 +01:00
schroda
e10cbf9e8f Add extension settings screen (#557) 2024-01-15 23:48:11 +01:00
schroda
05fa3d0732 Fix/chapter not getting deleted after being read (#532)
* 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.
2024-01-01 22:40:39 +01:00
schroda
3756b65256 Correctly check for dev env (#509) 2023-12-23 15:15:03 +01:00
schroda
b6b902797e Scroll to top when changing page (#493)
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
2023-12-10 15:58:21 +01:00
schroda
9cb72243d6 Automatically check for server updates (#489) 2023-12-09 23:20:52 +01:00
schroda
3766540ce5 Add WebUI settings (#460)
* Add WebUI settings

* [VersionMapping] Require server version "r1427" for preview
2023-11-20 22:14:24 +01:00
schroda
cac60fed2c Feature/server settings (#458)
* 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
2023-11-18 19:55:44 +01:00
schroda
14e7af9a4a Feature/modify download settings (#429)
* [Codegen] Update settings fragment

* Extract logic to change a number setting

* Show slider for global update interval setting

* Add download settings
2023-11-04 14:40:43 +01:00
schroda
5a5b12a9e1 [ESLint] Prefer named exports (#427) 2023-10-28 00:32:02 +02:00
schroda
b9480736c3 Log apollo errors 2023-10-27 20:23:01 +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
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
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
schroda
46a7ff6e3b Feature/refactor source mangas screen (#314)
* 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"
2023-05-28 12:16:06 +02:00
schroda
58eb2fead3 Feature/enforce license notice in each file via eslint rule (#304)
* [ESLint] Add "eslint-plugin-header" as dev dependency

* [ESLint::eslint-plugin-header] Setup rule

* [ESLint::eslint-plugin-header] Fix errors
2023-05-18 13:17:41 +02:00
schroda
9a27335760 Add option to include and exclude categories from the global update (#265) 2023-04-22 13:03:51 +02:00
schroda
23001a4298 update react scripts dependency (#255)
* 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
2023-03-11 20:35:58 +03:30
Aria Moradi
1c7c3e566c add i18n (#239) 2023-02-13 20:21:44 +03:30
Daniel
4e0a860dfd add prettier for auto formatting (#231)
* [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
2023-02-06 12:36:33 +03:30
Daniel
dca968fdb7 make default reader settings changeable (#217)
* [#214] Move "reader settings" util functions into new file

* [#214] Extract "options" of "ReaderSettings" to new component

* [#214] Add component for changing the default reader settings

* [#214] Add default "ReaderSettings" to "Settings"

* [#214] Use default "ReaderSettings" stored on the server

Wait for both "manga" and "defaultSettings" to be loaded.
Otherwise, by the time the "manga" response was received, the "defaultSettings" might be still loading and thus, the local fallback "default" settings will get used as the "default settings"

* [#214] Save and update "ReaderSettings" options in case they are missing

- Manga gets read the first time => save settings in metadata
- Default settings get opened the first time => save settings in global metadata
2023-01-06 20:04:16 +03:30
Valter Martinek
8dfc89ee17 Refactor/download queue and cleanup visuals overall (#202)
* Move context providers and configuration providers to separate component, extract theme to separate file

* Use custom palette color instead of direct colors

* Replace different clicable things with CardActionArea to get transition and links

* Refactor DownloadQueue, update layout, unify all the download progress indicators

* Unify active filter indicator

* Use divider instead of hr

* Fix background color in extensions light theme

* Fix thumbnail overlay in library screen list view

* Don't show download button on downloaded updates
2022-11-26 16:21:56 +03:30
Valter Martinek
6f8755fa05 Feature/swr for library screens (#186)
* Wrap data fetching in library and manga screen with swr for better dev and user experience. Refactor some API calls and data handling. Add manual refresh to manga detail.

* Fix manga card layout

* Fix refresh button position on small screens

* Revert "Fix manga card layout"

This reverts commit d85da3d8385e1ef64feed1789e4cd4591c8bd563.

* Fix manga not setting title

* Move chapters loading to Manga component, join data fetching, add auto online fetch if fetched data is old

* Revert some changes
2022-11-02 13:12:02 +03:30
robo
042172a072 mass search (#157)
* mass search

currently cripples server for like 2 mins on use

* works

its slow, really slow
but it don't break the server anymore

* concurrency using p-queue

* remove package.lock + search auto select

* sorting like yomi

* fix yarn.lock
2022-03-12 08:16:55 +03:30