change-layout-button.tsx 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. import OLButton from '@/features/ui/components/ol/ol-button'
  2. import MaterialIcon from '@/shared/components/material-icon'
  3. import {
  4. Dropdown,
  5. DropdownMenu,
  6. DropdownToggle,
  7. } from '@/features/ui/components/bootstrap-5/dropdown-menu'
  8. import React, { forwardRef } from 'react'
  9. import ChangeLayoutOptions from './change-layout-options'
  10. const LayoutDropdownToggleButton = forwardRef<
  11. HTMLButtonElement,
  12. {
  13. onClick: (e: React.MouseEvent<HTMLButtonElement>) => void
  14. }
  15. >(({ onClick }, ref) => {
  16. return (
  17. <OLButton
  18. size="sm"
  19. className="ide-redesign-toolbar-button-subdued"
  20. ref={ref}
  21. onClick={onClick}
  22. leadingIcon={<MaterialIcon unfilled type="space_dashboard" />}
  23. />
  24. )
  25. })
  26. LayoutDropdownToggleButton.displayName = 'LayoutDropdownToggleButton'
  27. export default function ChangeLayoutButton() {
  28. return (
  29. <div className="ide-redesign-toolbar-button-container">
  30. <Dropdown className="toolbar-item layout-dropdown" align="end">
  31. <DropdownToggle
  32. id="layout-dropdown-btn"
  33. className="btn-full-height"
  34. as={LayoutDropdownToggleButton}
  35. />
  36. <DropdownMenu>
  37. <ChangeLayoutOptions />
  38. </DropdownMenu>
  39. </Dropdown>
  40. </div>
  41. )
  42. }