Skip to content

Commit 8d1b4c1

Browse files
authored
Add @triggerHtmlTag on <BasicDropdown> and remove @htmlTag option from yielded trigger component (fix glint v2 issue) (#1032)
* Add @triggerHtmlTag and remove `htmlTag` from yielded trigger component * Fix lint
1 parent b9bfd65 commit 8d1b4c1

File tree

4 files changed

+20
-15
lines changed

4 files changed

+20
-15
lines changed

docs/app/templates/public-pages.gts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,16 @@ export default class extends Component {
7474
>Github</a>
7575
</div>
7676
<div class="main-header-logo">
77-
<BasicDropdown @calculatePosition={{this.calculatePosition}} as |dd|>
77+
<BasicDropdown
78+
@triggerHtmlTag="span"
79+
@calculatePosition={{this.calculatePosition}}
80+
as |dd|
81+
>
7882
<LinkTo @route="public-pages.index" class="home-link">
7983
<img src="/ember_logo.png" alt="ember" />
8084
<strong>Basic</strong>
8185
{{! template-lint-disable no-pointer-down-event-binding }}
8286
<dd.Trigger
83-
@htmlTag="span"
8487
{{on "mousedown" this.preventIfNotInIndex}}
8588
{{on "touchend" this.preventIfNotInIndex}}
8689
class="logo-dropdown-button"

ember-basic-dropdown/src/components/basic-dropdown-trigger.gts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export interface BasicDropdownTriggerSignature {
1919
hPosition?: HorizontalPosition | null;
2020
defaultClass?: string;
2121
renderInPlace?: boolean;
22-
htmlTag?: keyof HTMLElementTagNameMap;
22+
htmlTag?: keyof HTMLElementTagNameMap | undefined;
2323
onBlur?: (dropdown?: Dropdown, event?: FocusEvent) => void;
2424
onClick?: (dropdown?: Dropdown, event?: MouseEvent) => void;
2525
onFocus?: (dropdown?: Dropdown, event?: FocusEvent) => void;

ember-basic-dropdown/src/components/basic-dropdown.gts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ export interface BasicDropdownDefaultBlock {
4040
disabled: boolean;
4141
isOpen: boolean;
4242
actions: DropdownActions;
43-
Trigger: ComponentLike<BasicDropdownTriggerSignature>;
43+
Trigger: ComponentLike<
44+
Omit<BasicDropdownTriggerSignature, 'Args'> & {
45+
Args: Omit<BasicDropdownTriggerSignature['Args'], 'htmlTag'>;
46+
}
47+
>;
4448
Content: ComponentLike<BasicDropdownContentSignature>;
4549
}
4650

@@ -64,6 +68,7 @@ export interface BasicDropdownArgs {
6468
rootEventType?: TRootEventType;
6569
preventScroll?: boolean;
6670
matchTriggerWidth?: boolean;
71+
triggerHtmlTag?: keyof HTMLElementTagNameMap;
6772
onInit?: (dropdown: Dropdown) => void;
6873
registerAPI?: (dropdown: Dropdown | null) => void;
6974
onOpen?: (dropdown: Dropdown, e?: Event) => boolean | void;
@@ -517,6 +522,7 @@ export default class BasicDropdown extends Component<BasicDropdownSignature> {
517522
hPosition=this.hPosition
518523
renderInPlace=this.renderInPlace
519524
vPosition=this.vPosition
525+
htmlTag=@triggerHtmlTag
520526
)
521527
Content=(component
522528
this.contentComponent

test-app/tests/integration/components/basic-dropdown-test.gts

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1325,27 +1325,23 @@ module('Integration | Component | basic-dropdown', function (hooks) {
13251325

13261326
await render(
13271327
<template>
1328-
<BasicDropdown as |parent|>
1329-
<parent.Trigger class="parent" @htmlTag="button">Trigger of the first
1330-
dropdown</parent.Trigger>
1328+
<BasicDropdown @triggerHtmlTag="button" as |parent|>
1329+
<parent.Trigger class="parent">Trigger of the first dropdown</parent.Trigger>
13311330
<parent.Content @overlay={{true}}>
1332-
<BasicDropdown as |child|>
1331+
<BasicDropdown @triggerHtmlTag="button" as |child|>
13331332
<p class="body-parent">
13341333
<br />First level of the dropdpwn<br />
13351334
</p>
1336-
<child.Trigger class="child" @htmlTag="button">Trigger of the
1337-
second dropdown</child.Trigger>
1335+
<child.Trigger class="child">Trigger of the second dropdown</child.Trigger>
13381336
<child.Content @overlay={{true}}>
13391337
<p class="body-child">
13401338
<br />Second level of the second<br />
1341-
<BasicDropdown as |grandchild|>
1339+
<BasicDropdown @triggerHtmlTag="button" as |grandchild|>
13421340
<p>
13431341
<br />Second level of the dropdpwn<br />
13441342
</p>
1345-
<grandchild.Trigger
1346-
class="grandchild"
1347-
@htmlTag="button"
1348-
>Trigger of the Third dropdown</grandchild.Trigger>
1343+
<grandchild.Trigger class="grandchild">Trigger of the Third
1344+
dropdown</grandchild.Trigger>
13491345
<grandchild.Content @overlay={{true}}>
13501346
<p class="body-grandchild">
13511347
<br />Third level of the third<br />

0 commit comments

Comments
 (0)