import { X } from 'lucide-react' import { parseAsString, useQueryState } from 'nuqs' import { useState } from 'react' import { Button, cn, Input, ResizableHandle, ResizablePanel, Tabs_Shadcn_, TabsContent_Shadcn_, TabsList_Shadcn_, TabsTrigger_Shadcn_, } from 'ui' import { GenericSkeletonLoader } from 'ui-patterns/ShimmeringLoader' import { SimpleCodeBlock } from 'ui-patterns/SimpleCodeBlock' import { UserLogs } from './UserLogs' import { UserOverview } from './UserOverview' import { PANEL_PADDING } from './Users.constants' import { useUserQuery } from '@/data/auth/user-query' import { User } from '@/data/auth/users-infinite-query' import { useSelectedProjectQuery } from '@/hooks/misc/useSelectedProject' export const UserPanel = () => { const { data: project } = useSelectedProjectQuery() const [selectedId, setSelectedId] = useQueryState( 'show', parseAsString.withOptions({ history: 'push', clearOnDefault: true }) ) const [view, setView] = useState<'overview' | 'raw' | 'logs'>('overview') const [searchQuery, setSearchQuery] = useState('') const { data: selectedUser, isPending } = useUserQuery({ projectRef: project?.ref, connectionString: project?.connectionString, userId: selectedId, }) 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)} ) : (

Unable to find user with the following ID in project

ID: {selectedId}

)}
) }