Enhance BumperTemplateEditor UI: add collapsible functionality for template details, improve user interaction with click-to-toggle feature, and ensure delete action does not trigger unintended collapses. Update state management for better control of template visibility.
This commit is contained in:
@@ -556,6 +556,7 @@ function BumperTemplateEditor({
|
|||||||
onError: (e: unknown) => void
|
onError: (e: unknown) => void
|
||||||
}) {
|
}) {
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
|
const [open, setOpen] = useState(false)
|
||||||
const [name, setName] = useState(template.name)
|
const [name, setName] = useState(template.name)
|
||||||
const [colors, setColors] = useState({
|
const [colors, setColors] = useState({
|
||||||
backgroundColor: template.backgroundColor,
|
backgroundColor: template.backgroundColor,
|
||||||
@@ -598,8 +599,14 @@ function BumperTemplateEditor({
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="flex flex-col gap-3 rounded-md border border-border bg-muted/30 p-4">
|
<div className="flex flex-col gap-3 rounded-md border border-border bg-muted/30 p-4">
|
||||||
<div className="flex items-center justify-between gap-2">
|
<div
|
||||||
|
className="flex cursor-pointer items-center justify-between gap-2"
|
||||||
|
onClick={() => setOpen((o) => !o)}
|
||||||
|
>
|
||||||
<div className="flex flex-wrap items-center gap-2">
|
<div className="flex flex-wrap items-center gap-2">
|
||||||
|
<ChevronDown
|
||||||
|
className={`h-4 w-4 shrink-0 text-muted-foreground transition-transform ${open ? 'rotate-180' : ''}`}
|
||||||
|
/>
|
||||||
<span className="text-sm font-medium">{template.name}</span>
|
<span className="text-sm font-medium">{template.name}</span>
|
||||||
{template.isDefault && <Badge variant="muted">{t('admin.channels.bumperDefault')}</Badge>}
|
{template.isDefault && <Badge variant="muted">{t('admin.channels.bumperDefault')}</Badge>}
|
||||||
<span className="text-xs text-muted-foreground">
|
<span className="text-xs text-muted-foreground">
|
||||||
@@ -613,13 +620,18 @@ function BumperTemplateEditor({
|
|||||||
size="sm"
|
size="sm"
|
||||||
variant="destructive"
|
variant="destructive"
|
||||||
disabled={remove.isPending}
|
disabled={remove.isPending}
|
||||||
onClick={() => remove.mutate()}
|
onClick={(e) => {
|
||||||
|
e.stopPropagation()
|
||||||
|
remove.mutate()
|
||||||
|
}}
|
||||||
>
|
>
|
||||||
{t('common.delete')}
|
{t('common.delete')}
|
||||||
</Button>
|
</Button>
|
||||||
)}
|
)}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{open && (
|
||||||
|
<>
|
||||||
<div className="grid gap-3 sm:grid-cols-2 lg:grid-cols-3">
|
<div className="grid gap-3 sm:grid-cols-2 lg:grid-cols-3">
|
||||||
<div className="flex flex-col gap-1.5">
|
<div className="flex flex-col gap-1.5">
|
||||||
<Label>{t('admin.channels.bumperTemplateName')}</Label>
|
<Label>{t('admin.channels.bumperTemplateName')}</Label>
|
||||||
@@ -674,6 +686,8 @@ function BumperTemplateEditor({
|
|||||||
{t('common.save')}
|
{t('common.save')}
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user