Files
colanode/apps/desktop/src/renderer/components/files/file-container.tsx

39 lines
1001 B
TypeScript
Raw Normal View History

2024-11-11 21:33:55 +01:00
import { extractNodeRole } from '@colanode/core';
2024-12-02 00:44:02 +01:00
2024-11-12 11:12:26 +01:00
import { FileBody } from '@/renderer/components/files/file-body';
2024-12-02 00:44:02 +01:00
import { FileHeader } from '@/renderer/components/files/file-header';
import { useWorkspace } from '@/renderer/contexts/workspace';
import { useQuery } from '@/renderer/hooks/use-query';
interface FileContainerProps {
nodeId: string;
}
export const FileContainer = ({ nodeId }: FileContainerProps) => {
const workspace = useWorkspace();
2024-11-11 21:33:55 +01:00
const { data, isPending } = useQuery({
2024-11-13 12:00:41 +01:00
type: 'node_tree_get',
2024-11-11 21:33:55 +01:00
nodeId,
userId: workspace.userId,
});
2024-11-11 21:33:55 +01:00
if (isPending) {
return null;
}
2024-11-11 21:33:55 +01:00
const nodes = data ?? [];
const file = nodes.find((node) => node.id === nodeId);
const role = extractNodeRole(nodes, workspace.userId);
if (!file || file.type !== 'file' || !role) {
return null;
}
return (
2024-11-11 21:33:55 +01:00
<div className="flex h-full w-full flex-col">
<FileHeader nodes={nodes} file={file} role={role} />
2024-11-12 11:12:26 +01:00
<FileBody file={file} />
</div>
);
};