Implement localizations
This commit is contained in:
parent
8d0ea633ee
commit
4c3d8360a0
1 changed files with 56 additions and 25 deletions
|
|
@ -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}
|
||||||
>
|
>
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue