2025-01-27 12:32:15 +01:00
|
|
|
import { Avatar } from '@/renderer/components/avatars/avatar';
|
|
|
|
|
import { useWorkspace } from '@/renderer/contexts/workspace';
|
|
|
|
|
import { useQuery } from '@/renderer/hooks/use-query';
|
2025-02-05 22:40:35 +01:00
|
|
|
import { LocalDatabaseNode } from '@/shared/types/nodes';
|
2025-01-27 12:32:15 +01:00
|
|
|
|
|
|
|
|
interface DatabaseContainerTabProps {
|
|
|
|
|
databaseId: string;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const DatabaseContainerTab = ({
|
|
|
|
|
databaseId,
|
|
|
|
|
}: DatabaseContainerTabProps) => {
|
|
|
|
|
const workspace = useWorkspace();
|
|
|
|
|
|
2025-01-29 13:56:44 +01:00
|
|
|
const { data, isPending } = useQuery({
|
2025-02-05 22:40:35 +01:00
|
|
|
type: 'node_get',
|
|
|
|
|
nodeId: databaseId,
|
2025-01-27 12:32:15 +01:00
|
|
|
accountId: workspace.accountId,
|
|
|
|
|
workspaceId: workspace.id,
|
|
|
|
|
});
|
|
|
|
|
|
2025-01-29 13:56:44 +01:00
|
|
|
if (isPending) {
|
|
|
|
|
return <p className="text-sm text-muted-foreground">Loading...</p>;
|
|
|
|
|
}
|
|
|
|
|
|
2025-02-05 22:40:35 +01:00
|
|
|
const database = data as LocalDatabaseNode;
|
2025-01-27 12:32:15 +01:00
|
|
|
if (!database) {
|
2025-01-29 13:56:44 +01:00
|
|
|
return <p className="text-sm text-muted-foreground">Not found</p>;
|
2025-01-27 12:32:15 +01:00
|
|
|
}
|
|
|
|
|
|
2025-01-29 13:56:44 +01:00
|
|
|
const name =
|
|
|
|
|
database.attributes.name && database.attributes.name.length > 0
|
|
|
|
|
? database.attributes.name
|
|
|
|
|
: 'Unnamed';
|
|
|
|
|
|
2025-01-27 12:32:15 +01:00
|
|
|
return (
|
|
|
|
|
<div className="flex items-center space-x-2">
|
|
|
|
|
<Avatar
|
|
|
|
|
size="small"
|
|
|
|
|
id={database.id}
|
2025-01-29 13:56:44 +01:00
|
|
|
name={name}
|
2025-01-27 12:32:15 +01:00
|
|
|
avatar={database.attributes.avatar}
|
|
|
|
|
/>
|
2025-01-29 13:56:44 +01:00
|
|
|
<span>{name}</span>
|
2025-01-27 12:32:15 +01:00
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
};
|