-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathApp.tsx
More file actions
55 lines (51 loc) · 2.19 KB
/
App.tsx
File metadata and controls
55 lines (51 loc) · 2.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import { useContext } from "react";
import "./App.css";
import { AppsSidebar, Content } from "@fluffylabs/shared-ui";
import { CodeSyncProvider } from "./components/CodeSyncProvider/CodeSyncProvider";
import { DownloadPdfWithTheme } from "./components/DownloadThemedPdf/DownloadThemedPdf";
import { Header } from "./components/Header/Header";
import { LightThemeToggle } from "./components/LightThemeToggle/LightThemeToggle";
import { useVersionContext } from "./components/LocationProvider/VersionProvider";
import { type IMetadataContext, MetadataContext } from "./components/MetadataProvider/MetadataProvider";
import { NotesProvider } from "./components/NotesProvider/NotesProvider";
import { PdfProvider } from "./components/PdfProvider/PdfProvider";
import { PdfViewer } from "./components/PdfViewer/PdfViewer";
import { Resizable } from "./components/Resizable/Resizable";
import { SelectionProvider } from "./components/SelectionProvider/SelectionProvider";
import { Sidebar } from "./components/Sidebar/Sidebar";
import { ZoomControls } from "./components/ZoomControls/ZoomControls";
export function App() {
const { version } = useVersionContext();
const { urlGetters } = useContext(MetadataContext) as IMetadataContext;
return (
<>
<CodeSyncProvider>
<NotesProvider>
<PdfProvider pdfUrl={urlGetters.pdf(version)}>
<SelectionProvider>
<div>
<Header />
<Resizable
left={
<div className="h-full w-full flex flex-row items-stretch justify-center">
<AppsSidebar activeLink="reader" enableDarkModeToggle={true} />
<Content>
<PdfViewer />
</Content>
<div className="controls">
<LightThemeToggle />
<DownloadPdfWithTheme />
<ZoomControls />
</div>
</div>
}
right={<Sidebar />}
/>
</div>
</SelectionProvider>
</PdfProvider>
</NotesProvider>
</CodeSyncProvider>
</>
);
}