import { getFileExt } from "~/lib/utils"; import CodeEditor from "../../../../components/ui/code-editor"; import trpc from "~/lib/trpc"; import { useData } from "~/renderer/hooks"; import { Data } from "../+data"; import Spinner from "~/components/ui/spinner"; import { previewStore } from "../stores/web-preview"; type Props = { id: number; }; const FileViewer = ({ id }: Props) => { const { initialFiles } = useData(); const initialData = initialFiles.find((i) => i.id === id); const { data, isLoading, refetch } = trpc.file.getById.useQuery(id, { initialData, }); const onFileContentChange = () => { // refresh preview previewStore.getState().refresh(); }; const updateFileContent = trpc.file.update.useMutation({ onSuccess: () => { onFileContentChange(); refetch(); }, }); if (isLoading) { return ; } if (!data || data.isDirectory) { return

File not found.

; } const { filename } = data; if (!data.isFile) { const ext = getFileExt(filename); return ( updateFileContent.mutate({ id, content: val })} /> ); } return null; }; const LoadingLayout = () => { return (
); }; export default FileViewer;