* Added Overview page * Revised Getting Started page * Minor revision * Edited readme, minor modifications to docs * Removed sweep.yaml, .devcontainer, .ergomake * Moved security.md to .github, added contributing.md * changes as per code review * updated contributing.md * fixed broken links & added missing links in doc, improved structure * fixed link in wsl setup * fixed server link, added https cloning in yarn-setup * removed package-lock.json * added doc card, admonitions * removed underline from nav buttons * refactoring modules/ui * refactoring modules/ui * Change folder case * Fix theme location * Fix case 2 * Fix storybook --------- Co-authored-by: Nimra Ahmed <nimra1408@gmail.com> Co-authored-by: Nimra Ahmed <50912134+nimraahmed@users.noreply.github.com>
50 lines
1.3 KiB
TypeScript
50 lines
1.3 KiB
TypeScript
import { Keys } from 'react-hotkeys-hook';
|
|
import { Placement } from '@floating-ui/react';
|
|
|
|
import { DropdownMenu } from '@/ui/layout/dropdown/components/DropdownMenu';
|
|
import { DropdownScope } from '@/ui/layout/dropdown/scopes/DropdownScope';
|
|
import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
|
|
|
|
type ViewBarDropdownButtonProps = {
|
|
buttonComponent: JSX.Element | JSX.Element[];
|
|
dropdownComponents: JSX.Element | JSX.Element[];
|
|
dropdownId: string;
|
|
hotkey?: {
|
|
key: Keys;
|
|
scope: string;
|
|
};
|
|
dropdownHotkeyScope: HotkeyScope;
|
|
dropdownPlacement?: Placement;
|
|
onClickOutside?: () => void;
|
|
onClose?: () => void;
|
|
onOpen?: () => void;
|
|
};
|
|
|
|
export const ViewBarDropdownButton = ({
|
|
buttonComponent,
|
|
dropdownComponents,
|
|
dropdownId,
|
|
hotkey,
|
|
dropdownHotkeyScope,
|
|
dropdownPlacement = 'bottom-end',
|
|
onClickOutside,
|
|
onClose,
|
|
onOpen,
|
|
}: ViewBarDropdownButtonProps) => {
|
|
return (
|
|
<DropdownScope dropdownScopeId={dropdownId}>
|
|
<DropdownMenu
|
|
clickableComponent={buttonComponent}
|
|
dropdownComponents={dropdownComponents}
|
|
hotkey={hotkey}
|
|
dropdownHotkeyScope={dropdownHotkeyScope}
|
|
dropdownOffset={{ x: 0, y: 8 }}
|
|
dropdownPlacement={dropdownPlacement}
|
|
onClickOutside={onClickOutside}
|
|
onClose={onClose}
|
|
onOpen={onOpen}
|
|
/>
|
|
</DropdownScope>
|
|
);
|
|
};
|