Implement localizations

This commit is contained in:
Justin Edmund 2023-01-26 02:25:46 -08:00
parent 8d0ea633ee
commit 4c3d8360a0

View file

@ -13,6 +13,7 @@ import {
import JobAccessoryItem from '~components/JobAccessoryItem' import JobAccessoryItem from '~components/JobAccessoryItem'
import './index.scss' import './index.scss'
import classNames from 'classnames'
interface Props { interface Props {
buttonref: React.RefObject<HTMLButtonElement> buttonref: React.RefObject<HTMLButtonElement>
@ -46,6 +47,11 @@ const JobAccessoryPopover = ({
// Component state // Component state
const [open, setOpen] = useState(false) const [open, setOpen] = useState(false)
const classes = classNames({
JobAccessory: true,
ReadOnly: !editable,
})
// Hooks // Hooks
useEffect(() => { useEffect(() => {
setOpen(modalOpen) setOpen(modalOpen)
@ -73,7 +79,20 @@ const JobAccessoryPopover = ({
function closePopover() { function closePopover() {
onOpenChange(false) onOpenChange(false)
} }
function capitalizeFirstLetter(string: string) {
return string.charAt(0).toUpperCase() + string.slice(1)
}
const radioGroup = ( const radioGroup = (
<>
<h3>
{capitalizeFirstLetter(
job.accessory_type === 1
? `${t('accessories.paladin')}s`
: t('accessories.manadiver')
)}
</h3>
<RadioGroup.Root <RadioGroup.Root
className="Accessories" className="Accessories"
onValueChange={handleAccessorySelected} onValueChange={handleAccessorySelected}
@ -90,20 +109,32 @@ const JobAccessoryPopover = ({
/> />
))} ))}
</RadioGroup.Root> </RadioGroup.Root>
</>
) )
const readOnly = currentAccessory ? ( const readOnly = currentAccessory ? (
<div className="JobAccessory"> <div className="EquippedAccessory">
<h3>
{t('equipped')}{' '}
{job.accessory_type === 1
? `${t('accessories.paladin')}s`
: t('accessories.manadiver')}
</h3>
<div className="Accessory">
<img <img
alt={currentAccessory.name[locale]} alt={currentAccessory.name[locale]}
src={`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/accessory-grid/${currentAccessory.granblue_id}.jpg`} src={`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/accessory-grid/${currentAccessory.granblue_id}.jpg`}
/> />
<h4>{currentAccessory.name[locale]}</h4> <h4>{currentAccessory.name[locale]}</h4>
</div> </div>
</div>
) : ( ) : (
<h3> <h3>
No shield selected {t('no_accessory', {
{/* {t('no_accessory', { job: job.name.en.replace(' ', '-').toLowerCase() })} */} accessory: t(
`accessories.${job.accessory_type === 1 ? 'paladin' : 'manadiver'}`
),
})}
</h3> </h3>
) )
@ -111,7 +142,7 @@ const JobAccessoryPopover = ({
<Popover open={open}> <Popover open={open}>
<PopoverTrigger asChild>{children}</PopoverTrigger> <PopoverTrigger asChild>{children}</PopoverTrigger>
<PopoverContent <PopoverContent
className="JobAccessory" className={classes}
onEscapeKeyDown={closePopover} onEscapeKeyDown={closePopover}
onPointerDownOutside={handlePointerDownOutside} onPointerDownOutside={handlePointerDownOutside}
> >