summaryrefslogtreecommitdiffstats
path: root/dev-docs/docs/@excalidraw/excalidraw/api/children-components/footer.mdx
diff options
context:
space:
mode:
Diffstat (limited to 'dev-docs/docs/@excalidraw/excalidraw/api/children-components/footer.mdx')
-rw-r--r--dev-docs/docs/@excalidraw/excalidraw/api/children-components/footer.mdx68
1 files changed, 68 insertions, 0 deletions
diff --git a/dev-docs/docs/@excalidraw/excalidraw/api/children-components/footer.mdx b/dev-docs/docs/@excalidraw/excalidraw/api/children-components/footer.mdx
new file mode 100644
index 0000000..3831268
--- /dev/null
+++ b/dev-docs/docs/@excalidraw/excalidraw/api/children-components/footer.mdx
@@ -0,0 +1,68 @@
+# Footer
+
+Earlier we were using `renderFooter` prop to render custom footer which was removed in [#5970](https://github.com/excalidraw/excalidraw/pull/5970). Now you can pass a `Footer` component instead to render the custom UI for footer.
+
+You will need to import the `Footer` component from the package and wrap your component with the Footer component. The `Footer` should a valid React Node.
+
+**Usage**
+
+```jsx live
+function App() {
+ return (
+ <div style={{ height: "500px"}}>
+ <Excalidraw>
+ <Footer>
+ <button
+ className="custom-footer"
+ onClick={() => alert("This is dummy footer")}
+ >
+ custom footer
+ </button>
+ </Footer>
+ </Excalidraw>
+ </div>
+ );
+}
+```
+
+This will only for `Desktop` devices.
+
+For `mobile` you will need to render it inside the [MainMenu](#mainmenu). You can use the [`useDevice`](#useDevice) hook to check the type of device, this will be available only inside the `children` of `Excalidraw` component.
+
+Open the `Menu` in the below playground and you will see the `custom footer` rendered.
+
+```jsx live noInline
+const MobileFooter = ({}) => {
+ const device = useDevice();
+ if (device.editor.isMobile) {
+ return (
+ <Footer>
+ <button
+ className="custom-footer"
+ style= {{ marginLeft: '20px', height: '2rem'}}
+ onClick={() => alert("This is custom footer in mobile menu")}
+ >
+ custom footer
+ </button>
+ </Footer>
+ );
+ }
+ return null;
+};
+
+const App = () => (
+ <div style={{ height: "400px" }}>
+ <Excalidraw>
+ <MainMenu>
+ <MainMenu.Item> Item1 </MainMenu.Item>
+ <MainMenu.Item> Item 2 </MainMenu.Item>
+ <MobileFooter />
+ </MainMenu>
+ </Excalidraw>
+ </div>
+);
+
+// Need to render when code is span across multiple components
+// in Live Code blocks editor
+render(<App />);
+``` \ No newline at end of file