import React from 'react' import { useTranslations } from 'next-intl' import classNames from 'classnames' import ChangelogUnit from '~components/about/ChangelogUnit' import styles from './index.module.scss' interface UpdateObject { character?: string[] summon?: string[] weapon?: string[] } interface Props { version: string dateString: string event: string newItems?: UpdateObject uncappedItems?: UpdateObject transcendedItems?: UpdateObject awakenedItems?: string[] raidItems?: string[] numNotes: number } const ContentUpdate = ({ version, dateString, event, newItems, uncappedItems, transcendedItems, awakenedItems, raidItems, numNotes, }: Props) => { const updates = useTranslations('updates') const date = new Date(dateString) function newItemElements(key: 'character' | 'weapon' | 'summon') { let elements: React.ReactNode[] = [] if (newItems && newItems[key]) { const items = newItems[key] elements = items ? items.map((id, i) => { return }) : [] } return elements } function newItemSection(key: 'character' | 'weapon' | 'summon') { let section: React.ReactNode = '' if (newItems && newItems[key]) { const items = newItems[key] section = items && items.length > 0 ? (

{updates(`labels.${key}s`)}

{newItemElements(key)}
) : ( '' ) } return section } function uncapItemElements(key: 'character' | 'weapon' | 'summon') { let elements: React.ReactNode[] = [] if (uncappedItems && uncappedItems[key]) { const items = uncappedItems[key] elements = items ? items.map((id) => { return key === 'character' ? ( ) : ( ) }) : [] } return elements } function uncapItemSection(key: 'character' | 'weapon' | 'summon') { let section: React.ReactNode = '' if (uncappedItems && uncappedItems[key]) { const items = uncappedItems[key] section = items && items.length > 0 ? (

{updates(`labels.uncaps.${key}s`)}

{uncapItemElements(key)}
) : ( '' ) } return section } function transcendItemElements(key: 'character' | 'weapon' | 'summon') { let elements: React.ReactNode[] = [] if (transcendedItems && transcendedItems[key]) { const items = transcendedItems[key] elements = items ? items.map((id) => { return key === 'character' || key === 'summon' ? ( ) : ( ) }) : [] } return elements } function transcendItemSection(key: 'character' | 'weapon' | 'summon') { let section: React.ReactNode = '' if (transcendedItems && transcendedItems[key]) { const items = transcendedItems[key] section = items && items.length > 0 ? (

{updates(`labels.transcends.${key}s`)}

{transcendItemElements(key)}
) : ( '' ) } return section } function newRaidSection() { let section: React.ReactNode = '' if (raidItems) { section = raidItems && raidItems.length > 0 && (

{updates(`labels.raids`)}

{raidItemElements()}
) } return section } function awakenedItemElements() { let elements: React.ReactNode[] = [] if (awakenedItems) { elements = awakenedItems.map((id) => { return }) } return elements } function awakenedItemSection() { let section: React.ReactNode = '' if (awakenedItems && awakenedItems.length > 0) { section = (

{updates(`labels.awakened.weapons`)}

{awakenedItemElements()}
) } return section } function raidItemElements() { let elements: React.ReactNode[] = [] if (raidItems) { elements = raidItems.map((id) => { return }) } return elements } return (

{`${updates('events.date', { year: date.getFullYear(), month: `${date.getMonth() + 1}`.padStart(2, '0'), })} ${updates(event)}`}

{newItemSection('character')} {uncapItemSection('character')} {transcendItemSection('character')} {newItemSection('weapon')} {uncapItemSection('weapon')} {transcendItemSection('weapon')} {newItemSection('summon')} {uncapItemSection('summon')} {transcendItemSection('summon')} {awakenedItemSection()} {newRaidSection()}
{numNotes > 0 ? (

{updates('labels.updates')}

    {[...Array(numNotes)].map((e, i) => (
  • {updates(`versions.${version}.features.${i}`)}
  • ))}
) : ( '' )}
) } ContentUpdate.defaultProps = { numNotes: 0, } export default ContentUpdate