import { User } from 'data/auth/users-infinite-query' import { X } from 'lucide-react' import { useState } from 'react' import { Button, cn, Input_Shadcn_, ResizableHandle, ResizablePanel, SimpleCodeBlock, Tabs_Shadcn_, TabsContent_Shadcn_, TabsList_Shadcn_, TabsTrigger_Shadcn_, } from 'ui' import { UserLogs } from './UserLogs' import { UserOverview } from './UserOverview' import { PANEL_PADDING } from './Users.constants' interface UserPanelProps { selectedUser?: User onClose: () => void } export const UserPanel = ({ selectedUser, onClose }: UserPanelProps) => { const [view, setView] = useState<'overview' | 'raw' | 'logs'>('overview') const [searchQuery, setSearchQuery] = useState('') const filteredProperties = selectedUser ? Object.entries(selectedUser) .filter( ([key, value]) => key.toLowerCase().includes(searchQuery.toLowerCase()) || (typeof value === 'string' && value.toLowerCase().includes(searchQuery.toLowerCase())) ) .reduce((obj, [key, value]) => { if (value !== undefined) { obj[key as keyof User] = value as any } return obj }, {} as Partial) : {} return ( <> {JSON.stringify(filteredProperties, null, 2)} ) }