diff --git a/src/components/atoms/FilterButton.tsx b/src/components/atoms/FilterButton.tsx
index 32e1d4c7..c785de30 100644
--- a/src/components/atoms/FilterButton.tsx
+++ b/src/components/atoms/FilterButton.tsx
@@ -1,35 +1,32 @@
-import { Button } from '@theme-ui/components'
-import React, { useCallback } from 'react'
+import React from 'react'
+import PageLink from './PageLink'
import SquareImageBox from './SquareImageBox'
interface FilterButtonProps {
active?: boolean
icon?: string
label: string
- setFilter: (filter: string) => void
value: string
m?: string | number
}
const FilterButton = ({
active = false,
- setFilter,
icon,
label,
value,
m,
}: FilterButtonProps) => {
- const selectFilter = useCallback(() => {
- setFilter(value)
- }, [setFilter, value])
return (
-
+
)
}
diff --git a/src/components/atoms/PageLink.tsx b/src/components/atoms/PageLink.tsx
index b3b98278..eeab0895 100644
--- a/src/components/atoms/PageLink.tsx
+++ b/src/components/atoms/PageLink.tsx
@@ -2,11 +2,12 @@
import NextLink, { LinkProps as NextLinkProps } from 'next/link'
import { Link, LinkProps } from '@theme-ui/components'
-type PageLinkProps = LinkProps & NextLinkProps
+type PageLinkProps = Omit &
+ Pick
-const PageLink = ({ href, ...otherProps }: PageLinkProps) => {
+const PageLink = ({ href, shallow, ...otherProps }: PageLinkProps) => {
return (
-
+
)
diff --git a/src/lib/theme.ts b/src/lib/theme.ts
index b81ae95d..ce48c9b8 100644
--- a/src/lib/theme.ts
+++ b/src/lib/theme.ts
@@ -97,6 +97,8 @@ export const theme: Theme = {
borderWidth: 1,
bg: 'background',
cursor: 'pointer',
+ textDecoration: 'none',
+ borderRadius: 'default',
'&:hover, &.active': {
color: 'background',
bg: 'primary',
diff --git a/src/pages/honkai3rd/battlesuits/index.tsx b/src/pages/honkai3rd/battlesuits/index.tsx
index 231a0c9d..e793fc01 100644
--- a/src/pages/honkai3rd/battlesuits/index.tsx
+++ b/src/pages/honkai3rd/battlesuits/index.tsx
@@ -1,6 +1,6 @@
import { Box, Heading, Flex } from '@theme-ui/components'
import { pick } from 'ramda'
-import { useMemo, useState } from 'react'
+import { useMemo } from 'react'
import FilterButton from '../../../components/atoms/FilterButton'
import Breadcrumb from '../../../components/organisms/Breadcrumb'
import Honkai3rdNavigator from '../../../components/organisms/Honkai3rdNavigator'
@@ -10,6 +10,7 @@ import {
} from '../../../server/data/honkai3rd/battlesuits'
import { battlesuitStrengths } from '../../../lib/safeData'
import BattlesuitCard from '../../../components/molecules/BattlesuitCard'
+import { useRouter } from 'next/router'
type BattlesuitListItemData = Pick<
BattlesuitData,
@@ -50,7 +51,15 @@ const valkyrieFilterOptions = [
]
const BattlesuitListPage = ({ battlesuits }: BattlesuitListPageProps) => {
- const [filter, setFilter] = useState('all')
+ const { query } = useRouter()
+
+ const filter = useMemo(() => {
+ if (query.filter == null) {
+ return 'all'
+ }
+
+ return typeof query.filter === 'string' ? query.filter : query.filter[0]
+ }, [query])
const battlesuitList = useMemo(() => {
return battlesuits.map((battlesuit) => {
@@ -87,7 +96,6 @@ const BattlesuitListPage = ({ battlesuits }: BattlesuitListPageProps) => {
{