Skip to content

Commit 6a94647

Browse files
fralongoFrancesco Longo
andauthored
feat: Accept position in internal ButtonDropdown for analytics purposes (#3560)
Co-authored-by: Francesco Longo <[email protected]>
1 parent 9545a04 commit 6a94647

File tree

3 files changed

+21
-0
lines changed

3 files changed

+21
-0
lines changed

src/button-dropdown/__tests__/analytics-metadata.test.tsx

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,4 +300,18 @@ describe('Internal Button Dropdown', () => {
300300
detail: { label: 'Delete', position: '1', href: '#' },
301301
});
302302
});
303+
test('accepts position', () => {
304+
const renderResult = render(
305+
<InternalButtonDropdown position="4" items={items}>
306+
Action text
307+
</InternalButtonDropdown>
308+
);
309+
const wrapper = createWrapper(renderResult.container).findButtonDropdown()!;
310+
wrapper.openDropdown();
311+
const enabledSimpleItem = wrapper.findItemById('rm')!.getElement();
312+
expect(getGeneratedAnalyticsMetadata(enabledSimpleItem)).toEqual({
313+
action: 'click',
314+
detail: { label: 'Delete', position: '4,1', href: '#', id: 'rm' },
315+
});
316+
});
303317
});

src/button-dropdown/interfaces.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,11 @@ export interface InternalButtonDropdownProps
327327
fullWidth?: boolean;
328328

329329
analyticsMetadataTransformer?: (input: GeneratedAnalyticsMetadataFragment) => GeneratedAnalyticsMetadataFragment;
330+
331+
/**
332+
* Position of the button dropdown inside a list of elements, for example a button group
333+
*/
334+
position?: string;
330335
}
331336

332337
export interface CustomTriggerProps {

src/button-dropdown/internal.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ const InternalButtonDropdown = React.forwardRef(
5656
analyticsMetadataTransformer,
5757
linkStyle,
5858
fullWidth,
59+
position,
5960
...props
6061
}: InternalButtonDropdownProps,
6162
ref: React.Ref<ButtonDropdownProps.Ref>
@@ -409,6 +410,7 @@ const InternalButtonDropdown = React.forwardRef(
409410
variant={variant}
410411
analyticsMetadataTransformer={analyticsMetadataTransformer}
411412
linkStyle={linkStyle}
413+
position={position}
412414
/>
413415
</OptionsList>
414416
</Dropdown>

0 commit comments

Comments
 (0)