Skip to content

Instantly share code, notes, and snippets.

@sergeyt
Created August 5, 2021 18:23
Show Gist options
  • Save sergeyt/b53742a2f6a69a3cdf4cff104350b9ac to your computer and use it in GitHub Desktop.
Save sergeyt/b53742a2f6a69a3cdf4cff104350b9ac to your computer and use it in GitHub Desktop.
multidisk drive view page
import { useRouter } from "next/router";
import useSWR from "swr";
import { Box } from "@material-ui/core";
import { getDrive } from "../../core/store";
import Loader from "../../components/Loader";
import ItemList from "../../components/ItemList";
import Uploader from "../../components/Uploader";
export default function DriveView() {
const router = useRouter();
const { driveId, folder: folderId } = router.query;
const key = folderId
? `/drive/${driveId}?folder=${encodeURIComponent(String(folderId))}`
: `/drive/${driveId}`;
const { data } = useSWR(key, async () => {
const drive = await getDrive(String(driveId));
const items = await drive.getItems(folderId ? String(folderId) : "");
return { drive, items };
});
if (!data) {
return <Loader />;
}
return (
<>
<Box m={2} mb={2}>
<Uploader drive={data.drive} />
</Box>
<ItemList data={data.items} />
</>
);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment