Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 | import { IconArrowLeft, IconX } from '@tabler/icons-react'; import { memo, useCallback, type ReactNode } from 'react'; import { FormattedMessage } from 'react-intl'; import { Group, IconButton, Typography } from '@allshares/studio-design-system'; import { useDesignerTemplateDrawerContext } from '../RuleTemplateDrawer.context'; interface RuleTemplateDrawerHeaderProps { readonly title: ReactNode; readonly withBackButton?: boolean; } export const RuleTemplateDrawerHeader = memo(function RuleTemplateDrawerHeader({ title, withBackButton = false, }: RuleTemplateDrawerHeaderProps) { const { closeRuleTemplateDrawer, setSelectedRuleTemplate } = useDesignerTemplateDrawerContext(); const handleClickBackButton = useCallback(() => { setSelectedRuleTemplate(null); }, [setSelectedRuleTemplate]); return ( <Group align="center" justify="space-between" > <Group align="center" gap={8} > {!!withBackButton && ( <IconButton icon={<IconArrowLeft />} label={<FormattedMessage defaultMessage="Back to template selection" />} size="medium" onClick={handleClickBackButton} /> )} <Typography variant="heading4Bold">{title}</Typography> </Group> <IconButton icon={<IconX />} label={<FormattedMessage defaultMessage="Close" />} size="small" onClick={closeRuleTemplateDrawer} /> </Group> ); }); |