/* eslint-disable no-console */ import * as React from 'react'; import { Button, ButtonProps, ButtonVariant } from '../../components/Button'; import { PageContextConsumer, PageContextProps } from './PageContext'; export interface PageToggleButtonProps extends ButtonProps { /** Content of the page toggle button */ children?: React.ReactNode; /** True if the sidebar is shown */ isSidebarOpen?: boolean; /** Callback function to handle the sidebar toggle button, managed by the Page component if the Page isManagedSidebar prop is set to true */ onSidebarToggle?: () => void; /** Button id */ id?: string; } export const PageToggleButton: React.FunctionComponent = ({ children, isSidebarOpen = true, onSidebarToggle = () => undefined as any, id = 'nav-toggle', ...props }: PageToggleButtonProps) => ( {({ isManagedSidebar, onSidebarToggle: managedOnSidebarToggle, isSidebarOpen: managedIsSidebarOpen }: PageContextProps) => { const sidebarToggle = isManagedSidebar ? managedOnSidebarToggle : onSidebarToggle; const sidebarOpen = isManagedSidebar ? managedIsSidebarOpen : isSidebarOpen; return ( ); }} ); PageToggleButton.displayName = 'PageToggleButton';