Files
ForbiddenStarsApp/frontend/src/components/GroupSwitcher.tsx
T
NotBigGhostandClaude Fable 5 dbc32b7f4d UI: в незавершённых партиях на главной ники некликабельны; кнопка «Создать группу» без плюса
Как и в списке партий группы: карточка целиком ведёт в партию, ссылки
на профили внутри мешали выбору. Элемент возвращён к <button>.
Плюс правка подписи кнопки создания группы: «+ Создать группу» ->
«Создать группу».

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-15 17:24:31 +03:00

42 lines
1.3 KiB
TypeScript

import { useState } from "react";
import { useMe, useSetActiveGroup } from "../hooks/auth";
import { CreateGroupForm } from "./CreateGroupForm";
export function GroupSwitcher() {
const { data: me } = useMe();
const setActive = useSetActiveGroup();
const [creating, setCreating] = useState(false);
if (!me || me.groups.length === 0) return null;
return (
<div className="card">
<h3>Мои группы</h3>
<div className="stack">
{me.groups.map((g) => {
const active = g.id === me.active_group_id;
return (
<button
key={g.id}
className={"btn" + (active ? " btn-primary" : "")}
onClick={() => !active && setActive.mutate(g.id)}
>
{g.name} {active && "✓"}
</button>
);
})}
{/* Плашка создания новой группы — в одном ряду логики с выбором группы. */}
<button className="btn" onClick={() => setCreating((v) => !v)}>
Создать группу
</button>
</div>
{creating && (
<div style={{ marginTop: 12 }}>
<CreateGroupForm onCreated={() => setCreating(false)} />
</div>
)}
</div>
);
}