From 3469c713637f490da09b140799be60f8bb2f938c Mon Sep 17 00:00:00 2001 From: Sakura Knoll Date: Sun, 2 Jan 2022 18:06:33 +0900 Subject: [PATCH] Add stigmata set view --- src/components/molecules/StigmataSetCard.tsx | 56 ++++++++++++++++++ src/pages/honkai3rd/stigmata/index.tsx | 61 ++++++++++++++++++-- 2 files changed, 111 insertions(+), 6 deletions(-) create mode 100644 src/components/molecules/StigmataSetCard.tsx diff --git a/src/components/molecules/StigmataSetCard.tsx b/src/components/molecules/StigmataSetCard.tsx new file mode 100644 index 00000000..cccda3dc --- /dev/null +++ b/src/components/molecules/StigmataSetCard.tsx @@ -0,0 +1,56 @@ +import { Box, Card, Flex, Text } from '@theme-ui/components' +import { StigmataSet } from '../../lib/honkai3rd/stigmata' +import PageLink from '../atoms/PageLink' +import SquareImageBox from '../atoms/SquareImageBox' + +interface StigmataSetCardProps { + stigmataSet: Pick +} + +const StigmataSetCard = ({ stigmataSet }: StigmataSetCardProps) => { + return ( + + + + + + + + + {stigmataSet.name} + + + {'⭐'.repeat(stigmataSet.rarity)} + + + + ) +} + +export default StigmataSetCard diff --git a/src/pages/honkai3rd/stigmata/index.tsx b/src/pages/honkai3rd/stigmata/index.tsx index 538dd96f..d4f93498 100644 --- a/src/pages/honkai3rd/stigmata/index.tsx +++ b/src/pages/honkai3rd/stigmata/index.tsx @@ -1,17 +1,37 @@ /** @jsxImportSource theme-ui */ import { Box, Heading, Flex } from '@theme-ui/components' +import { useRouter } from 'next/router' import { pick } from 'ramda' +import { useMemo } from 'react' +import PageLink from '../../../components/atoms/PageLink' import StigmataCard from '../../../components/molecules/StigmataCard' +import StigmataSetCard from '../../../components/molecules/StigmataSetCard' import Breadcrumb from '../../../components/organisms/Breadcrumb' import Honkai3rdNavigator from '../../../components/organisms/Honkai3rdNavigator' -import { StigmataData } from '../../../lib/honkai3rd/stigmata' -import { listStigmata } from '../../../server/data/honkai3rd/stigmata' +import { StigmataData, StigmataSet } from '../../../lib/honkai3rd/stigmata' +import { + listStigmata, + listStigmataSet, +} from '../../../server/data/honkai3rd/stigmata' interface StigmataListPageProps { stigmataDataList: Pick[] + stigmataSetList: Pick[] } -const StigmataListPage = ({ stigmataDataList }: StigmataListPageProps) => { +const StigmataListPage = ({ + stigmataDataList, + stigmataSetList, +}: StigmataListPageProps) => { + const { query } = useRouter() + + const listMode = useMemo(() => { + if (query.list == null) { + return 'single' + } + return typeof query.list === 'string' ? query.list : query.list[0] + }, [query]) + return ( @@ -26,15 +46,41 @@ const StigmataListPage = ({ stigmataDataList }: StigmataListPageProps) => { Stigmata + + + Set List + + + - {stigmataDataList.map((stigmata) => { - return - })} + {listMode === 'set' + ? stigmataSetList.map((stigmataSet) => { + return ( + + ) + }) + : stigmataDataList.map((stigmata) => { + return + })} @@ -49,6 +95,9 @@ export async function getStaticProps() { stigmataDataList: listStigmata().map((stigmata) => pick(['id', 'name', 'rarity'], stigmata) ), + stigmataSetList: listStigmataSet().map((stigmataSet) => + pick(['id', 'name', 'rarity'], stigmataSet) + ), }, } }