2024-09-02 08:43:10 +02:00
|
|
|
import React from 'react';
|
|
|
|
|
import { LocalNode } from '@/types/nodes';
|
2024-09-10 08:11:29 +02:00
|
|
|
import { useDatabaseQuery } from '@/queries/use-database-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';
|
|
|
|
|
import { useDatabaseViewsQuery } from '@/queries/use-database-views-query';
|
2024-09-02 08:43:10 +02:00
|
|
|
|
|
|
|
|
interface DatabaseContainerNodeProps {
|
|
|
|
|
node: LocalNode;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const DatabaseContainerNode = ({ node }: DatabaseContainerNodeProps) => {
|
2024-09-13 14:05:30 +02:00
|
|
|
const { data: database, isPending: isDatabasePending } = useDatabaseQuery(
|
|
|
|
|
node.id,
|
|
|
|
|
);
|
|
|
|
|
const { data: views, isPending: isViewsPending } = useDatabaseViewsQuery(
|
|
|
|
|
node.id,
|
|
|
|
|
);
|
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
|
|
|
};
|