Skip to content

Commit

Permalink
Merge pull request #389 from concordnow/fix_in_place_dialog
Browse files Browse the repository at this point in the history
Add splattibutes support and fix containerClassNames for rendered in place modals
  • Loading branch information
lukemelia committed Feb 23, 2023
2 parents ed4ba6d + d71d793 commit 1c23654
Show file tree
Hide file tree
Showing 10 changed files with 267 additions and 52 deletions.
19 changes: 7 additions & 12 deletions addon/components/in-place-dialog.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,23 +5,18 @@ import layout from '../templates/components/in-place-dialog';
@tagName('')
@templateLayout(layout)
export default class InPlaceDialog extends Component {
containerClass = null; // passed in

init() {
super.init(...arguments);

this.containerClassNames = [
get containerClassNamesString() {
const addonClassNamesString = [
'ember-modal-dialog',
'ember-modal-dialog-in-place',
'emd-in-place',
]; // set this in a subclass definition
}
].join(' ');

get containerClassNamesString() {
return (
const containerClassNamesString =
(this.containerClassNames?.join && this.containerClassNames?.join(' ')) ||
this.containerClassNames ||
''
);
'';

return `${addonClassNamesString} ${containerClassNamesString}`;
}
}
31 changes: 23 additions & 8 deletions addon/templates/components/basic-dialog.hbs
Original file line number Diff line number Diff line change
@@ -1,37 +1,52 @@
<EmberWormhole @to={{this.destinationElementId}}>
{{#if this.isOverlaySibling}}
<div class="{{this.wrapperClassNamesString}} {{this.wrapperClass}}">
<div class='{{this.wrapperClassNamesString}} {{this.wrapperClass}}'>
{{#if this.hasOverlay}}
<div
class={{this.overlayClassNamesString}}
onclick={{action this.onClickOverlay}}
tabindex="-1"
tabindex='-1'
data-emd-overlay
>
</div>
{{/if}}
<EmberModalDialogPositionedContainer @class={{this.containerClassNamesString}} @targetAttachment={{this.targetAttachment}} @target={{this.legacyTarget}}>
<EmberModalDialogPositionedContainer
@class={{this.containerClassNamesString}}
@targetAttachment={{this.targetAttachment}}
@target={{this.legacyTarget}}
...attributes
>
{{yield}}
</EmberModalDialogPositionedContainer>
</div>
{{else}}
<div class="{{this.wrapperClassNamesString}} {{this.wrapperClass}}">
<div class='{{this.wrapperClassNamesString}} {{this.wrapperClass}}'>
{{#if this.hasOverlay}}
<div
class={{this.overlayClassNamesString}}
onclick={{action (ignore-children this.onClickOverlay)}}
tabindex="-1"
tabindex='-1'
data-emd-overlay
>
<EmberModalDialogPositionedContainer @class={{this.containerClassNamesString}} @targetAttachment={{this.targetAttachment}} @target={{this.legacyTarget}}>
<EmberModalDialogPositionedContainer
@class={{this.containerClassNamesString}}
@targetAttachment={{this.targetAttachment}}
@target={{this.legacyTarget}}
...attributes
>
{{yield}}
</EmberModalDialogPositionedContainer>
</div>
{{else}}
<EmberModalDialogPositionedContainer @class={{this.containerClassNamesString}} @targetAttachment={{this.targetAttachment}} @target={{this.legacyTarget}}>
<EmberModalDialogPositionedContainer
@class={{this.containerClassNamesString}}
@targetAttachment={{this.targetAttachment}}
@target={{this.legacyTarget}}
...attributes
>
{{yield}}
</EmberModalDialogPositionedContainer>
{{/if}}
</div>
{{/if}}
</EmberWormhole>
</EmberWormhole>
11 changes: 9 additions & 2 deletions addon/templates/components/in-place-dialog.hbs
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
<div
class={{concat this.containerClassNamesString " " this.attachmentClass " " this.containerClass}}
class={{concat
this.containerClassNamesString
' '
this.attachmentClass
' '
this.containerClass
}}
...attributes
>
{{yield}}
</div>
</div>
36 changes: 27 additions & 9 deletions addon/templates/components/liquid-dialog.hbs
Original file line number Diff line number Diff line change
@@ -1,37 +1,55 @@
{{#if this.isOverlaySibling}}
<LiquidWormhole @stack={{this.stack}} @value={{this.value}} @class={{concat "liquid-dialog-container " this.wrapperClassNamesString " " this.wrapperClass}}>
<div class="{{this.wrapperClassNamesString}} {{this.wrapperClass}}">
<LiquidWormhole
@stack={{this.stack}}
@value={{this.value}}
@class={{concat
'liquid-dialog-container '
this.wrapperClassNamesString
' '
this.wrapperClass
}}
>
<div class='{{this.wrapperClassNamesString}} {{this.wrapperClass}}'>
{{#if this.hasOverlay}}
<div
class={{this.overlayClassNamesString}}
onclick={{action this.onClickOverlay}}
tabindex="-1"
tabindex='-1'
data-emd-overlay
>
</div>
{{/if}}
<div class={{this.containerClassNamesString}}>
<div class={{this.containerClassNamesString}} ...attributes>
{{yield}}
</div>
</div>
</LiquidWormhole>
{{else}}
<LiquidWormhole @stack={{this.stack}} @value={{this.value}} @class={{concat "liquid-dialog-container " this.wrapperClassNamesString " " this.wrapperClass}}>
<LiquidWormhole
@stack={{this.stack}}
@value={{this.value}}
@class={{concat
'liquid-dialog-container '
this.wrapperClassNamesString
' '
this.wrapperClass
}}
>
{{#if this.hasOverlay}}
<div
class={{this.overlayClassNamesString}}
onclick={{action (ignore-children this.onClickOverlay)}}
tabindex="-1"
tabindex='-1'
data-emd-overlay
>
<div class={{this.containerClassNamesString}}>
<div class={{this.containerClassNamesString}} ...attributes>
{{yield}}
</div>
</div>
{{else}}
<div class={{this.containerClassNamesString}}>
<div class={{this.containerClassNamesString}} ...attributes>
{{yield}}
</div>
{{/if}}
</LiquidWormhole>
{{/if}}
{{/if}}
21 changes: 17 additions & 4 deletions addon/templates/components/liquid-tether-dialog.hbs
Original file line number Diff line number Diff line change
@@ -1,14 +1,27 @@
{{#if this.hasOverlay}}
<LiquidWormhole @stack="modal-overlay" @class="liquid-dialog-container">
<LiquidWormhole @stack='modal-overlay' @class='liquid-dialog-container'>
<div
class={{this.overlayClassNamesString}}
onclick={{action this.onClickOverlay}}
tabindex="-1"
tabindex='-1'
data-emd-overlay
>
</div>
</LiquidWormhole>
{{/if}}
<LiquidTether @class={{this.containerClassNamesString}} @target={{this.tetherTarget}} @attachment={{this.attachment}} @targetAttachment={{this.targetAttachment}} @targetModifier={{this.targetModifier}} @classPrefix={{this.tetherClassPrefix}} @offset={{this.offset}} @targetOffset={{this.targetOffset}} @constraints={{this.constraints}} @stack={{this.stack}} @value={{this.value}}>
<LiquidTether
@class={{this.containerClassNamesString}}
@target={{this.tetherTarget}}
@attachment={{this.attachment}}
@targetAttachment={{this.targetAttachment}}
@targetModifier={{this.targetModifier}}
@classPrefix={{this.tetherClassPrefix}}
@offset={{this.offset}}
@targetOffset={{this.targetOffset}}
@constraints={{this.constraints}}
@stack={{this.stack}}
@value={{this.value}}
...attributes
>
{{yield}}
</LiquidTether>
</LiquidTether>
1 change: 1 addition & 0 deletions addon/templates/components/modal-dialog.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
@value={{this.value}}
@onClickOverlay={{this.onClickOverlayAction}}
@onClose={{this.onCloseAction}}
...attributes
>
{{yield}}
</this.whichModalDialogComponent>
17 changes: 14 additions & 3 deletions addon/templates/components/tether-dialog.hbs
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,23 @@
<div
class={{this.overlayClassNamesString}}
onclick={{action this.onClickOverlay}}
tabindex="-1"
tabindex='-1'
data-emd-overlay
>
</div>
</EmberWormhole>
{{/if}}
<EmberTether @class={{this.containerClassNamesString}} @target={{this.tetherTarget}} @attachment={{this.attachment}} @targetAttachment={{this.targetAttachment}} @targetModifier={{this.targetModifier}} @classPrefix={{this.tetherClassPrefix}} @offset={{this.offset}} @targetOffset={{this.targetOffset}} @constraints={{this.constraints}}>
<EmberTether
@class={{this.containerClassNamesString}}
@target={{this.tetherTarget}}
@attachment={{this.attachment}}
@targetAttachment={{this.targetAttachment}}
@targetModifier={{this.targetModifier}}
@classPrefix={{this.tetherClassPrefix}}
@offset={{this.offset}}
@targetOffset={{this.targetOffset}}
@constraints={{this.constraints}}
...attributes
>
{{yield}}
</EmberTether>
</EmberTether>
Loading

0 comments on commit 1c23654

Please sign in to comment.