diff --git a/src/components/atoms/FilterButton.tsx b/src/components/atoms/FilterButton.tsx new file mode 100644 index 00000000..23db6880 --- /dev/null +++ b/src/components/atoms/FilterButton.tsx @@ -0,0 +1,45 @@ +import { Button } from '@theme-ui/components' +import React, { useCallback } from 'react' +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 ( + + ) +} + +export default FilterButton diff --git a/src/pages/honkai3rd/battlesuits/index.tsx b/src/pages/honkai3rd/battlesuits/index.tsx index 6aa3dc4f..9152cfc2 100644 --- a/src/pages/honkai3rd/battlesuits/index.tsx +++ b/src/pages/honkai3rd/battlesuits/index.tsx @@ -1,7 +1,8 @@ -import { Box, Heading, Flex, Text, Link, Button } from '@theme-ui/components' +import { Box, Heading, Flex, Text, Link } from '@theme-ui/components' import NextLink from 'next/link' import { pick } from 'ramda' -import React, { useCallback, useMemo, useState } from 'react' +import React, { useMemo, useState } from 'react' +import FilterButton from '../../../components/atoms/FilterButton' import SquareImageBox from '../../../components/atoms/SquareImageBox' import Breadcrumb from '../../../components/organisms/Breadcrumb' import Honkai3rdNavigator from '../../../components/organisms/Honkai3rdNavigator' @@ -147,6 +148,7 @@ const BattlesuitListPage = ({ battlesuits }: BattlesuitListPageProps) => { setFilter={setFilter} value={value} label={label} + m={1} /> ) })} @@ -161,6 +163,7 @@ const BattlesuitListPage = ({ battlesuits }: BattlesuitListPageProps) => { setFilter={setFilter} value={value} label={label} + m={1} /> ) })} @@ -192,44 +195,6 @@ export async function getStaticProps() { } } -interface FilterButtonProps { - active?: boolean - icon?: string - label: string - setFilter: (filter: string) => void - value: string -} - -const FilterButton = ({ - active = false, - setFilter, - icon, - label, - value, -}: FilterButtonProps) => { - const selectFilter = useCallback(() => { - setFilter(value) - }, [setFilter, value]) - return ( - - ) -} - function isBattlesuitHidden( battlesuit: BattlesuitListItemData, filter: string