Commit Graph

145 Commits

Author SHA1 Message Date
schroda
ad3b8d4567 Update server injected subpath detection 2025-09-25 00:20:31 +02:00
Soner Köksal
4d4477640e Add dynamic subpath support (#1011)
* Add dynamic subpath support for WebUI

- Add SubpathConfig utility for server-side subpath detection
- Configure React Router basename from server config
- Update API base URL handling for subpath compatibility
- Fix asset loading with relative paths
- Add VITE_SUBPATH environment variable for development
- Update locales and manifest paths for subpath support

Closes #174

* Move VITE_SUBPATH interface to vite-env.d.ts

* Ensure production bundle always uses relative base
2025-09-23 23:23:19 +02:00
github-actions[bot]
4a07198af6 Update available languages 2025-09-21 15:07:41 +00:00
github-actions[bot]
870174632b Update available languages 2025-08-18 23:32:49 +00:00
schroda
aee758916b Update available languages 2025-07-03 20:22:39 +02:00
schroda
53b31955af Update available languages 2025-05-17 19:05:09 +02:00
schroda
dbf06a54b9 Update available languages 2025-04-05 13:08:48 +02:00
schroda
5c770ffa62 Update available languages 2025-03-25 21:00:11 +01:00
schroda
c4ba483efe Add new languages to resources 2025-03-09 16:26:23 +01:00
schroda
09ff0f3ca0 Set i18n supported languages 2025-02-17 03:07:20 +01:00
schroda
0a34ae01ba Require languages to be at least 75% translated 2025-02-17 02:57:16 +01:00
schroda
61ae717e9a Add new languages to resources 2024-11-27 22:02:26 +01:00
schroda
6664efb48e Add new languages to resources 2024-08-05 16:07:15 +02:00
schroda
01ab88af62 Add new languages to resources 2024-07-17 22:54:26 +02:00
schroda
64c1ad6de3 Fix i18n type checking 2024-05-23 01:22:12 +02:00
schroda
b581c0d896 Add new languages to resources 2024-05-11 01:28:25 +02:00
schroda
082f923e10 Improve i18n resource typing 2024-04-24 23:56:06 +02:00
schroda
a7cafb59a4 Fix missing translations for language selection setting 2024-04-24 23:53:43 +02:00
schroda
6276da42cf Feature/i18n load resources from backend (#746)
* Load i18n resources from backend

* Move locales to public folder
2024-04-14 17:32:25 +02:00
schroda
43597e8428 Add new languages to resources 2024-04-14 17:28:19 +02:00
Hosted Weblate
3be6a0dab3 Translated using Weblate (Indonesian): currently translated at 10.6% (48 of 452 strings)
Translated using Weblate (Chinese (Simplified)): currently translated at 100.0% (452 of 452 strings)

Translated using Weblate (Spanish): currently translated at 100.0% (452 of 452 strings)

Translated using Weblate (Italian): currently translated at 10.4% (47 of 451 strings)

Translated using Weblate (Chinese (Simplified)): currently translated at 100.0% (451 of 451 strings)

Translated using Weblate (Spanish): currently translated at 100.0% (451 of 451 strings)

Translated using Weblate (Chinese (Simplified)): currently translated at 100.0% (449 of 449 strings)

Translated using Weblate (Chinese (Simplified)): currently translated at 100.0% (449 of 449 strings)

Translated using Weblate (Turkish): currently translated at 1.3% (6 of 449 strings)

Translated using Weblate (Vietnamese): currently translated at 62.8% (282 of 449 strings)

Translated using Weblate (Japanese): currently translated at 4.4% (20 of 449 strings)

Added translation using Weblate (Turkish)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Traditional))

Chinese (Traditional): currently translated at 99.1% (445 of 449 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (449 of 449 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (449 of 449 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (448 of 448 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (448 of 448 strings)

Translations update from Hosted Weblate

Translated using Weblate (Japanese)

Japanese: currently translated at 3.1% (14 of 447 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (447 of 447 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 98.8% (442 of 447 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (447 of 447 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (415 of 415 strings)

Translations update from Hosted Weblate

Translated using Weblate (French)

French: currently translated at 37.3% (155 of 415 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (415 of 415 strings)

Translations update from Hosted Weblate

Translated using Weblate (Vietnamese)

Vietnamese: currently translated at 67.8% (281 of 414 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (414 of 414 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (414 of 414 strings)

Translations update from Hosted Weblate

Translated using Weblate (Ukrainian)

Ukrainian: currently translated at 100.0% (413 of 413 strings)

Translations update from Hosted Weblate

Translated using Weblate (German)

German: currently translated at 47.9% (198 of 413 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (413 of 413 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (413 of 413 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Traditional))

Chinese (Traditional): currently translated at 97.0% (401 of 413 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (413 of 413 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 98.0% (405 of 413 strings)

Co-authored-by: Axel C <definsitecristofer@gmail.com>
Co-authored-by: Danylo Gavrylenko <g.danylo228@gmail.com>
Co-authored-by: Efe Devirgen <efedevirgen@gmail.com>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: HugoLeBoennec <hugo.leboennec@viacesi.fr>
Co-authored-by: PandaKewt <chuminhtuan30306@gmail.com>
Co-authored-by: Roberto Palmese <robix.email@gmail.com>
Co-authored-by: Siamese <Siamese2250@users.noreply.hosted.weblate.org>
Co-authored-by: Son of the Rocks <sonoftherocks@web.de>
Co-authored-by: ZerOriSama <godarms2010@live.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: ji jo (roczz2887) <rocmoezhao@gmail.com>
Co-authored-by: m0eak <moeakyou@gmail.com>
Co-authored-by: plum7x <plumgift@hotmail.com>
Co-authored-by: tongxin lou <loutongxin1@gmail.com>
Co-authored-by: 坂田银时 <3199616102@qq.com>
Co-authored-by: 小楼一夜听春雨 <gr2066878693@gmail.com>
Co-authored-by: 清水汐音 <chenzhongjie19940725@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/de/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/es/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/fr/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/id/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/it/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/ja/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/tr/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/uk/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/vi/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/zh_Hant/
Translation: Suwayomi/Suwayomi-WebUI
2024-04-14 16:26:04 +02:00
schroda
5edb14aefc Feature/settings auto downlaod add new exclude reuploads setting (#717)
* [Codegen] Update generated files

* [Tooling] Run ts-node with transpile only option

* Add new ignore re-uploads from auto download setting
2024-04-07 21:47:07 +02:00
schroda
29860482a6 Feature/browse source manga long press remove add manga from library (#710)
* Extract CategorySelect usage into hook

* Extract logic to change manga in library state into hook

* Change manga in library state on long press when browsing source
2024-04-07 15:33:08 +02:00
schroda
0d0cd54249 Fetch latest track data from tracker (#692) 2024-04-01 02:06:35 +02:00
schroda
9674b18d28 Feature/tracking unbind use new mutation (#688)
* [Codegen] Update generated files

* Use new "unbindTrack" mutation

* Add option to delete remote track on unbind

* [VersionMapping] Require server version "r1510" for preview
2024-04-01 00:45:44 +02:00
schroda
816cbee145 Add library filter for trackers 2024-03-29 00:45:38 +01:00
schroda
5dbf1ce30c Implement showing/updating/removing tracker bindings 2024-03-29 00:45:38 +01:00
schroda
66c57a542b Implement binding manga to tracker 2024-03-29 00:45:38 +01:00
schroda
d22bfaa55c Implement tracker login and logout 2024-03-29 00:45:38 +01:00
schroda
6186cb0ea3 Optionally hide library manga when browsing source (#665) 2024-03-23 23:44:46 +01:00
schroda
318c4a5040 Add option to delete downloaded chapters on migration (#655) 2024-03-16 13:45:54 +01:00
schroda
c005316f56 Feature/update iso languages (#652)
* Extract iso language list to new file

* Update iso language list

* Add function to get full iso language object

* Change i18n resource key of "Norwegian Bokmål"
2024-03-09 02:52:34 +01:00
schroda
5e6c1c1c1b Add new languages to resources (#650) 2024-03-09 01:56:13 +01:00
Hosted Weblate
f6f1993928 Translations update from Hosted Weblate
Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (413 of 413 strings)

Translations update from Hosted Weblate

Translated using Weblate (Portuguese)

Portuguese: currently translated at 23.6% (96 of 406 strings)

Translations update from Hosted Weblate

Translated using Weblate (Ukrainian)

Ukrainian: currently translated at 100.0% (406 of 406 strings)

Translations update from Hosted Weblate

Translated using Weblate (Norwegian Bokmål)

Norwegian Bokmål: currently translated at 2.4% (10 of 406 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (406 of 406 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (406 of 406 strings)

Translations update from Hosted Weblate

Added translation using Weblate (Norwegian Bokmål)

Translations update from Hosted Weblate

Translated using Weblate (Italian)

Italian: currently translated at 4.7% (19 of 401 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (401 of 401 strings)

Translations update from Hosted Weblate

Translated using Weblate (Swedish)

Swedish: currently translated at 3.9% (16 of 401 strings)

Translations update from Hosted Weblate

Translated using Weblate (Japanese)

Japanese: currently translated at 2.9% (12 of 401 strings)

Translations update from Hosted Weblate

Added translation using Weblate (Swedish)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Traditional))

Chinese (Traditional): currently translated at 100.0% (401 of 401 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (401 of 401 strings)

Co-authored-by: Alexander <contact@sneaky.pink>
Co-authored-by: Danylo Gavrylenko <g.danylo228@gmail.com>
Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Francesco La Bianca <francesco.labianca3d@gmail.com>
Co-authored-by: Gabriel Severo <gabrielssevero@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Kouki Kitamura <hackergaocn@outlook.com>
Co-authored-by: RintanBroadleaf <rintanbroadleaf@outlook.jp>
Co-authored-by: VR Kek <vrkekw88@gmail.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: guohuageng <guohuageng@gmail.com>
Co-authored-by: 清水汐音 <chenzhongjie19940725@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/es/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/it/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/ja/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/nb_NO/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/pt/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/sv/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/uk/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/zh_Hant/
Translation: Suwayomi/Suwayomi-WebUI
2024-03-09 00:26:55 +01:00
schroda
c0c30163c3 Validate device name (#642)
allow only
 - 16 chars
 - letters
 - numbers
 - "-"
 - "_"
2024-03-06 23:44:05 +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
fb0622e209 Add chapter action to open chapter on source (#634) 2024-03-02 16:11:39 +01:00
schroda
8bdf035ca7 Feature/add option to remove manga from categories when removing from library (#633)
* Optionally remove manga categories when removing them from library

* Use "Mangas::removeFromLibrary"

* Handle uncatched promises
2024-03-02 15:28:58 +01:00
schroda
eb233aef3d Feature/improve add to library category selection dialog (#631)
* Create "Categories" util class

* Only show add to library category selection in case categories exist

* Add edit categories button in select categories dialog

* Add option to disable add to library dialog to the dialog
2024-03-02 15:23:12 +01:00
Hosted Weblate
e34a30a79b Translations update from Hosted Weblate
Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (401 of 401 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (401 of 401 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (401 of 401 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 99.2% (398 of 401 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (398 of 398 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (398 of 398 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (397 of 397 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (397 of 397 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (397 of 397 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 99.7% (393 of 394 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Traditional))

Chinese (Traditional): currently translated at 100.0% (392 of 392 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Traditional))

Chinese (Traditional): currently translated at 98.7% (387 of 392 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (392 of 392 strings)

Translations update from Hosted Weblate

Translated using Weblate (French)

French: currently translated at 40.3% (158 of 392 strings)

Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: QuietBlade <yuanzhangzcc@163.com>
Co-authored-by: anvstin <aurelien.visentin@hotmail.fr>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: guohuageng <guohuageng@gmail.com>
Co-authored-by: plum7x <plumgift@hotmail.com>
Co-authored-by: 宮河ひより <hiyorituk@gmail.com>
Co-authored-by: 清水汐音 <chenzhongjie19940725@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/es/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/fr/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/zh_Hant/
Translation: Suwayomi/Suwayomi-WebUI
2024-02-23 20:25:39 +01:00
schroda
629b742140 Feature/settings add new socks proxy settings (#617)
* Add new socks settings

* [VersionMapping] Require server version "r1493" for preview
2024-02-22 00:25:12 +01:00
schroda
ceec260d14 Feature/reader setting add scale small pages (#615)
* Add option to stretch small pages

In case "fit page to window" is enabled, small pages can be scaled up to the available width and height, while maintaining the aspect ratio

* Cleanup "imageStyle" function
2024-02-21 02:42:07 +01:00
schroda
5a9618aefe Correctly update function refs when state changes (#611) 2024-02-18 15:20:30 +01:00
schroda
fd651b6165 Feature/add vui as webui flavor (#609)
* Remove unused "downloadAhead" function

* [Codegen] Update generated files

* Add "VUI" as webui flavor

* Add info about changing the webUI channel or flavor
2024-02-17 20:16:51 +01:00
schroda
4b54b09395 Rename "ExtensionSettings" to "BrowseSettings" (#600) 2024-02-16 19:53:00 +01:00
schroda
e383cc9ea8 Add info text to download ahead setting (#599)
Show info that current and next chapter have to be downloaded for this setting to work
2024-02-16 19:38:31 +01:00
schroda
2acf2b6d33 Feature/download ahead trigger chapter downloads client side (#597)
* Trigger download ahead while reading client side

* Trigger download ahead while reading earlier

Download ahead was only triggered once the chapter got marked as read

* Optionally ignore dupe chapters for download ahead

* Consider current chapters scanlator for dupe check

* Update download ahead related settings

- add new metadata setting for download ahead limit
- previous setting
  - rename
  - update usage (auto download new chapters limit)

* Select chapter to auto delete while reading depending on ignore dupe setting

Currently, the n-th to last chapter always got deleted ignoring if "ignore dupes" setting was enabled or not.

* Only auto delete chapter while reading if it is read

In case not the last read but the n-th to last read chapter should get auto deleted while reading, it currently just got deleted ignoring if it has been read or not.
2024-02-16 19:16:18 +01:00
Hosted Weblate
76e5c67417 Translations update from Hosted Weblate
Translated using Weblate (Chinese (Traditional))

Chinese (Traditional): currently translated at 98.7% (387 of 392 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (392 of 392 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Traditional))

Chinese (Traditional): currently translated at 98.2% (385 of 392 strings)

Translations update from Hosted Weblate

Translated using Weblate (Arabic)

Arabic: currently translated at 100.0% (392 of 392 strings)

Translations update from Hosted Weblate

Translated using Weblate (Arabic)

Arabic: currently translated at 16.8% (66 of 392 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (369 of 369 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (367 of 367 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (367 of 367 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (365 of 365 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (364 of 364 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (364 of 364 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (361 of 361 strings)

Translations update from Hosted Weblate

Translated using Weblate (Chinese (Simplified))

Chinese (Simplified): currently translated at 100.0% (361 of 361 strings)

Translations update from Hosted Weblate

Translated using Weblate (Spanish)

Spanish: currently translated at 100.0% (361 of 361 strings)

Co-authored-by: Fordas <fordas15@gmail.com>
Co-authored-by: Hosted Weblate <hosted@weblate.org>
Co-authored-by: Yuhyeong <lemar14r@gmail.com>
Co-authored-by: abdelbasset jabrane <ribago9317@cubene.com>
Co-authored-by: ccms <a18ccms@163.com>
Co-authored-by: gallegonovato <fran-carro@hotmail.es>
Co-authored-by: plum7x <plumgift@hotmail.com>
Co-authored-by: 宮河ひより <hiyorituk@gmail.com>
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/ar/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/es/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/zh_Hans/
Translate-URL: https://hosted.weblate.org/projects/suwayomi/suwayomi-webui/zh_Hant/
Translation: Suwayomi/Suwayomi-WebUI
2024-01-29 21:02:23 +01:00
schroda
18ca66cb40 Feature/settings add flaresolverr (#568)
* [Codegen] Update to server changes

* Set "dialogTitle" by default to "settingTitle" for "NumberSetting"

* Add FlareSolverr to settings

* [VersionMapping] Require server version "r1477" for preview

* Replace static strings with translation keys
2024-01-26 21:20:06 +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