+ {/* Поля бота */}
+
+
+ setForm(f => ({ ...f, name: e.target.value }))}
+ />
+
+
+
+
+
+ setForm(f => ({ ...f, isActive: c }))}
+ />
+
+
+
+
+
+ {/* Группы доступа */}
+
+
+
+ {groups.map(g => {
+ const IconComp = Icons[g.icon]
+ return (
+
+ )
+ })}
+
+
+
+
+
+ {/* Список команд */}
+
+
+
+ {commands.map(cmd => (
+
+
+
{cmd.command}
+ {/* Показываем группы команды, если есть */}
+
+ {cmd.groupIds?.length > 0 ? cmd.groupIds.map(gid => {
+ // gid может быть объектом-группой (id, name, icon), или просто id — зависит от API!
+ // Лучше поддерживать оба варианта:
+ const group = typeof gid === 'object' ? gid : groups.find(g => g.id === gid)
+ if (!group) return null
+ const IconComp = Icons[group.icon] || Icons.User
+ return (
+
+ {IconComp && }
+ {group.name}
+
+ )
+ }) : (
+ Нет групп
+ )}
+
+ {/* Описание если есть */}
+ {cmd.description && (
+
{cmd.description}
+ )}
+
+
+
+
+
+
+ ))}
+
+
+
+
+
+