'use client'; import Link from 'next/link'; import { useState } from 'react'; import { Loader2, Plus, Search, UsersRound } from 'lucide-react'; import { AvatarWithPresence } from '@/components/family/avatar-with-presence'; import { FamilyGroupSelector } from '@/components/family/family-group-selector'; import { FamilyInviteDialog } from '@/components/family/family-invite-dialog'; import { useFamilyOverlay } from '@/components/family/family-overlay-provider'; import { useAuth } from '@/components/id/auth-provider'; import { useSelectedFamily } from '@/hooks/use-primary-family'; import { addBotFatherToFamily, getApiErrorMessage } from '@/lib/api'; import { Button } from '@/components/ui/button'; import { useToast } from '@/components/id/toast-provider'; import { cn } from '@/lib/utils'; export function FamilySidebarPanel() { const { user, token } = useAuth(); const { group, groupSummaries, loading, hasFamily, selectedGroupId, setSelectedGroupId, presenceByUserId, refresh } = useSelectedFamily(Boolean(user && token)); const { openChatWithMember } = useFamilyOverlay(); const { showToast } = useToast(); const [inviteOpen, setInviteOpen] = useState(false); const [addingBotFather, setAddingBotFather] = useState(false); if (!user || !token) return null; return ( <>

Семья

{hasFamily ? ( ) : ( Создать семью )}
{hasFamily ? ( ) : null}
{loading ? (
Загрузка...
) : hasFamily ? (
{(group?.members ?? []).map((member) => { const presence = presenceByUserId.get(member.userId); const isSelf = member.userId === user.id; return ( ); })} {group?.botFatherAvailable ? ( ) : null}
) : (
Приглашайте близких и общайтесь в чатах
)}
{hasFamily ? ( void refresh()} /> ) : null} ); }