'use client' import React, { useEffect, useState } from 'react' import { useRouter } from 'next/navigation' import { useTranslations } from 'next-intl' import { getCookie } from 'cookies-next' import { Dialog } from '~components/common/Dialog' import DialogContent from '~components/common/DialogContent' import DialogFooter from '~components/common/DialogFooter' import Button from '~components/common/Button' import Overlay from '~components/common/Overlay' import mapWeaponSeries from '~utils/mapWeaponSeries' import styles from './index.module.scss' interface Props { open: boolean incomingWeapon: Weapon conflictingWeapons: GridWeapon[] desiredPosition: number resolveConflict: () => void resetConflict: () => void } const WeaponConflictModal = (props: Props) => { // Localization const router = useRouter() const t = useTranslations('common') const locale = getCookie('NEXT_LOCALE') && ['en', 'ja'].includes(getCookie('NEXT_LOCALE') as string) ? (getCookie('NEXT_LOCALE') as string) : 'en' // States const [open, setOpen] = useState(false) // Refs const footerRef = React.createRef() useEffect(() => { setOpen(props.open) }, [setOpen, props.open]) function imageUrl(weapon?: Weapon) { return `${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/weapon-square/${weapon?.granblue_id}.jpg` } function openChange(open: boolean) { setOpen(open) props.resetConflict() } function close() { setOpen(false) props.resetConflict() } const infoString = () => { const series = props.incomingWeapon.series const seriesSlug = t(`series.${mapWeaponSeries(series)}`) return [2, 3, 34].includes(series) ? ( /* TODO: Refactor to t.rich() */ t('modals.conflict.weapon.opus-draconic') ) : ( /* TODO: Refactor to t.rich() */ t('modals.conflict.weapon.generic', { series: seriesSlug }) ) } return ( event.preventDefault()} onEscapeKeyDown={close} >

{infoString()}

    {props.conflictingWeapons?.map((weapon, i) => (
  • {weapon.object.name[locale]} {weapon.object.name[locale]}
  • ))}
{props.incomingWeapon?.name[locale]} {props.incomingWeapon?.name[locale]}
,
) } export default WeaponConflictModal