import { NextPageContext } from 'next' import { Box, Card, Flex, Heading } from 'theme-ui' import AttributeIcon from '../../../components/v2/AttributeIcon' import AvatarFigureImage from '../../../components/v2/AvatarFigureImage' import AvatarSkillIcon from '../../../components/v2/AvatarSkillIcon' import AvatarSubSkillIcon from '../../../components/v2/AvatarSubSkillIcon' import BattlesuitAvatarIcon from '../../../components/v2/BattlesuitAvatarIcon' import FormattedText from '../../../components/v2/FormattedText' import { formatSkillInfo, formatSubSkillInfo } from '../../../lib/v2/data/formatText' import { loadBattlesuitCatalog, loadBattlesuitData } from '../../../lib/v2/server/loadData' import { Battlesuit, SkillTagItem } from '../../../lib/v2/data/types' import { Fragment } from 'react' import TagIcon from '../../../components/v2/TagIcon' import { getAttributeLabel, getCharacterTypeLabel, getSkillTypeLabel, getTagTypeLabel, getWeaponTypeLabel } from '../../../lib/v2/data/text' import StarIcon from '../../../components/v2/StarIcon' import ChibiIcon from '../../../components/v2/ChibiIcon' import WeaponTypeIcon from '../../../components/v2/WeaponTypeIcon' import { sortBattlesuitSkill } from '../../../lib/v2/data/utils' import Honkai3rdLayout from '../../../components/layouts/Honkai3rdLayout' import { generateI18NPaths, getI18NProps } from '../../../server/i18n' import Head from '../../../components/atoms/Head' import { useTranslation } from 'next-i18next' import { useLocale } from '../../../lib/i18n' interface BattlesuitShowPageProps { battlesuit: Battlesuit } const BattlesuitShowPage = ({ battlesuit }: BattlesuitShowPageProps) => { const { t } = useTranslation() const locale = useLocale() return ( { return getTagTypeLabel(tag, locale) }) .join(', ')}`} canonicalHref={`/honkai3rd/battlesuits/${battlesuit.id}`} /> {battlesuit.fullName} {getCharacterTypeLabel(battlesuit.character, locale)} {getAttributeLabel(battlesuit.attributeType, locale)} {getWeaponTypeLabel(battlesuit.weapon, locale)} {battlesuit.tags.map(tag => { return ( {getTagTypeLabel(tag, locale)} ) })} Skills {battlesuit.skills.sort(sortBattlesuitSkill).map(skill => { return ( {skill.name} {skill.tags.length > 0 && ( {skill.tags.map((tag, index) => { return })} )} {getSkillTypeLabel(skill.skillType, locale)} {formatSkillInfo(skill)} {skill.subSkills.map(subSkill => { return ( {subSkill.name} {subSkill.unlockStar.localeCompare(battlesuit.initialStar) > 0 && ( )} {subSkill.tags.length > 0 && ( {subSkill.tags.map((tag, index) => { return })} )} {formatSubSkillInfo(subSkill)} ) })} ) })} {/*
{JSON.stringify(battlesuit, null, 2)}
*/}
) } export default BattlesuitShowPage export async function getStaticProps({ locale, params }: NextPageContext & { params: { battlesuitId: string } }) { const battlesuit = loadBattlesuitData(params.battlesuitId, locale) return { props: { battlesuit, ...(await getI18NProps(locale)) } } } export async function getStaticPaths() { const battlesuitCatalog = loadBattlesuitCatalog() return { paths: generateI18NPaths( battlesuitCatalog.map(catalogItem => { return { params: { battlesuitId: catalogItem.id } } }) ), fallback: false } } interface SkillTagBoxProps { tag: SkillTagItem } const SkillTagItem = ({ tag }: SkillTagBoxProps) => { return }