From efbd3e447e8828062f2116b79ee8756a45112479 Mon Sep 17 00:00:00 2001 From: Sakura Knoll Date: Mon, 18 Jul 2022 12:33:05 +0900 Subject: [PATCH] Improve battlesuit filter behavior --- src/components/atoms/FilterButton.tsx | 8 +- src/pages/honkai3rd/battlesuits/index.tsx | 140 ++++++++++++---------- src/pages/honkai3rd/weapons/index.tsx | 16 +-- tsconfig.json | 1 + 4 files changed, 93 insertions(+), 72 deletions(-) diff --git a/src/components/atoms/FilterButton.tsx b/src/components/atoms/FilterButton.tsx index 4fc3d054..8cc30d96 100644 --- a/src/components/atoms/FilterButton.tsx +++ b/src/components/atoms/FilterButton.tsx @@ -8,7 +8,7 @@ interface FilterButtonProps { active?: boolean icon?: string label: string - value: string + href: string m?: string | number close?: () => void } @@ -17,14 +17,14 @@ const FilterButton = ({ active = false, icon, label, - value, + href, m, close, }: FilterButtonProps) => { const { push } = useRouter() return ( {icon != null && ( diff --git a/src/pages/honkai3rd/battlesuits/index.tsx b/src/pages/honkai3rd/battlesuits/index.tsx index 008b7de5..da57e761 100644 --- a/src/pages/honkai3rd/battlesuits/index.tsx +++ b/src/pages/honkai3rd/battlesuits/index.tsx @@ -54,26 +54,43 @@ const BattlesuitListPage = ({ battlesuits }: BattlesuitListPageProps) => { setHiddenFilters(true) }, []) - const filter = useMemo(() => { - if (query.filter == null) { + const valkyrieFilter = useMemo(() => { + if (query.valkyrie == null) { return 'all' } - return typeof query.filter === 'string' ? query.filter : query.filter[0] + return typeof query.valkyrie === 'string' + ? query.valkyrie + : query.valkyrie[0] }, [query]) - const battlesuitList = useMemo(() => { - return battlesuits.map((battlesuit) => { - const hidden = isBattlesuitHidden(battlesuit, filter) - return ( -