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