'use client'; import React from 'react'; import {SpellEditState, spellPowerLevels, SpellTagProps} from '@/lib/models/Spell'; import {SeriesSpellDetailResponse} from '@/lib/models/Series'; import {SelectBoxProps} from '@/shared/interface'; import SpellTagChip from '@/components/book/settings/spells/SpellTagChip'; import {useTranslations} from 'next-intl'; interface SpellEditorDetailProps { spell: SpellEditState; availableTags: SpellTagProps[]; seriesSpell?: SeriesSpellDetailResponse | null; } /** * SpellEditorDetail - Version sidebar lecture seule * Layout linéaire simple, juste les infos essentielles empilées * PAS de CollapsableArea, PAS de grids */ export default function SpellEditorDetail({ spell, availableTags, seriesSpell, }: SpellEditorDetailProps): React.JSX.Element { const t = useTranslations(); function getSelectedTags(): SpellTagProps[] { return availableTags.filter(function (tag: SpellTagProps): boolean { return spell.tags.includes(tag.id); }); } function getLocalizedPowerLevel(): string { if (!spell.powerLevel || spell.powerLevel === 'none') { return ''; } const level: SelectBoxProps | undefined = spellPowerLevels.find(function (l: SelectBoxProps): boolean { return l.value === spell.powerLevel; }); return level ? t(level.label) : spell.powerLevel; } function renderField(label: string, value: string | null | undefined): React.JSX.Element | null { if (!value) return null; return (
{value}