2024-09-02 08:43:10 +02:00
|
|
|
import React from 'react';
|
2024-10-03 17:34:11 +02:00
|
|
|
import { useQuery } from '@/renderer/hooks/use-query';
|
2024-10-03 17:42:17 +02:00
|
|
|
import { Database } from '@/renderer/components/databases/database';
|
|
|
|
|
import { DatabaseViews } from '@/renderer/components/databases/database-views';
|
2024-10-03 17:35:28 +02:00
|
|
|
import { useWorkspace } from '@/renderer/contexts/workspace';
|
2024-09-02 08:43:10 +02:00
|
|
|
|
|
|
|
|
interface DatabaseContainerNodeProps {
|
2024-10-05 11:15:35 +02:00
|
|
|
nodeId: string;
|
2024-09-02 08:43:10 +02:00
|
|
|
}
|
|
|
|
|
|
2024-10-05 11:15:35 +02:00
|
|
|
export const DatabaseContainerNode = ({
|
|
|
|
|
nodeId,
|
|
|
|
|
}: DatabaseContainerNodeProps) => {
|
2024-10-03 17:11:39 +02:00
|
|
|
const workspace = useWorkspace();
|
|
|
|
|
|
|
|
|
|
const { data: views, isPending: isViewsPending } = useQuery({
|
|
|
|
|
type: 'database_view_list',
|
2024-10-05 11:15:35 +02:00
|
|
|
databaseId: nodeId,
|
2024-10-03 17:11:39 +02:00
|
|
|
userId: workspace.userId,
|
|
|
|
|
});
|
2024-09-02 08:43:10 +02:00
|
|
|
|
2024-10-05 11:15:35 +02:00
|
|
|
if (isViewsPending) {
|
2024-09-02 08:43:10 +02:00
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
2024-10-05 11:15:35 +02:00
|
|
|
if (!views) {
|
2024-09-10 08:11:29 +02:00
|
|
|
return null;
|
|
|
|
|
}
|
2024-09-02 08:43:10 +02:00
|
|
|
|
2024-09-13 14:05:30 +02:00
|
|
|
return (
|
2024-10-05 11:15:35 +02:00
|
|
|
<Database databaseId={nodeId}>
|
2024-09-13 14:05:30 +02:00
|
|
|
{views && <DatabaseViews views={views} />}
|
|
|
|
|
</Database>
|
|
|
|
|
);
|
2024-09-02 08:43:10 +02:00
|
|
|
};
|