From 97a252dd0b13319300622d68bc73043e912c3a0a Mon Sep 17 00:00:00 2001 From: Sn0w123 Date: Tue, 7 Apr 2026 23:20:28 +0200 Subject: [PATCH 1/6] Update tsconfig.json --- tsconfig.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tsconfig.json b/tsconfig.json index 8593ee6a..1eda177f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -21,7 +21,9 @@ "paths": { "@/public/*": ["./public/*"], "@/*": ["./src/*"] - } + }, + "noUnusedLocals": true, + "noUnusedParameters": true }, "include": [ "next-env.d.ts", From bf607d43ca04c47daf015501c845adcf131b1b7b Mon Sep 17 00:00:00 2001 From: Sn0w123 Date: Tue, 7 Apr 2026 23:21:10 +0200 Subject: [PATCH 2/6] Hide explicit manga on home page --- src/app/(default)/page.tsx | 2 +- src/app/(default)/popular/page.tsx | 4 +++- src/types/api.d.ts | 4 ++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/app/(default)/page.tsx b/src/app/(default)/page.tsx index 7433e8fd..773be7af 100644 --- a/src/app/(default)/page.tsx +++ b/src/app/(default)/page.tsx @@ -165,7 +165,7 @@ export default async function Home() { } async function HomePopular() { - const { data, error } = await getPopularData(1, 7); + const { data, error } = await getPopularData(1, 7, ["Hentai", "Adult"]); if (error || !data) { return null; diff --git a/src/app/(default)/popular/page.tsx b/src/app/(default)/popular/page.tsx index bfaafe23..c91330bc 100644 --- a/src/app/(default)/popular/page.tsx +++ b/src/app/(default)/popular/page.tsx @@ -8,6 +8,7 @@ import { MangaGrid } from "@/components/manga/manga-grid"; import { PageWrapper } from "@/components/page-wrapper"; import { ServerPagination } from "@/components/ui/pagination/server-pagination"; import { client, serverHeaders } from "@/lib/api"; +import { Genre } from "@/lib/api/search"; import { createJsonLd, createMetadata, @@ -60,7 +61,7 @@ const CACHE_TIMES: Record< "365": { stale: 14400, revalidate: 86400, expire: 604800 }, // 4 hours stale, 1 day revalidate, 1 week expire }; -export const getPopularData = async (page: number, days: number = 30) => { +export const getPopularData = async (page: number, days: number = 30, excludedGenres: Genre[] = []) => { "use cache"; cacheLife(CACHE_TIMES[days.toString()]); cacheTag("popular"); @@ -71,6 +72,7 @@ export const getPopularData = async (page: number, days: number = 30) => { page: page, pageSize: 24, days: days, + excludedGenres: excludedGenres }, }, headers: serverHeaders, diff --git a/src/types/api.d.ts b/src/types/api.d.ts index e93d27b4..47650363 100644 --- a/src/types/api.d.ts +++ b/src/types/api.d.ts @@ -2264,6 +2264,10 @@ export interface paths { query?: { /** @description The number of days to look back for views. */ days?: number; + /** @description Filter by genres. */ + genres?: string[]; + /** @description Exclude by genres. */ + excludedGenres?: string[]; /** @description The page number. */ page?: number; /** @description The number of items per page. */ From f3e779363b6bcefa37b702a42fea64d62222def7 Mon Sep 17 00:00:00 2001 From: Sn0w123 Date: Sun, 12 Apr 2026 01:59:37 +0200 Subject: [PATCH 3/6] Update tab bar --- src/components/header/desktop-header.tsx | 2 +- src/components/header/mobile-header.tsx | 2 +- src/components/ui/tab-bar.tsx | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/components/header/desktop-header.tsx b/src/components/header/desktop-header.tsx index 910d485f..8c2937d4 100644 --- a/src/components/header/desktop-header.tsx +++ b/src/components/header/desktop-header.tsx @@ -82,7 +82,7 @@ export function DesktopHeader({ notification }: HeaderProps) { return (
diff --git a/src/components/header/mobile-header.tsx b/src/components/header/mobile-header.tsx index fe50faeb..bdfb84bb 100644 --- a/src/components/header/mobile-header.tsx +++ b/src/components/header/mobile-header.tsx @@ -21,7 +21,7 @@ export function MobileHeader() { const pathname = usePathname(); return ( - + ) { function TabBarList({ className, ...props -}: React.HTMLAttributes) { +}: React.HTMLAttributes) { return ( -
From 7f35ab0816cebdd395f5e3a0111fa50a83c349cb Mon Sep 17 00:00:00 2001 From: Sn0w123 Date: Sun, 12 Apr 2026 14:14:59 +0200 Subject: [PATCH 4/6] Update next --- package-lock.json | 96 +++++++++++++++++++++++------------------------ package.json | 4 +- 2 files changed, 50 insertions(+), 50 deletions(-) diff --git a/package-lock.json b/package-lock.json index 65a38ca3..51c348a8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -27,7 +27,7 @@ "embla-carousel-react": "^8.6.0", "js-cookie": "^3.0.5", "lucide-react": "^1.7.0", - "next": "^16.2.2", + "next": "^16.2.3", "next-themes": "^0.4.6", "openapi-fetch": "^0.17.0", "radix-ui": "^1.4.3", @@ -51,7 +51,7 @@ "@types/react": "19.2.14", "@types/react-dom": "19.2.3", "eslint": "^9", - "eslint-config-next": "16.2.2", + "eslint-config-next": "16.2.3", "mjml": "5.0.0-beta.2", "openapi-typescript": "^7.13.0", "prettier": "3.8.1", @@ -1254,15 +1254,15 @@ } }, "node_modules/@next/env": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/env/-/env-16.2.2.tgz", - "integrity": "sha512-LqSGz5+xGk9EL/iBDr2yo/CgNQV6cFsNhRR2xhSXYh7B/hb4nePCxlmDvGEKG30NMHDFf0raqSyOZiQrO7BkHQ==", + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/@next/env/-/env-16.2.3.tgz", + "integrity": "sha512-ZWXyj4uNu4GCWQw9cjRxWlbD+33mcDszIo9iQxFnBX3Wmgq9ulaSJcl6VhuWx5pCWqqD+9W6Wfz7N0lM5lYPMA==", "license": "MIT" }, "node_modules/@next/eslint-plugin-next": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-16.2.2.tgz", - "integrity": "sha512-IOPbWzDQ+76AtjZioaCjpIY72xNSDMnarZ2GMQ4wjNLvnJEJHqxQwGFhgnIWLV9klb4g/+amg88Tk5OXVpyLTw==", + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/@next/eslint-plugin-next/-/eslint-plugin-next-16.2.3.tgz", + "integrity": "sha512-nE/b9mht28XJxjTwKs/yk7w4XTaU3t40UHVAky6cjiijdP/SEy3hGsnQMPxmXPTpC7W4/97okm6fngKnvCqVaA==", "dev": true, "license": "MIT", "dependencies": { @@ -1270,9 +1270,9 @@ } }, "node_modules/@next/swc-darwin-arm64": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.2.tgz", - "integrity": "sha512-B92G3ulrwmkDSEJEp9+XzGLex5wC1knrmCSIylyVeiAtCIfvEJYiN3v5kXPlYt5R4RFlsfO/v++aKV63Acrugg==", + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-16.2.3.tgz", + "integrity": "sha512-u37KDKTKQ+OQLvY+z7SNXixwo4Q2/IAJFDzU1fYe66IbCE51aDSAzkNDkWmLN0yjTUh4BKBd+hb69jYn6qqqSg==", "cpu": [ "arm64" ], @@ -1286,9 +1286,9 @@ } }, "node_modules/@next/swc-darwin-x64": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.2.tgz", - "integrity": "sha512-7ZwSgNKJNQiwW0CKhNm9B1WS2L1Olc4B2XY0hPYCAL3epFnugMhuw5TMWzMilQ3QCZcCHoYm9NGWTHbr5REFxw==", + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-16.2.3.tgz", + "integrity": "sha512-gHjL/qy6Q6CG3176FWbAKyKh9IfntKZTB3RY/YOJdDFpHGsUDXVH38U4mMNpHVGXmeYW4wj22dMp1lTfmu/bTQ==", "cpu": [ "x64" ], @@ -1302,9 +1302,9 @@ } }, "node_modules/@next/swc-linux-arm64-gnu": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.2.tgz", - "integrity": "sha512-c3m8kBHMziMgo2fICOP/cd/5YlrxDU5YYjAJeQLyFsCqVF8xjOTH/QYG4a2u48CvvZZSj1eHQfBCbyh7kBr30Q==", + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-16.2.3.tgz", + "integrity": "sha512-U6vtblPtU/P14Y/b/n9ZY0GOxbbIhTFuaFR7F4/uMBidCi2nSdaOFhA0Go81L61Zd6527+yvuX44T4ksnf8T+Q==", "cpu": [ "arm64" ], @@ -1318,9 +1318,9 @@ } }, "node_modules/@next/swc-linux-arm64-musl": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.2.tgz", - "integrity": "sha512-VKLuscm0P/mIfzt+SDdn2+8TNNJ7f0qfEkA+az7OqQbjzKdBxAHs0UvuiVoCtbwX+dqMEL9U54b5wQ/aN3dHeg==", + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-16.2.3.tgz", + "integrity": "sha512-/YV0LgjHUmfhQpn9bVoGc4x4nan64pkhWR5wyEV8yCOfwwrH630KpvRg86olQHTwHIn1z59uh6JwKvHq1h4QEw==", "cpu": [ "arm64" ], @@ -1334,9 +1334,9 @@ } }, "node_modules/@next/swc-linux-x64-gnu": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.2.2.tgz", - "integrity": "sha512-kU3OPHJq6sBUjOk7wc5zJ7/lipn8yGldMoAv4z67j6ov6Xo/JvzA7L7LCsyzzsXmgLEhk3Qkpwqaq/1+XpNR3g==", + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-16.2.3.tgz", + "integrity": "sha512-/HiWEcp+WMZ7VajuiMEFGZ6cg0+aYZPqCJD3YJEfpVWQsKYSjXQG06vJP6F1rdA03COD9Fef4aODs3YxKx+RDQ==", "cpu": [ "x64" ], @@ -1350,9 +1350,9 @@ } }, "node_modules/@next/swc-linux-x64-musl": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.2.tgz", - "integrity": "sha512-CKXRILyErMtUftp+coGcZ38ZwE/Aqq45VMCcRLr2I4OXKrgxIBDXHnBgeX/UMil0S09i2JXaDL3Q+TN8D/cKmg==", + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-16.2.3.tgz", + "integrity": "sha512-Kt44hGJfZSefebhk/7nIdivoDr3Ugp5+oNz9VvF3GUtfxutucUIHfIO0ZYO8QlOPDQloUVQn4NVC/9JvHRk9hw==", "cpu": [ "x64" ], @@ -1366,9 +1366,9 @@ } }, "node_modules/@next/swc-win32-arm64-msvc": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.2.tgz", - "integrity": "sha512-sS/jSk5VUoShUqINJFvNjVT7JfR5ORYj/+/ZpOYbbIohv/lQfduWnGAycq2wlknbOql2xOR0DoV0s6Xfcy49+g==", + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-16.2.3.tgz", + "integrity": "sha512-O2NZ9ie3Tq6xj5Z5CSwBT3+aWAMW2PIZ4egUi9MaWLkwaehgtB7YZjPm+UpcNpKOme0IQuqDcor7BsW6QBiQBw==", "cpu": [ "arm64" ], @@ -1382,9 +1382,9 @@ } }, "node_modules/@next/swc-win32-x64-msvc": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.2.tgz", - "integrity": "sha512-aHaKceJgdySReT7qeck5oShucxWRiiEuwCGK8HHALe6yZga8uyFpLkPgaRw3kkF04U7ROogL/suYCNt/+CuXGA==", + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-16.2.3.tgz", + "integrity": "sha512-Ibm29/GgB/ab5n7XKqlStkm54qqZE8v2FnijUPBgrd67FWrac45o/RsNlaOWjme/B5UqeWt/8KM4aWBwA1D2Kw==", "cpu": [ "x64" ], @@ -6128,13 +6128,13 @@ } }, "node_modules/eslint-config-next": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-16.2.2.tgz", - "integrity": "sha512-6VlvEhwoug2JpVgjZDhyXrJXUEuPY++TddzIpTaIRvlvlXXFgvQUtm3+Zr84IjFm0lXtJt73w19JA08tOaZVwg==", + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/eslint-config-next/-/eslint-config-next-16.2.3.tgz", + "integrity": "sha512-Dnkrylzjof/Az7iNoIQJqD18zTxQZcngir19KJaiRsMnnjpQSVoa6aEg/1Q4hQC+cW90uTlgQYadwL1CYNwFWA==", "dev": true, "license": "MIT", "dependencies": { - "@next/eslint-plugin-next": "16.2.2", + "@next/eslint-plugin-next": "16.2.3", "eslint-import-resolver-node": "^0.3.6", "eslint-import-resolver-typescript": "^3.5.2", "eslint-plugin-import": "^2.32.0", @@ -8888,12 +8888,12 @@ "license": "MIT" }, "node_modules/next": { - "version": "16.2.2", - "resolved": "https://registry.npmjs.org/next/-/next-16.2.2.tgz", - "integrity": "sha512-i6AJdyVa4oQjyvX/6GeER8dpY/xlIV+4NMv/svykcLtURJSy/WzDnnUk/TM4d0uewFHK7xSQz4TbIwPgjky+3A==", + "version": "16.2.3", + "resolved": "https://registry.npmjs.org/next/-/next-16.2.3.tgz", + "integrity": "sha512-9V3zV4oZFza3PVev5/poB9g0dEafVcgNyQ8eTRop8GvxZjV2G15FC5ARuG1eFD42QgeYkzJBJzHghNP8Ad9xtA==", "license": "MIT", "dependencies": { - "@next/env": "16.2.2", + "@next/env": "16.2.3", "@swc/helpers": "0.5.15", "baseline-browser-mapping": "^2.9.19", "caniuse-lite": "^1.0.30001579", @@ -8907,14 +8907,14 @@ "node": ">=20.9.0" }, "optionalDependencies": { - "@next/swc-darwin-arm64": "16.2.2", - "@next/swc-darwin-x64": "16.2.2", - "@next/swc-linux-arm64-gnu": "16.2.2", - "@next/swc-linux-arm64-musl": "16.2.2", - "@next/swc-linux-x64-gnu": "16.2.2", - "@next/swc-linux-x64-musl": "16.2.2", - "@next/swc-win32-arm64-msvc": "16.2.2", - "@next/swc-win32-x64-msvc": "16.2.2", + "@next/swc-darwin-arm64": "16.2.3", + "@next/swc-darwin-x64": "16.2.3", + "@next/swc-linux-arm64-gnu": "16.2.3", + "@next/swc-linux-arm64-musl": "16.2.3", + "@next/swc-linux-x64-gnu": "16.2.3", + "@next/swc-linux-x64-musl": "16.2.3", + "@next/swc-win32-arm64-msvc": "16.2.3", + "@next/swc-win32-x64-msvc": "16.2.3", "sharp": "^0.34.5" }, "peerDependencies": { diff --git a/package.json b/package.json index b7106b49..ed6f49cc 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "embla-carousel-react": "^8.6.0", "js-cookie": "^3.0.5", "lucide-react": "^1.7.0", - "next": "^16.2.2", + "next": "^16.2.3", "next-themes": "^0.4.6", "openapi-fetch": "^0.17.0", "radix-ui": "^1.4.3", @@ -64,7 +64,7 @@ "@types/react": "19.2.14", "@types/react-dom": "19.2.3", "eslint": "^9", - "eslint-config-next": "16.2.2", + "eslint-config-next": "16.2.3", "mjml": "5.0.0-beta.2", "openapi-typescript": "^7.13.0", "prettier": "3.8.1", From 2682ffff394dd836bd0a836b695d1fd5a5d8ff38 Mon Sep 17 00:00:00 2001 From: Sn0w123 Date: Sun, 12 Apr 2026 14:17:38 +0200 Subject: [PATCH 5/6] Fix build errors --- src/components/header/desktop-header.tsx | 21 +++------------------ src/lib/auth/secondary-accounts/ani.ts | 2 +- src/lib/auth/secondary-accounts/mal.ts | 2 +- src/lib/utils.ts | 2 +- 4 files changed, 6 insertions(+), 21 deletions(-) diff --git a/src/components/header/desktop-header.tsx b/src/components/header/desktop-header.tsx index 8c2937d4..a6d7e914 100644 --- a/src/components/header/desktop-header.tsx +++ b/src/components/header/desktop-header.tsx @@ -62,12 +62,7 @@ export function DesktopHeader({ notification }: HeaderProps) { }); }, [pathname, overrides]); - const getSegmentDisplayName = ( - segment: string, - index: number, - segments: string[], - maxLength: number = 35, - ) => { + const getSegmentDisplayName = (segment: string, maxLength: number = 35) => { segment = segment.replace(/-s-/g, "'s "); segment = segment.replace(/-/g, " "); @@ -133,8 +128,6 @@ export function DesktopHeader({ notification }: HeaderProps) { .join("/")}`} title={getSegmentDisplayName( segment, - index, - segments, 9999, )} tabIndex={-1} @@ -142,19 +135,11 @@ export function DesktopHeader({ notification }: HeaderProps) { "transition-backwards", ]} > - {getSegmentDisplayName( - segment, - index, - segments, - )} + {getSegmentDisplayName(segment)} ) : ( - {getSegmentDisplayName( - segment, - index, - segments, - )} + {getSegmentDisplayName(segment)} )} diff --git a/src/lib/auth/secondary-accounts/ani.ts b/src/lib/auth/secondary-accounts/ani.ts index 9b518bfe..c69ba50b 100644 --- a/src/lib/auth/secondary-accounts/ani.ts +++ b/src/lib/auth/secondary-accounts/ani.ts @@ -60,7 +60,7 @@ export class AniAccount extends SecondaryAccountBase { } async handleCallback( - params: Record, + _params: Record, hash: string, ): Promise { const hashParams = new URLSearchParams(hash); diff --git a/src/lib/auth/secondary-accounts/mal.ts b/src/lib/auth/secondary-accounts/mal.ts index 7b82f15d..ac9f07ef 100644 --- a/src/lib/auth/secondary-accounts/mal.ts +++ b/src/lib/auth/secondary-accounts/mal.ts @@ -78,7 +78,7 @@ export class MalAccount extends SecondaryAccountBase { async handleCallback( params: Record, - hash: string, + _hash: string, origin: string, ): Promise { const code = params.code; diff --git a/src/lib/utils.ts b/src/lib/utils.ts index d65a6ca1..87e8e6c8 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -48,7 +48,7 @@ export type CookieCategory = keyof CookieConsent; export const setCookie = ( name: string, value: string, - category: CookieCategory, + _category: CookieCategory, maxAge = 31536000, ) => { if (typeof window === "undefined") return false; From 08a8e402b0cb7cf2f8dbf2b108d77192abb77fb3 Mon Sep 17 00:00:00 2001 From: Sn0w123 Date: Sun, 12 Apr 2026 14:17:59 +0200 Subject: [PATCH 6/6] Bump version --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 51c348a8..ee7c8ed9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "akari", - "version": "2.0.9", + "version": "2.0.10", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "akari", - "version": "2.0.9", + "version": "2.0.10", "dependencies": { "@dnd-kit/core": "^6.3.1", "@dnd-kit/sortable": "^10.0.0", diff --git a/package.json b/package.json index ed6f49cc..16ba7268 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "akari", - "version": "2.0.9", + "version": "2.0.10", "homepage": "https://github.com/sn0w12/Akari#readme", "engines": { "node": ">=20"