diff --git a/app/Console/Commands/CleanupReadingHistories.php b/app/Console/Commands/CleanupReadingHistories.php index f7f0113..6ea0932 100644 --- a/app/Console/Commands/CleanupReadingHistories.php +++ b/app/Console/Commands/CleanupReadingHistories.php @@ -63,7 +63,7 @@ class CleanupReadingHistories extends Command /** * Clean up duplicate reading histories for a single user. * - * @param \App\Models\User $user + * @param User $user * @return void */ protected function cleanUpForUser(User $user): void diff --git a/app/Http/Controllers/ComicController.php b/app/Http/Controllers/ComicController.php index 32ad4f7..f5192cc 100644 --- a/app/Http/Controllers/ComicController.php +++ b/app/Http/Controllers/ComicController.php @@ -59,6 +59,21 @@ class ComicController extends Controller return str_replace(array_keys($this->zhConversion::ZH_TO_HANT), array_values($this->zhConversion::ZH_TO_HANT), $string); } + public function toggleHistory(Request $request): JsonResponse + { + if ($request->session()->has('historyDisabled')) { + $newValue = !$request->session()->get('historyDisabled'); + } else { + $newValue = true; + } + + // Put Session + $request->session()->put('historyDisabled', $newValue); + + // Return to frontend + return response()->json(['historyDisabled' => $newValue]); + } + /** * Show user favourites * @@ -323,7 +338,9 @@ class ComicController extends Controller ImageUpsert::dispatch($comicObj->id, $chapterObj->id, $chapter); // Update history - $request->user()->readingHistories()->attach($chapterObj->id, ['comic_id' => $comicObj->id]); + if (!$request->session()->get('historyDisabled', false)) { + $request->user()->readingHistories()->attach($chapterObj->id, ['comic_id' => $comicObj->id]); + } // Get chapters from DB $chapters = $comicObj->chapters()->where('metadata->group_path_word', $chapter['chapter']['group_path_word'])->orderBy('order')->get(['name', 'chapter_uuid']); diff --git a/app/Http/Controllers/PagesController.php b/app/Http/Controllers/PagesController.php index 060129c..0267e2d 100644 --- a/app/Http/Controllers/PagesController.php +++ b/app/Http/Controllers/PagesController.php @@ -13,13 +13,12 @@ class PagesController { /** - * @param Request $request * @param string $path * @return ResponseFactory|Application|\Illuminate\Http\Response|Response */ - public function show(Request $request, string $path = '') + public function show(string $path = '') { - if (!File::exists(resource_path("js/Pages/Pages/$path.jsx"))) { + if (!File::exists(resource_path("js/Pages/Pages/{$path}.jsx"))) { return response('Page not found', 404); } diff --git a/app/Http/Resources/UserCollection.php b/app/Http/Resources/UserCollection.php index a6f2be2..e3f65e2 100644 --- a/app/Http/Resources/UserCollection.php +++ b/app/Http/Resources/UserCollection.php @@ -19,7 +19,8 @@ class UserCollection extends ResourceCollection 'name' => $request->user()->name, 'email' => $request->user()->email, 'settings' => $request->user()->settings, - 'favourites' => $request->user()->favourites()->get(['pathword'])->pluck('pathword') + 'favourites' => $request->user()->favourites()->get(['pathword'])->pluck('pathword'), + 'historyDisabled' => $request->session()->get('historyDisabled', false), ]; } } diff --git a/app/Models/User.php b/app/Models/User.php index aabadc8..fda6e55 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -55,16 +55,25 @@ class User extends Authenticatable implements MustVerifyEmail ]; } + /** + * @return BelongsToMany + */ public function favourites(): BelongsToMany { return $this->belongsToMany(Comic::class, 'user_favourite')->withTimestamps(); } + /** + * @return BelongsToMany + */ public function readingHistories(): BelongsToMany { return $this->belongsToMany(Chapter::class, 'reading_histories')->withTimestamps(); } + /** + * @return array + */ public function cleanUpReadingHistories(): array { // Get the user's ID diff --git a/bun.lockb b/bun.lockb index 7d3305e..2c15e1b 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/composer.lock b/composer.lock index 6311a4a..6a83d45 100644 --- a/composer.lock +++ b/composer.lock @@ -970,16 +970,16 @@ }, { "name": "guzzlehttp/uri-template", - "version": "v1.0.3", + "version": "v1.0.4", "source": { "type": "git", "url": "https://github.com/guzzle/uri-template.git", - "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c" + "reference": "30e286560c137526eccd4ce21b2de477ab0676d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/uri-template/zipball/ecea8feef63bd4fef1f037ecb288386999ecc11c", - "reference": "ecea8feef63bd4fef1f037ecb288386999ecc11c", + "url": "https://api.github.com/repos/guzzle/uri-template/zipball/30e286560c137526eccd4ce21b2de477ab0676d2", + "reference": "30e286560c137526eccd4ce21b2de477ab0676d2", "shasum": "" }, "require": { @@ -1036,7 +1036,7 @@ ], "support": { "issues": "https://github.com/guzzle/uri-template/issues", - "source": "https://github.com/guzzle/uri-template/tree/v1.0.3" + "source": "https://github.com/guzzle/uri-template/tree/v1.0.4" }, "funding": [ { @@ -1052,7 +1052,7 @@ "type": "tidelift" } ], - "time": "2023-12-03T19:50:20+00:00" + "time": "2025-02-03T10:55:03+00:00" }, { "name": "inertiajs/inertia-laravel", @@ -1189,16 +1189,16 @@ }, { "name": "laravel/framework", - "version": "v11.39.0", + "version": "v11.41.3", "source": { "type": "git", "url": "https://github.com/laravel/framework.git", - "reference": "996c96955f78e8a2b26a24c490a1721cfb14574f" + "reference": "3ef433d5865f30a19b6b1be247586068399b59cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/framework/zipball/996c96955f78e8a2b26a24c490a1721cfb14574f", - "reference": "996c96955f78e8a2b26a24c490a1721cfb14574f", + "url": "https://api.github.com/repos/laravel/framework/zipball/3ef433d5865f30a19b6b1be247586068399b59cc", + "reference": "3ef433d5865f30a19b6b1be247586068399b59cc", "shasum": "" }, "require": { @@ -1224,7 +1224,7 @@ "league/flysystem-local": "^3.25.1", "league/uri": "^7.5.1", "monolog/monolog": "^3.0", - "nesbot/carbon": "^2.72.2|^3.4", + "nesbot/carbon": "^2.72.6|^3.8.4", "nunomaduro/termwind": "^2.0", "php": "^8.2", "psr/container": "^1.1.1|^2.0.1", @@ -1299,6 +1299,7 @@ "fakerphp/faker": "^1.24", "guzzlehttp/promises": "^2.0.3", "guzzlehttp/psr7": "^2.4", + "laravel/pint": "^1.18", "league/flysystem-aws-s3-v3": "^3.25.1", "league/flysystem-ftp": "^3.25.1", "league/flysystem-path-prefixing": "^3.25.1", @@ -1399,7 +1400,7 @@ "issues": "https://github.com/laravel/framework/issues", "source": "https://github.com/laravel/framework" }, - "time": "2025-01-21T15:02:43+00:00" + "time": "2025-01-30T13:25:22+00:00" }, { "name": "laravel/horizon", @@ -1483,16 +1484,16 @@ }, { "name": "laravel/prompts", - "version": "v0.3.3", + "version": "v0.3.4", "source": { "type": "git", "url": "https://github.com/laravel/prompts.git", - "reference": "749395fcd5f8f7530fe1f00dfa84eb22c83d94ea" + "reference": "abeaa2ba4294247d5409490d1ca1bc6248087011" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/prompts/zipball/749395fcd5f8f7530fe1f00dfa84eb22c83d94ea", - "reference": "749395fcd5f8f7530fe1f00dfa84eb22c83d94ea", + "url": "https://api.github.com/repos/laravel/prompts/zipball/abeaa2ba4294247d5409490d1ca1bc6248087011", + "reference": "abeaa2ba4294247d5409490d1ca1bc6248087011", "shasum": "" }, "require": { @@ -1506,7 +1507,7 @@ "laravel/framework": ">=10.17.0 <10.25.0" }, "require-dev": { - "illuminate/collections": "^10.0|^11.0", + "illuminate/collections": "^10.0|^11.0|^12.0", "mockery/mockery": "^1.5", "pestphp/pest": "^2.3|^3.4", "phpstan/phpstan": "^1.11", @@ -1536,38 +1537,38 @@ "description": "Add beautiful and user-friendly forms to your command-line applications.", "support": { "issues": "https://github.com/laravel/prompts/issues", - "source": "https://github.com/laravel/prompts/tree/v0.3.3" + "source": "https://github.com/laravel/prompts/tree/v0.3.4" }, - "time": "2024-12-30T15:53:31+00:00" + "time": "2025-01-24T15:41:01+00:00" }, { "name": "laravel/sanctum", - "version": "v4.0.7", + "version": "v4.0.8", "source": { "type": "git", "url": "https://github.com/laravel/sanctum.git", - "reference": "698064236a46df016e64a7eb059b1414e0b281df" + "reference": "ec1dd9ddb2ab370f79dfe724a101856e0963f43c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sanctum/zipball/698064236a46df016e64a7eb059b1414e0b281df", - "reference": "698064236a46df016e64a7eb059b1414e0b281df", + "url": "https://api.github.com/repos/laravel/sanctum/zipball/ec1dd9ddb2ab370f79dfe724a101856e0963f43c", + "reference": "ec1dd9ddb2ab370f79dfe724a101856e0963f43c", "shasum": "" }, "require": { "ext-json": "*", - "illuminate/console": "^11.0", - "illuminate/contracts": "^11.0", - "illuminate/database": "^11.0", - "illuminate/support": "^11.0", + "illuminate/console": "^11.0|^12.0", + "illuminate/contracts": "^11.0|^12.0", + "illuminate/database": "^11.0|^12.0", + "illuminate/support": "^11.0|^12.0", "php": "^8.2", "symfony/console": "^7.0" }, "require-dev": { "mockery/mockery": "^1.6", - "orchestra/testbench": "^9.0", + "orchestra/testbench": "^9.0|^10.0", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^10.5" + "phpunit/phpunit": "^11.3" }, "type": "library", "extra": { @@ -1602,29 +1603,29 @@ "issues": "https://github.com/laravel/sanctum/issues", "source": "https://github.com/laravel/sanctum" }, - "time": "2024-12-11T16:40:21+00:00" + "time": "2025-01-26T19:34:36+00:00" }, { "name": "laravel/serializable-closure", - "version": "v2.0.1", + "version": "v2.0.2", "source": { "type": "git", "url": "https://github.com/laravel/serializable-closure.git", - "reference": "613b2d4998f85564d40497e05e89cb6d9bd1cbe8" + "reference": "2e1a362527783bcab6c316aad51bf36c5513ae44" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/613b2d4998f85564d40497e05e89cb6d9bd1cbe8", - "reference": "613b2d4998f85564d40497e05e89cb6d9bd1cbe8", + "url": "https://api.github.com/repos/laravel/serializable-closure/zipball/2e1a362527783bcab6c316aad51bf36c5513ae44", + "reference": "2e1a362527783bcab6c316aad51bf36c5513ae44", "shasum": "" }, "require": { "php": "^8.1" }, "require-dev": { - "illuminate/support": "^10.0|^11.0", + "illuminate/support": "^10.0|^11.0|^12.0", "nesbot/carbon": "^2.67|^3.0", - "pestphp/pest": "^2.36", + "pestphp/pest": "^2.36|^3.0", "phpstan/phpstan": "^2.0", "symfony/var-dumper": "^6.2.0|^7.0.0" }, @@ -1663,26 +1664,26 @@ "issues": "https://github.com/laravel/serializable-closure/issues", "source": "https://github.com/laravel/serializable-closure" }, - "time": "2024-12-16T15:26:28+00:00" + "time": "2025-01-24T15:42:37+00:00" }, { "name": "laravel/tinker", - "version": "v2.10.0", + "version": "v2.10.1", "source": { "type": "git", "url": "https://github.com/laravel/tinker.git", - "reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5" + "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/tinker/zipball/ba4d51eb56de7711b3a37d63aa0643e99a339ae5", - "reference": "ba4d51eb56de7711b3a37d63aa0643e99a339ae5", + "url": "https://api.github.com/repos/laravel/tinker/zipball/22177cc71807d38f2810c6204d8f7183d88a57d3", + "reference": "22177cc71807d38f2810c6204d8f7183d88a57d3", "shasum": "" }, "require": { - "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", - "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", - "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0", + "illuminate/console": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/contracts": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", + "illuminate/support": "^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0", "php": "^7.2.5|^8.0", "psy/psysh": "^0.11.1|^0.12.0", "symfony/var-dumper": "^4.3.4|^5.0|^6.0|^7.0" @@ -1690,10 +1691,10 @@ "require-dev": { "mockery/mockery": "~1.3.3|^1.4.2", "phpstan/phpstan": "^1.10", - "phpunit/phpunit": "^8.5.8|^9.3.3" + "phpunit/phpunit": "^8.5.8|^9.3.3|^10.0" }, "suggest": { - "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0)." + "illuminate/database": "The Illuminate Database package (^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0)." }, "type": "library", "extra": { @@ -1727,9 +1728,9 @@ ], "support": { "issues": "https://github.com/laravel/tinker/issues", - "source": "https://github.com/laravel/tinker/tree/v2.10.0" + "source": "https://github.com/laravel/tinker/tree/v2.10.1" }, - "time": "2024-09-23T13:32:56+00:00" + "time": "2025-01-27T14:24:01+00:00" }, { "name": "league/commonmark", @@ -3852,16 +3853,16 @@ }, { "name": "sentry/sentry-laravel", - "version": "4.10.2", + "version": "4.12.0", "source": { "type": "git", "url": "https://github.com/getsentry/sentry-laravel.git", - "reference": "0e2e5bc4311da51349487afcf67b8fca937f6d94" + "reference": "da1ee3417dfb3576a6aaa0f8b25892ebdb98fdb0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/0e2e5bc4311da51349487afcf67b8fca937f6d94", - "reference": "0e2e5bc4311da51349487afcf67b8fca937f6d94", + "url": "https://api.github.com/repos/getsentry/sentry-laravel/zipball/da1ee3417dfb3576a6aaa0f8b25892ebdb98fdb0", + "reference": "da1ee3417dfb3576a6aaa0f8b25892ebdb98fdb0", "shasum": "" }, "require": { @@ -3925,7 +3926,7 @@ ], "support": { "issues": "https://github.com/getsentry/sentry-laravel/issues", - "source": "https://github.com/getsentry/sentry-laravel/tree/4.10.2" + "source": "https://github.com/getsentry/sentry-laravel/tree/4.12.0" }, "funding": [ { @@ -3937,7 +3938,7 @@ "type": "custom" } ], - "time": "2024-12-17T11:38:58+00:00" + "time": "2025-02-05T13:13:03+00:00" }, { "name": "symfony/clock", @@ -4240,16 +4241,16 @@ }, { "name": "symfony/error-handler", - "version": "v7.2.1", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/error-handler.git", - "reference": "6150b89186573046167796fa5f3f76601d5145f8" + "reference": "959a74d044a6db21f4caa6d695648dcb5584cb49" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/error-handler/zipball/6150b89186573046167796fa5f3f76601d5145f8", - "reference": "6150b89186573046167796fa5f3f76601d5145f8", + "url": "https://api.github.com/repos/symfony/error-handler/zipball/959a74d044a6db21f4caa6d695648dcb5584cb49", + "reference": "959a74d044a6db21f4caa6d695648dcb5584cb49", "shasum": "" }, "require": { @@ -4295,7 +4296,7 @@ "description": "Provides tools to manage errors and ease debugging PHP code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/error-handler/tree/v7.2.1" + "source": "https://github.com/symfony/error-handler/tree/v7.2.3" }, "funding": [ { @@ -4311,7 +4312,7 @@ "type": "tidelift" } ], - "time": "2024-12-07T08:50:44+00:00" + "time": "2025-01-07T09:39:55+00:00" }, { "name": "symfony/event-dispatcher", @@ -4535,16 +4536,16 @@ }, { "name": "symfony/http-foundation", - "version": "v7.2.2", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "62d1a43796ca3fea3f83a8470dfe63a4af3bc588" + "reference": "ee1b504b8926198be89d05e5b6fc4c3810c090f0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/62d1a43796ca3fea3f83a8470dfe63a4af3bc588", - "reference": "62d1a43796ca3fea3f83a8470dfe63a4af3bc588", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/ee1b504b8926198be89d05e5b6fc4c3810c090f0", + "reference": "ee1b504b8926198be89d05e5b6fc4c3810c090f0", "shasum": "" }, "require": { @@ -4593,7 +4594,7 @@ "description": "Defines an object-oriented layer for the HTTP specification", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-foundation/tree/v7.2.2" + "source": "https://github.com/symfony/http-foundation/tree/v7.2.3" }, "funding": [ { @@ -4609,20 +4610,20 @@ "type": "tidelift" } ], - "time": "2024-12-30T19:00:17+00:00" + "time": "2025-01-17T10:56:55+00:00" }, { "name": "symfony/http-kernel", - "version": "v7.2.2", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "3c432966bd8c7ec7429663105f5a02d7e75b4306" + "reference": "caae9807f8e25a9b43ce8cc6fafab6cf91f0cc9b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/3c432966bd8c7ec7429663105f5a02d7e75b4306", - "reference": "3c432966bd8c7ec7429663105f5a02d7e75b4306", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/caae9807f8e25a9b43ce8cc6fafab6cf91f0cc9b", + "reference": "caae9807f8e25a9b43ce8cc6fafab6cf91f0cc9b", "shasum": "" }, "require": { @@ -4707,7 +4708,7 @@ "description": "Provides a structured process for converting a Request into a Response", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/http-kernel/tree/v7.2.2" + "source": "https://github.com/symfony/http-kernel/tree/v7.2.3" }, "funding": [ { @@ -4723,20 +4724,20 @@ "type": "tidelift" } ], - "time": "2024-12-31T14:59:40+00:00" + "time": "2025-01-29T07:40:13+00:00" }, { "name": "symfony/mailer", - "version": "v7.2.0", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/mailer.git", - "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc" + "reference": "f3871b182c44997cf039f3b462af4a48fb85f9d3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mailer/zipball/e4d358702fb66e4c8a2af08e90e7271a62de39cc", - "reference": "e4d358702fb66e4c8a2af08e90e7271a62de39cc", + "url": "https://api.github.com/repos/symfony/mailer/zipball/f3871b182c44997cf039f3b462af4a48fb85f9d3", + "reference": "f3871b182c44997cf039f3b462af4a48fb85f9d3", "shasum": "" }, "require": { @@ -4787,7 +4788,7 @@ "description": "Helps sending emails", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/mailer/tree/v7.2.0" + "source": "https://github.com/symfony/mailer/tree/v7.2.3" }, "funding": [ { @@ -4803,20 +4804,20 @@ "type": "tidelift" } ], - "time": "2024-11-25T15:21:05+00:00" + "time": "2025-01-27T11:08:17+00:00" }, { "name": "symfony/mime", - "version": "v7.2.1", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/mime.git", - "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283" + "reference": "2fc3b4bd67e4747e45195bc4c98bea4628476204" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/mime/zipball/7f9617fcf15cb61be30f8b252695ed5e2bfac283", - "reference": "7f9617fcf15cb61be30f8b252695ed5e2bfac283", + "url": "https://api.github.com/repos/symfony/mime/zipball/2fc3b4bd67e4747e45195bc4c98bea4628476204", + "reference": "2fc3b4bd67e4747e45195bc4c98bea4628476204", "shasum": "" }, "require": { @@ -4871,7 +4872,7 @@ "mime-type" ], "support": { - "source": "https://github.com/symfony/mime/tree/v7.2.1" + "source": "https://github.com/symfony/mime/tree/v7.2.3" }, "funding": [ { @@ -4887,7 +4888,7 @@ "type": "tidelift" } ], - "time": "2024-12-07T08:50:44+00:00" + "time": "2025-01-27T11:08:17+00:00" }, { "name": "symfony/options-resolver", @@ -5738,16 +5739,16 @@ }, { "name": "symfony/routing", - "version": "v7.2.0", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e" + "reference": "ee9a67edc6baa33e5fae662f94f91fd262930996" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/e10a2450fa957af6c448b9b93c9010a4e4c0725e", - "reference": "e10a2450fa957af6c448b9b93c9010a4e4c0725e", + "url": "https://api.github.com/repos/symfony/routing/zipball/ee9a67edc6baa33e5fae662f94f91fd262930996", + "reference": "ee9a67edc6baa33e5fae662f94f91fd262930996", "shasum": "" }, "require": { @@ -5799,7 +5800,7 @@ "url" ], "support": { - "source": "https://github.com/symfony/routing/tree/v7.2.0" + "source": "https://github.com/symfony/routing/tree/v7.2.3" }, "funding": [ { @@ -5815,7 +5816,7 @@ "type": "tidelift" } ], - "time": "2024-11-25T11:08:51+00:00" + "time": "2025-01-17T10:56:55+00:00" }, { "name": "symfony/service-contracts", @@ -6236,16 +6237,16 @@ }, { "name": "symfony/var-dumper", - "version": "v7.2.0", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/var-dumper.git", - "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c" + "reference": "82b478c69745d8878eb60f9a049a4d584996f73a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-dumper/zipball/c6a22929407dec8765d6e2b6ff85b800b245879c", - "reference": "c6a22929407dec8765d6e2b6ff85b800b245879c", + "url": "https://api.github.com/repos/symfony/var-dumper/zipball/82b478c69745d8878eb60f9a049a4d584996f73a", + "reference": "82b478c69745d8878eb60f9a049a4d584996f73a", "shasum": "" }, "require": { @@ -6299,7 +6300,7 @@ "dump" ], "support": { - "source": "https://github.com/symfony/var-dumper/tree/v7.2.0" + "source": "https://github.com/symfony/var-dumper/tree/v7.2.3" }, "funding": [ { @@ -6315,20 +6316,20 @@ "type": "tidelift" } ], - "time": "2024-11-08T15:48:14+00:00" + "time": "2025-01-17T11:39:41+00:00" }, { "name": "tightenco/ziggy", - "version": "v2.4.2", + "version": "v2.5.1", "source": { "type": "git", "url": "https://github.com/tighten/ziggy.git", - "reference": "6612c8c9b2d5b3e74fd67c58c11465df1273f384" + "reference": "40df446f6053787edb245381c3b3d80b031b5fc0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/tighten/ziggy/zipball/6612c8c9b2d5b3e74fd67c58c11465df1273f384", - "reference": "6612c8c9b2d5b3e74fd67c58c11465df1273f384", + "url": "https://api.github.com/repos/tighten/ziggy/zipball/40df446f6053787edb245381c3b3d80b031b5fc0", + "reference": "40df446f6053787edb245381c3b3d80b031b5fc0", "shasum": "" }, "require": { @@ -6383,9 +6384,9 @@ ], "support": { "issues": "https://github.com/tighten/ziggy/issues", - "source": "https://github.com/tighten/ziggy/tree/v2.4.2" + "source": "https://github.com/tighten/ziggy/tree/v2.5.1" }, - "time": "2025-01-02T20:06:52+00:00" + "time": "2025-01-31T19:23:01+00:00" }, { "name": "tijsverkoyen/css-to-inline-styles", @@ -6924,16 +6925,16 @@ }, { "name": "filp/whoops", - "version": "2.16.0", + "version": "2.17.0", "source": { "type": "git", "url": "https://github.com/filp/whoops.git", - "reference": "befcdc0e5dce67252aa6322d82424be928214fa2" + "reference": "075bc0c26631110584175de6523ab3f1652eb28e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/filp/whoops/zipball/befcdc0e5dce67252aa6322d82424be928214fa2", - "reference": "befcdc0e5dce67252aa6322d82424be928214fa2", + "url": "https://api.github.com/repos/filp/whoops/zipball/075bc0c26631110584175de6523ab3f1652eb28e", + "reference": "075bc0c26631110584175de6523ab3f1652eb28e", "shasum": "" }, "require": { @@ -6983,7 +6984,7 @@ ], "support": { "issues": "https://github.com/filp/whoops/issues", - "source": "https://github.com/filp/whoops/tree/2.16.0" + "source": "https://github.com/filp/whoops/tree/2.17.0" }, "funding": [ { @@ -6991,7 +6992,7 @@ "type": "github" } ], - "time": "2024-09-25T12:00:00+00:00" + "time": "2025-01-25T12:00:00+00:00" }, { "name": "hamcrest/hamcrest-php", @@ -7046,16 +7047,16 @@ }, { "name": "laravel/breeze", - "version": "v2.3.2", + "version": "v2.3.3", "source": { "type": "git", "url": "https://github.com/laravel/breeze.git", - "reference": "2a4764055792b14e0e571a710adbda9c9eb300d4" + "reference": "c40f7fce4fd80e39c7f4317697eeba21d2344003" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/breeze/zipball/2a4764055792b14e0e571a710adbda9c9eb300d4", - "reference": "2a4764055792b14e0e571a710adbda9c9eb300d4", + "url": "https://api.github.com/repos/laravel/breeze/zipball/c40f7fce4fd80e39c7f4317697eeba21d2344003", + "reference": "c40f7fce4fd80e39c7f4317697eeba21d2344003", "shasum": "" }, "require": { @@ -7103,39 +7104,39 @@ "issues": "https://github.com/laravel/breeze/issues", "source": "https://github.com/laravel/breeze" }, - "time": "2025-01-21T14:57:42+00:00" + "time": "2025-01-26T19:08:50+00:00" }, { "name": "laravel/pail", - "version": "v1.2.1", + "version": "v1.2.2", "source": { "type": "git", "url": "https://github.com/laravel/pail.git", - "reference": "353ac12134b98e2e7c3333d916bd3e523931e583" + "reference": "f31f4980f52be17c4667f3eafe034e6826787db2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/pail/zipball/353ac12134b98e2e7c3333d916bd3e523931e583", - "reference": "353ac12134b98e2e7c3333d916bd3e523931e583", + "url": "https://api.github.com/repos/laravel/pail/zipball/f31f4980f52be17c4667f3eafe034e6826787db2", + "reference": "f31f4980f52be17c4667f3eafe034e6826787db2", "shasum": "" }, "require": { "ext-mbstring": "*", - "illuminate/console": "^10.24|^11.0", - "illuminate/contracts": "^10.24|^11.0", - "illuminate/log": "^10.24|^11.0", - "illuminate/process": "^10.24|^11.0", - "illuminate/support": "^10.24|^11.0", + "illuminate/console": "^10.24|^11.0|^12.0", + "illuminate/contracts": "^10.24|^11.0|^12.0", + "illuminate/log": "^10.24|^11.0|^12.0", + "illuminate/process": "^10.24|^11.0|^12.0", + "illuminate/support": "^10.24|^11.0|^12.0", "nunomaduro/termwind": "^1.15|^2.0", "php": "^8.2", "symfony/console": "^6.0|^7.0" }, "require-dev": { - "laravel/framework": "^10.24|^11.0", + "laravel/framework": "^10.24|^11.0|^12.0", "laravel/pint": "^1.13", - "orchestra/testbench-core": "^8.12|^9.0", - "pestphp/pest": "^2.20", - "pestphp/pest-plugin-type-coverage": "^2.3", + "orchestra/testbench-core": "^8.13|^9.0|^10.0", + "pestphp/pest": "^2.20|^3.0", + "pestphp/pest-plugin-type-coverage": "^2.3|^3.0", "phpstan/phpstan": "^1.10", "symfony/var-dumper": "^6.3|^7.0" }, @@ -7181,7 +7182,7 @@ "issues": "https://github.com/laravel/pail/issues", "source": "https://github.com/laravel/pail" }, - "time": "2024-10-23T12:56:23+00:00" + "time": "2025-01-28T15:15:15+00:00" }, { "name": "laravel/pint", @@ -7251,28 +7252,28 @@ }, { "name": "laravel/sail", - "version": "v1.40.0", + "version": "v1.41.0", "source": { "type": "git", "url": "https://github.com/laravel/sail.git", - "reference": "237e70656d8eface4839de51d101284bd5d0cf71" + "reference": "fe1a4ada0abb5e4bd99eb4e4b0d87906c00cdeec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/laravel/sail/zipball/237e70656d8eface4839de51d101284bd5d0cf71", - "reference": "237e70656d8eface4839de51d101284bd5d0cf71", + "url": "https://api.github.com/repos/laravel/sail/zipball/fe1a4ada0abb5e4bd99eb4e4b0d87906c00cdeec", + "reference": "fe1a4ada0abb5e4bd99eb4e4b0d87906c00cdeec", "shasum": "" }, "require": { - "illuminate/console": "^9.52.16|^10.0|^11.0", - "illuminate/contracts": "^9.52.16|^10.0|^11.0", - "illuminate/support": "^9.52.16|^10.0|^11.0", + "illuminate/console": "^9.52.16|^10.0|^11.0|^12.0", + "illuminate/contracts": "^9.52.16|^10.0|^11.0|^12.0", + "illuminate/support": "^9.52.16|^10.0|^11.0|^12.0", "php": "^8.0", "symfony/console": "^6.0|^7.0", "symfony/yaml": "^6.0|^7.0" }, "require-dev": { - "orchestra/testbench": "^7.0|^8.0|^9.0", + "orchestra/testbench": "^7.0|^8.0|^9.0|^10.0", "phpstan/phpstan": "^1.10" }, "bin": [ @@ -7310,7 +7311,7 @@ "issues": "https://github.com/laravel/sail/issues", "source": "https://github.com/laravel/sail" }, - "time": "2025-01-13T16:57:11+00:00" + "time": "2025-01-24T15:45:36+00:00" }, { "name": "mockery/mockery", @@ -7457,37 +7458,37 @@ }, { "name": "nunomaduro/collision", - "version": "v8.5.0", + "version": "v8.6.1", "source": { "type": "git", "url": "https://github.com/nunomaduro/collision.git", - "reference": "f5c101b929c958e849a633283adff296ed5f38f5" + "reference": "86f003c132143d5a2ab214e19933946409e0cae7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nunomaduro/collision/zipball/f5c101b929c958e849a633283adff296ed5f38f5", - "reference": "f5c101b929c958e849a633283adff296ed5f38f5", + "url": "https://api.github.com/repos/nunomaduro/collision/zipball/86f003c132143d5a2ab214e19933946409e0cae7", + "reference": "86f003c132143d5a2ab214e19933946409e0cae7", "shasum": "" }, "require": { "filp/whoops": "^2.16.0", - "nunomaduro/termwind": "^2.1.0", + "nunomaduro/termwind": "^2.3.0", "php": "^8.2.0", - "symfony/console": "^7.1.5" + "symfony/console": "^7.2.1" }, "conflict": { - "laravel/framework": "<11.0.0 || >=12.0.0", - "phpunit/phpunit": "<10.5.1 || >=12.0.0" + "laravel/framework": "<11.39.1 || >=13.0.0", + "phpunit/phpunit": "<11.5.3 || >=12.0.0" }, "require-dev": { - "larastan/larastan": "^2.9.8", - "laravel/framework": "^11.28.0", - "laravel/pint": "^1.18.1", - "laravel/sail": "^1.36.0", - "laravel/sanctum": "^4.0.3", + "larastan/larastan": "^2.9.12", + "laravel/framework": "^11.39.1", + "laravel/pint": "^1.20.0", + "laravel/sail": "^1.40.0", + "laravel/sanctum": "^4.0.7", "laravel/tinker": "^2.10.0", - "orchestra/testbench-core": "^9.5.3", - "pestphp/pest": "^2.36.0 || ^3.4.0", + "orchestra/testbench-core": "^9.9.2", + "pestphp/pest": "^3.7.3", "sebastian/environment": "^6.1.0 || ^7.2.0" }, "type": "library", @@ -7525,6 +7526,7 @@ "cli", "command-line", "console", + "dev", "error", "handling", "laravel", @@ -7550,25 +7552,25 @@ "type": "patreon" } ], - "time": "2024-10-15T16:06:32+00:00" + "time": "2025-01-23T13:41:43+00:00" }, { "name": "pestphp/pest", - "version": "v3.7.2", + "version": "v3.7.4", "source": { "type": "git", "url": "https://github.com/pestphp/pest.git", - "reference": "709ecb1ba2641fc0c4653ebe1fd8a402bbf4d18b" + "reference": "4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest/zipball/709ecb1ba2641fc0c4653ebe1fd8a402bbf4d18b", - "reference": "709ecb1ba2641fc0c4653ebe1fd8a402bbf4d18b", + "url": "https://api.github.com/repos/pestphp/pest/zipball/4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b", + "reference": "4a987d3d5c4e3ba36c76fecbf56113baac2d1b2b", "shasum": "" }, "require": { "brianium/paratest": "^7.7.0", - "nunomaduro/collision": "^8.5.0", + "nunomaduro/collision": "^8.6.1", "nunomaduro/termwind": "^2.3.0", "pestphp/pest-plugin": "^3.0.0", "pestphp/pest-plugin-arch": "^3.0.0", @@ -7650,7 +7652,7 @@ ], "support": { "issues": "https://github.com/pestphp/pest/issues", - "source": "https://github.com/pestphp/pest/tree/v3.7.2" + "source": "https://github.com/pestphp/pest/tree/v3.7.4" }, "funding": [ { @@ -7662,7 +7664,7 @@ "type": "github" } ], - "time": "2025-01-19T17:35:09+00:00" + "time": "2025-01-23T14:03:29+00:00" }, { "name": "pestphp/pest-plugin", @@ -7806,27 +7808,27 @@ }, { "name": "pestphp/pest-plugin-laravel", - "version": "v3.0.0", + "version": "v3.1.0", "source": { "type": "git", "url": "https://github.com/pestphp/pest-plugin-laravel.git", - "reference": "7dd98c0c3b3542970ec21fce80ec5c88916ac469" + "reference": "1c4e994476375c72aa7aebaaa97aa98f5d5378cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/7dd98c0c3b3542970ec21fce80ec5c88916ac469", - "reference": "7dd98c0c3b3542970ec21fce80ec5c88916ac469", + "url": "https://api.github.com/repos/pestphp/pest-plugin-laravel/zipball/1c4e994476375c72aa7aebaaa97aa98f5d5378cd", + "reference": "1c4e994476375c72aa7aebaaa97aa98f5d5378cd", "shasum": "" }, "require": { - "laravel/framework": "^11.22.0", - "pestphp/pest": "^3.0.0", + "laravel/framework": "^11.39.1|^12.0.0", + "pestphp/pest": "^3.7.4", "php": "^8.2.0" }, "require-dev": { - "laravel/dusk": "^8.2.5", - "orchestra/testbench": "^9.4.0", - "pestphp/pest-dev-tools": "^3.0.0" + "laravel/dusk": "^8.2.13|dev-develop", + "orchestra/testbench": "^9.9.0|^10.0.0", + "pestphp/pest-dev-tools": "^3.3.0" }, "type": "library", "extra": { @@ -7864,7 +7866,7 @@ "unit" ], "support": { - "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v3.0.0" + "source": "https://github.com/pestphp/pest-plugin-laravel/tree/v3.1.0" }, "funding": [ { @@ -7876,7 +7878,7 @@ "type": "github" } ], - "time": "2024-09-08T23:32:52+00:00" + "time": "2025-01-24T13:22:39+00:00" }, { "name": "pestphp/pest-plugin-mutate", @@ -9694,16 +9696,16 @@ }, { "name": "symfony/yaml", - "version": "v7.2.0", + "version": "v7.2.3", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "099581e99f557e9f16b43c5916c26380b54abb22" + "reference": "ac238f173df0c9c1120f862d0f599e17535a87ec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/099581e99f557e9f16b43c5916c26380b54abb22", - "reference": "099581e99f557e9f16b43c5916c26380b54abb22", + "url": "https://api.github.com/repos/symfony/yaml/zipball/ac238f173df0c9c1120f862d0f599e17535a87ec", + "reference": "ac238f173df0c9c1120f862d0f599e17535a87ec", "shasum": "" }, "require": { @@ -9746,7 +9748,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v7.2.0" + "source": "https://github.com/symfony/yaml/tree/v7.2.3" }, "funding": [ { @@ -9762,7 +9764,7 @@ "type": "tidelift" } ], - "time": "2024-10-23T06:56:12+00:00" + "time": "2025-01-07T12:55:42+00:00" }, { "name": "ta-tikoma/phpunit-architecture-test", diff --git a/package.json b/package.json index d5f0295..131468e 100644 --- a/package.json +++ b/package.json @@ -18,24 +18,24 @@ "react": "^18.3.1", "react-dom": "^18.3.1", "tailwindcss": "^3.4.17", - "vite": "^6.0.11" + "vite": "^6.1.0" }, "dependencies": { "@hookform/resolvers": "^3.10.0", - "@radix-ui/react-avatar": "^1.1.2", - "@radix-ui/react-checkbox": "^1.1.3", - "@radix-ui/react-collapsible": "^1.1.2", - "@radix-ui/react-dialog": "^1.1.4", - "@radix-ui/react-dropdown-menu": "^2.1.4", - "@radix-ui/react-label": "^2.1.1", - "@radix-ui/react-select": "^2.1.4", - "@radix-ui/react-separator": "^1.1.1", - "@radix-ui/react-slot": "^1.1.1", - "@radix-ui/react-switch": "^1.1.2", - "@radix-ui/react-tabs": "^1.1.2", - "@radix-ui/react-toast": "^1.2.4", - "@radix-ui/react-tooltip": "^1.1.6", - "@sentry/react": "^8.50.0", + "@radix-ui/react-avatar": "^1.1.3", + "@radix-ui/react-checkbox": "^1.1.4", + "@radix-ui/react-collapsible": "^1.1.3", + "@radix-ui/react-dialog": "^1.1.6", + "@radix-ui/react-dropdown-menu": "^2.1.6", + "@radix-ui/react-label": "^2.1.2", + "@radix-ui/react-select": "^2.1.6", + "@radix-ui/react-separator": "^1.1.2", + "@radix-ui/react-slot": "^1.1.2", + "@radix-ui/react-switch": "^1.1.3", + "@radix-ui/react-tabs": "^1.1.3", + "@radix-ui/react-toast": "^1.2.6", + "@radix-ui/react-tooltip": "^1.1.8", + "@sentry/react": "^8.54.0", "@sentry/vite-plugin": "^2.23.0", "@tanstack/react-table": "^8.20.6", "class-variance-authority": "^0.7.1", diff --git a/resources/js/Pages/Comic/Chapters.jsx b/resources/js/Pages/Comic/Chapters.jsx index 045a10a..39f38a3 100644 --- a/resources/js/Pages/Comic/Chapters.jsx +++ b/resources/js/Pages/Comic/Chapters.jsx @@ -66,7 +66,7 @@ export default function Chapters({ auth, comic, chapters, histories, offset }) { } const ComicChapterLink = (props) => { - const isNew = Date.now() - Date.parse(props.datetime_created) < 6.048e+8; + const isNew = Date.now() - Date.parse(props.datetime_created) < 6.048e+8; // 1 week const isRead = histories.includes(props.uuid); return ( @@ -226,7 +226,7 @@ export default function Chapters({ auth, comic, chapters, histories, offset }) {
- { (chapters.total > (chapters.limit + chapters.offset) && chapters.offset > 0) && ( + { (chapters.total > chapters.limit && chapters.offset > 0) && (
- +
Select @@ -120,22 +120,16 @@ export default function Histories({ auth, histories }) { )) }
-
+
- { histories.current_page > 1 && ( - - + { histories.links.map((h, i) => ( + + { h.label.includes('Previous') && } + { !h.label.includes('Previous') && !h.label.includes('Next') && { h.label } } + { h.label.includes('Next') && } - ) } - - { histories.current_page } - - { histories.current_page < histories.last_page && ( - - - - ) } + ) ) }
diff --git a/resources/js/Pages/Comic/HistoriesByComic.jsx b/resources/js/Pages/Comic/HistoriesByComic.jsx index a783854..bf41e4d 100644 --- a/resources/js/Pages/Comic/HistoriesByComic.jsx +++ b/resources/js/Pages/Comic/HistoriesByComic.jsx @@ -67,23 +67,23 @@ export default function Histories({ auth, histories }) { - { histories.map((comic, i) => - comic.histories.map((record, j) => ( - - { (j === 0) ? - - { comic.comic.comic_name } - - : null } - - - { record.chapter_name } - - - { record.read_at } - - ) ) - ) } + { histories.map((comic, i) => comic.histories.map((record, j) => ( + + { (j === 0) && + + { comic.comic.comic_name } + + } + + + { record.chapter_name } + + + + { record.read_at } + + + ) ) ) }
diff --git a/resources/js/Pages/Comic/Index.jsx b/resources/js/Pages/Comic/Index.jsx index 1a7046e..1e60d3d 100644 --- a/resources/js/Pages/Comic/Index.jsx +++ b/resources/js/Pages/Comic/Index.jsx @@ -14,9 +14,11 @@ export default function Index({ comics, offset, auth }) { const url = new URL(window.location); // searchParams - const [favourites, setFavourites] = useState(auth.user?.favourites ?? []); + const [favourites, setFavourites] = useState((auth?.user?.favourites !== null) ? auth.user.favourites : []); const { toast } = useToast(); + const itemsPerPage = 30; + /** * On click handler for the star * Do posting and make a toast @@ -84,19 +86,21 @@ export default function Index({ comics, offset, auth }) {
-
+
{ parseInt(offset) !== 0 && - + + + } + { parseInt(comics.total) > parseInt(offset) + itemsPerPage && + + } - - -
diff --git a/resources/js/Pages/Pages/Updates.jsx b/resources/js/Pages/Pages/Updates.jsx index 4354805..8861b5d 100644 --- a/resources/js/Pages/Pages/Updates.jsx +++ b/resources/js/Pages/Pages/Updates.jsx @@ -11,6 +11,19 @@ export default function Updates({ auth }) { Updates
+ + + 0.1.5 + Release: 07 Feb 2025 + + +
    +
  • General bug fixes and system improvements
  • +
  • Toggle reading history
  • +
  • Queue driver, Horizon is now default driver
  • +
+
+
0.1.4 diff --git a/resources/js/app.jsx b/resources/js/app.jsx index e2f8fa9..5944d1d 100644 --- a/resources/js/app.jsx +++ b/resources/js/app.jsx @@ -17,7 +17,7 @@ Sentry.init({ // Tracing tracesSampleRate: 0.1, // Capture 10% of the transactions // Set 'tracePropagationTargets' to control for which URLs distributed tracing should be enabled - tracePropagationTargets: ["localhost", /^https:\/\/c\.yumj\.in/], + tracePropagationTargets: [/^https:\/\/c\.yumj\.in/], // Session Replay replaysSessionSampleRate: 0.1, // This sets the sample rate at 10%. You may want to change it to 100% while in development and then sample at a lower rate in production. replaysOnErrorSampleRate: 1.0, // If you're not already sampling the entire session, change the sample rate to 100% when sampling sessions where errors occur. diff --git a/resources/js/components/ui/app-sidebar.jsx b/resources/js/components/ui/app-sidebar.jsx index 7f887a4..cc1f915 100644 --- a/resources/js/components/ui/app-sidebar.jsx +++ b/resources/js/components/ui/app-sidebar.jsx @@ -8,10 +8,15 @@ import { Collapsible, CollapsibleContent, CollapsibleTrigger } from '@/component import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger } from '@/components/ui/dropdown-menu'; import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarMenu, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem } from '@/components/ui/sidebar'; +import { useToast } from '@/hooks/use-toast.js'; + export function AppSidebar({ auth }) { const { tags } = usePage().props; const [search, setSearch] = useState(''); + const [historyDisabled, setHistoryDisabled] = useState(false); + + const { toast } = useToast(); const searchOnSubmitHandler = (e) => { e.preventDefault(); @@ -68,9 +73,22 @@ export function AppSidebar({ auth }) { const [theme, setTheme] = useState(getTheme()); + const toggleHistoryButtonHandler = () => { + axios.post(route('comics.toggleHistory')).then(res => { + setHistoryDisabled(res.data.historyDisabled); + toast({ + title: "All set", + description: `Histories are now ${ res.data.historyDisabled ? 'Disabled' : 'Enabled' }`, + }); + }); + } + useEffect(() => { setTheme(getTheme()); setThemeInHtml(getTheme()); + + // Set historyDisabled + setHistoryDisabled(auth.user.historyDisabled); }, []); return ( @@ -86,7 +104,7 @@ export function AppSidebar({ auth }) {
Comic - 0.1.4 + 0.1.5
@@ -214,13 +232,13 @@ export function AppSidebar({ auth }) { - - History On + toggleHistoryButtonHandler() }> + { (historyDisabled) ? "History Off" : "History On" } themeButtonOnclickHandler() }> <>{ theme === 'dark' ? () : () } Toggle theme - Queues + Queues Profile Favourites History diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index 2ac075e..d482c81 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -3,7 +3,7 @@ - + {{ config('app.name', 'Laravel') }} @routes @viteReactRefresh diff --git a/routes/web.php b/routes/web.php index 4151f6f..e82e0d3 100644 --- a/routes/web.php +++ b/routes/web.php @@ -7,7 +7,7 @@ use Illuminate\Support\Facades\Route; use Inertia\Inertia; // Auth protected routes -Route::controller(ComicController::class)->middleware('auth')->name('comics.')->group(function () { +Route::controller(ComicController::class)->middleware(['auth', 'verified'])->name('comics.')->group(function () { Route::get('/', 'index')->name('index'); Route::get('/author/{author}', 'author')->name('author'); Route::get('/search/{search}', 'search')->name('search'); @@ -30,13 +30,15 @@ Route::controller(ComicController::class)->middleware('auth')->name('comics.')-> Route::patch('/histories', 'patchHistories')->name('patchHistories'); Route::delete('/history/{pathword}', 'destroyHistory')->name('destroyHistory'); Route::delete('/histories', 'destroyHistories')->name('destroyHistories'); + + // History Toggle + Route::post('/toggleHistory', 'toggleHistory')->name('toggleHistory'); }); Route::controller(PagesController::class)->middleware('auth')->name('pages.')->group(function () { Route::get('/pages/{path?}', 'show')->name('show'); }); - Route::get('/dashboard', function () { return Inertia::render('Dashboard'); })->middleware(['auth', 'verified'])->name('dashboard');