Files
colanode/desktop/src/components/databases/database-container-node.tsx

41 lines
1019 B
TypeScript
Raw Normal View History

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) {
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
};