From a4c3371b67b28a5e432ed5ef110fe27e585ab20a Mon Sep 17 00:00:00 2001 From: Sakura Knoll Date: Sat, 15 Jul 2023 01:56:57 +0900 Subject: [PATCH] Simpilify home page --- src/components/atoms/NavItem.tsx | 66 +++++++ .../organisms/Honkai3rdNavigator.tsx | 94 ++------- src/pages/honkai3rd/index.tsx | 178 ++---------------- 3 files changed, 97 insertions(+), 241 deletions(-) create mode 100644 src/components/atoms/NavItem.tsx diff --git a/src/components/atoms/NavItem.tsx b/src/components/atoms/NavItem.tsx new file mode 100644 index 00000000..733a561a --- /dev/null +++ b/src/components/atoms/NavItem.tsx @@ -0,0 +1,66 @@ +/** @jsxImportSource theme-ui */ +import { NavLink, Text } from '@theme-ui/components' +import NextLink from 'next/link' +import { assetsBucketBaseUrl } from '../../lib/consts' +import { useTranslation } from '../../lib/i18n' +import SquareImageBox from '../atoms/SquareImageBox' + +type NavItemTarget = 'battlesuits' | 'stigmata' | 'weapons' | 'elfs' | 'elysian-realm' | 'media' +interface NavItemProps { + target: NavItemTarget +} + +const NavItem = ({ target }: NavItemProps) => { + const { t } = useTranslation() + return ( + + + + + {t(`common.${target}`)} + + + + ) +} + +export default NavItem + +function getIconByTarget(target: string) { + switch (target) { + case 'versions': + return `${assetsBucketBaseUrl}/honkai3rd/nav-icons/versions.webp` + case 'media': + return `${assetsBucketBaseUrl}/honkai3rd/nav-icons/grand-instructor.webp` + default: + return `${assetsBucketBaseUrl}/honkai3rd/nav-icons/${target}.png` + } +} + +function getHref(target: NavItemTarget) { + switch (target) { + case 'battlesuits': + case 'weapons': + case 'elfs': + return `/honkai3rd/${target}` + case 'stigmata': + return '/honkai3rd/stigmata-sets' + case 'elysian-realm': + return '/honkai3rd/er' + } + return `/honkai3rd/${target}` +} diff --git a/src/components/organisms/Honkai3rdNavigator.tsx b/src/components/organisms/Honkai3rdNavigator.tsx index 68c313c1..bb5020c6 100644 --- a/src/components/organisms/Honkai3rdNavigator.tsx +++ b/src/components/organisms/Honkai3rdNavigator.tsx @@ -5,12 +5,11 @@ import { NavLink, Heading, Text, Box, Flex, IconButton, Switch, Label } from '@t import NextLink from 'next/link' import { useRouter } from 'next/router' import { useColorMode } from 'theme-ui' -import { assetsBucketBaseUrl } from '../../lib/consts' import { useTranslation } from '../../lib/i18n' -import SquareImageBox from '../atoms/SquareImageBox' +import NavItem from '../atoms/NavItem' interface Honkai3rdNavigatorProps { - close: () => void + close?: () => void } const Honkai3rdNavigator = ({ close }: Honkai3rdNavigatorProps) => { @@ -24,20 +23,23 @@ const Honkai3rdNavigator = ({ close }: Honkai3rdNavigatorProps) => { p: 2 }} > - - - - - + {close != null && ( + + + + + + )} + Abyss Lab @@ -106,61 +108,3 @@ const Honkai3rdNavigator = ({ close }: Honkai3rdNavigatorProps) => { } export default Honkai3rdNavigator - -type NavItemTarget = 'battlesuits' | 'stigmata' | 'weapons' | 'elfs' | 'elysian-realm' | 'media' -interface NavItemProps { - target: NavItemTarget -} - -const NavItem = ({ target }: NavItemProps) => { - const { t } = useTranslation() - return ( - - - - - {t(`common.${target}`)} - - - - ) -} - -function getIconByTarget(target: string) { - switch (target) { - case 'versions': - return `${assetsBucketBaseUrl}/honkai3rd/nav-icons/versions.webp` - case 'media': - return `${assetsBucketBaseUrl}/honkai3rd/nav-icons/grand-instructor.webp` - default: - return `${assetsBucketBaseUrl}/honkai3rd/nav-icons/${target}.png` - } -} - -function getHref(target: NavItemTarget) { - switch (target) { - case 'battlesuits': - case 'weapons': - case 'elfs': - return `/honkai3rd/${target}` - case 'stigmata': - return '/honkai3rd/stigmata-sets' - case 'elysian-realm': - return '/honkai3rd/er' - } - return `/honkai3rd/${target}` -} diff --git a/src/pages/honkai3rd/index.tsx b/src/pages/honkai3rd/index.tsx index 91d0b198..da912438 100644 --- a/src/pages/honkai3rd/index.tsx +++ b/src/pages/honkai3rd/index.tsx @@ -1,14 +1,5 @@ /** @jsxImportSource theme-ui */ -import { Box, Heading, Link, Paragraph } from '@theme-ui/components' -import NextLink from 'next/link' -import Breadcrumb from '../../components/organisms/Breadcrumb' -import { getBattlesuitById } from '../../server/data/honkai3rd/battlesuits' -import { - getCurrentVersion, - listVersionData, -} from '../../server/data/honkai3rd/versions' -import { getWeaponById } from '../../server/data/honkai3rd/weapons' -import { format as formatDate } from 'date-fns' +import { Box } from '@theme-ui/components' import { BattlesuitData } from '../../lib/honkai3rd/battlesuits' import { WeaponData } from '../../lib/honkai3rd/weapons' import { VersionData } from '../../lib/honkai3rd/versions' @@ -16,13 +7,8 @@ import { getI18NProps } from '../../server/i18n' import { NextPageContext } from 'next' import { useTranslation } from '../../lib/i18n' import Head from '../../components/atoms/Head' -import PageLink from '../../components/atoms/PageLink' -import Honkai3rdLayout from '../../components/layouts/Honkai3rdLayout' -import WeaponCard from '../../components/molecules/WeaponCard' -import BattlesuitCard from '../../components/molecules/BattlesuitCard' -import { getStigmataSetBySetId } from '../../server/data/honkai3rd/stigmata' import { StigmataSet } from '../../lib/honkai3rd/stigmata' -import StigmataSetCard from '../../components/molecules/StigmataSetCard' +import Honkai3rdNavigator from '../../components/organisms/Honkai3rdNavigator' interface VersionIndexPageProps { versionDataList: VersionData[] @@ -32,168 +18,28 @@ interface VersionIndexPageProps { currentVersionNewStigmataSets: StigmataSet[] } -const VersionIndexPage = ({ - currentVersionData, - currentVersionNewBattlesuits, - versionDataList, - currentVersionNewWeapons, - currentVersionNewStigmataSets, -}: VersionIndexPageProps) => { +const HomePage = ({}: VersionIndexPageProps) => { const { t } = useTranslation() return ( - - + + - - - - - {currentVersionData.previousVersion != null && ( - - {t('versions.previous')} (v - {currentVersionData.previousVersion}) - - )} - {currentVersionData.nextVersion != null && ( - - {t('versions.next')} (v{currentVersionData.nextVersion}) - - )} - + + - - v{currentVersionData.version} : {currentVersionData.name}{' '} - ({t('versions.current')}) - - - {formatDate(new Date(currentVersionData.duration[0]), 'PP')} -{' '} - {currentVersionData.duration[1] != null - ? formatDate(new Date(currentVersionData.duration[1]), 'PP') - : ''} - - - - - {t('versions.new-battlesuits')} - - - {currentVersionNewBattlesuits.map((battlesuit) => { - return ( - - ) - })} - - - - {t('versions.new-weapons')} - - - {currentVersionNewWeapons.map((weapon) => { - return - })} - - - - {t('versions.new-stigmata-sets')} - - - {currentVersionNewStigmataSets.map((stigmataSet) => { - return ( - - ) - })} - - - - - We've decided to stop providing weekly bossses and supply - events since v6.2. But you can still find it from{' '} - - CAPTAIN ALPACA's Website - - . - - - - {t('versions.all-versions')} - - - {versionDataList.map((versionData) => { - return ( - - - - - {versionData.version} : {versionData.name} ( - {formatDate(new Date(versionData.duration[0]), 'PP')} -{' '} - {versionData.duration[1] != null - ? formatDate(new Date(versionData.duration[1]), 'PP') - : ''} - ) - - - - - ) - })} - + - + ) } export async function getStaticProps({ locale }: NextPageContext) { - const currentVersionData = getCurrentVersion(locale)! - - const currentVersionNewBattlesuits = currentVersionData.newBattlesuits.map( - (battlesuitId) => { - return getBattlesuitById(battlesuitId, locale) - } - ) - const currentVersionNewWeapons = currentVersionData.newWeapons.map( - (weaponId) => { - return getWeaponById(weaponId, locale) - } - ) - - const currentVersionNewStigmataSets = currentVersionData.newStigmataSets.map( - (stigmataSetId) => { - return getStigmataSetBySetId(stigmataSetId, locale) - } - ) - return { props: { - currentVersionData, - currentVersionNewBattlesuits, - currentVersionNewWeapons, - currentVersionNewStigmataSets, - versionDataList: listVersionData(locale), - ...(await getI18NProps(locale)), - }, + ...(await getI18NProps(locale)) + } } } -export default VersionIndexPage +export default HomePage