2024-09-02 08:43:10 +02:00
|
|
|
import React from 'react';
|
|
|
|
|
import { LocalNode } from '@/types/nodes';
|
2024-10-03 17:11:39 +02:00
|
|
|
import { useQuery } from '@/hooks/use-query';
|
2024-09-11 14:03:38 +02:00
|
|
|
import { Database } from '@/components/databases/database';
|
2024-09-13 14:05:30 +02:00
|
|
|
import { DatabaseViews } from '@/components/databases/database-views';
|
2024-10-03 17:11:39 +02:00
|
|
|
import { useWorkspace } from '@/contexts/workspace';
|
2024-09-02 08:43:10 +02:00
|
|
|
|
|
|
|
|
interface DatabaseContainerNodeProps {
|
|
|
|
|
node: LocalNode;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const DatabaseContainerNode = ({ node }: DatabaseContainerNodeProps) => {
|
2024-10-03 17:11:39 +02:00
|
|
|
const workspace = useWorkspace();
|
|
|
|
|
|
|
|
|
|
const { data: database, isPending: isDatabasePending } = useQuery({
|
|
|
|
|
type: 'database_get',
|
|
|
|
|
databaseId: node.id,
|
|
|
|
|
userId: workspace.userId,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const { data: views, isPending: isViewsPending } = useQuery({
|
|
|
|
|
type: 'database_view_list',
|
|
|
|
|
databaseId: node.id,
|
|
|
|
|
userId: workspace.userId,
|
|
|
|
|
});
|
2024-09-02 08:43:10 +02:00
|
|
|
|
2024-09-13 14:05:30 +02:00
|
|
|
if (isDatabasePending || isViewsPending) {
|
2024-09-02 08:43:10 +02:00
|
|
|
return null;
|
|
|
|
|
}
|
|
|
|
|
|
2024-09-13 14:05:30 +02:00
|
|
|
if (!database) {
|
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 (
|
|
|
|
|
<Database node={database}>
|
|
|
|
|
{views && <DatabaseViews views={views} />}
|
|
|
|
|
</Database>
|
|
|
|
|
);
|
2024-09-02 08:43:10 +02:00
|
|
|
};
|