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,37 +79,62 @@ 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 = (
<RadioGroup.Root <>
className="Accessories" <h3>
onValueChange={handleAccessorySelected} {capitalizeFirstLetter(
> job.accessory_type === 1
{accessories.map((accessory) => ( ? `${t('accessories.paladin')}s`
<JobAccessoryItem : t('accessories.manadiver')
accessory={accessory} )}
key={accessory.id} </h3>
selected={ <RadioGroup.Root
currentAccessory && currentAccessory.id === accessory.id className="Accessories"
? true onValueChange={handleAccessorySelected}
: false >
} {accessories.map((accessory) => (
/> <JobAccessoryItem
))} accessory={accessory}
</RadioGroup.Root> key={accessory.id}
selected={
currentAccessory && currentAccessory.id === accessory.id
? true
: false
}
/>
))}
</RadioGroup.Root>
</>
) )
const readOnly = currentAccessory ? ( const readOnly = currentAccessory ? (
<div className="JobAccessory"> <div className="EquippedAccessory">
<img <h3>
alt={currentAccessory.name[locale]} {t('equipped')}{' '}
src={`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/accessory-grid/${currentAccessory.granblue_id}.jpg`} {job.accessory_type === 1
/> ? `${t('accessories.paladin')}s`
<h4>{currentAccessory.name[locale]}</h4> : t('accessories.manadiver')}
</h3>
<div className="Accessory">
<img
alt={currentAccessory.name[locale]}
src={`${process.env.NEXT_PUBLIC_SIERO_IMG_URL}/accessory-grid/${currentAccessory.granblue_id}.jpg`}
/>
<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}
> >