diff --git a/components/ChangelogUnit/index.scss b/components/ChangelogUnit/index.scss index b79f2c75..6c6a0e8c 100644 --- a/components/ChangelogUnit/index.scss +++ b/components/ChangelogUnit/index.scss @@ -1,7 +1,7 @@ .ChangelogUnit { display: flex; flex-direction: column; - gap: $unit-half; + gap: $unit; img { border-radius: $input-corner; @@ -12,5 +12,6 @@ font-size: $font-small; font-weight: $medium; text-align: center; + line-height: 1.4; } } diff --git a/components/ChangelogUnit/index.tsx b/components/ChangelogUnit/index.tsx index e9786901..98fdb87b 100644 --- a/components/ChangelogUnit/index.tsx +++ b/components/ChangelogUnit/index.tsx @@ -1,10 +1,11 @@ -import React from 'react' +import { useRouter } from 'next/router' +import React, { useEffect, useState } from 'react' +import api from '~utils/api' import './index.scss' interface Props { id: string - name: string type: 'character' | 'summon' | 'weapon' image?: '01' | '02' | '03' | '04' } @@ -17,8 +18,52 @@ const defaultProps = { image: '01', } -const ChangelogUnit = ({ id, type, image, name }: Props) => { - function generateImageUrl() { +const ChangelogUnit = ({ id, type, image }: Props) => { + // Router + const router = useRouter() + const locale = + router.locale && ['en', 'ja'].includes(router.locale) ? router.locale : 'en' + + // State + const [item, setItem] = useState() + + // Hooks + useEffect(() => { + fetch() + }, []) + + async function fetch() { + switch (type) { + case 'character': + const character = await fetchCharacter() + setItem(character.data) + break + + case 'weapon': + const weapon = await fetchWeapon() + setItem(weapon.data) + break + + case 'summon': + const summon = await fetchSummon() + setItem(summon.data) + break + } + } + + async function fetchCharacter() { + return api.endpoints.characters.getOne({ id: id }) + } + + async function fetchWeapon() { + return api.endpoints.weapons.getOne({ id: id }) + } + + async function fetchSummon() { + return api.endpoints.summons.getOne({ id: id }) + } + + const imageUrl = () => { let src = '' switch (type) { @@ -37,9 +82,9 @@ const ChangelogUnit = ({ id, type, image, name }: Props) => { } return ( -
- {name} -

{name}

+
+ {item +

{item ? item.name[locale] : ''}

) }