Skip to content
This repository was archived by the owner on Aug 7, 2020. It is now read-only.

Commit 111b5f2

Browse files
authored
fix(ouiMessage): add dismissable property to force the close button visibility (#69)
1 parent c7a3b4c commit 111b5f2

File tree

4 files changed

+40
-10
lines changed

4 files changed

+40
-10
lines changed

packages/oui-message/src/index.spec.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,23 @@ describe("oui-message: ", () => {
130130
expect(getCloseButton(element)).not.toBeDefined();
131131
});
132132
});
133+
134+
describe("when dismissable property is defined", () => {
135+
it("should show the close button if no value", () => {
136+
const element = TestUtils.compileTemplate('<oui-message type="error" dismissable></oui-message>');
137+
expect(getCloseButton(element)).toBeDefined();
138+
});
139+
140+
it("should show the close button if property is true", () => {
141+
const element = TestUtils.compileTemplate('<oui-message type="error" dismissable="true"></oui-message>');
142+
expect(getCloseButton(element)).toBeDefined();
143+
});
144+
145+
it("should not show the close button if property is false", () => {
146+
const element = TestUtils.compileTemplate('<oui-message type="error" dismissable="false"></oui-message>');
147+
expect(getCloseButton(element)).not.toBeDefined();
148+
});
149+
});
133150
});
134151

135152
function getCloseButton (element) {

packages/oui-message/src/message.component.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ export default {
77
bindings: {
88
type: "@",
99
ariaCloseButtonLabel: "@?",
10+
dismissable: "<?",
1011
onDismissed: "&?"
1112
},
1213
transclude: true
Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,21 @@
1-
export default class {
2-
dismiss () {
3-
this.dismissed = true;
4-
5-
if (this.onDismissed) {
6-
this.onDismissed();
7-
}
8-
}
9-
}
1+
import { addBooleanParameter } from "@oui-angular/common/component-utils";
2+
3+
export default class {
4+
constructor ($attrs) {
5+
"ngInject";
6+
7+
this.$attrs = $attrs;
8+
}
9+
10+
$onInit () {
11+
addBooleanParameter(this, "dismissable");
12+
}
13+
14+
dismiss () {
15+
this.dismissed = true;
16+
17+
if (this.onDismissed) {
18+
this.onDismissed();
19+
}
20+
}
21+
}

packages/oui-message/src/message.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<div class="oui-message__body" ng-class=":: 'oui-message__body_' + $ctrl.type" ng-transclude>
55
</div>
66

7-
<button ng-if=":: $ctrl.type === 'info' || $ctrl.type === 'success'"
7+
<button ng-if=":: $ctrl.type === 'info' || $ctrl.type === 'success' || $ctrl.dismissable"
88
class="oui-icon oui-icon-close oui-message__close-button"
99
type="button"
1010
ng-click="$ctrl.dismiss()"

0 commit comments

Comments
 (0)