diff --git a/addons/rose/addon/styles/rose/components/dropdown/_item.scss b/addons/rose/addon/styles/rose/components/dropdown/_item.scss index a0f4b0a67..b38dd5903 100644 --- a/addons/rose/addon/styles/rose/components/dropdown/_item.scss +++ b/addons/rose/addon/styles/rose/components/dropdown/_item.scss @@ -57,11 +57,6 @@ $checkmark: url("data:image/svg+xml;utf-8, +
-
- {{if this.isOpen @textWhenOpen @textWhenClose}} + + {{@textWhenClose}} + + + {{@textWhenOpen}} - - - -{{#if this.isOpen}} - + + {{yield}} -{{/if}} \ No newline at end of file + \ No newline at end of file diff --git a/ui/desktop/app/components/reveal/index.js b/ui/desktop/app/components/reveal/index.js index f2833ba37..339596663 100644 --- a/ui/desktop/app/components/reveal/index.js +++ b/ui/desktop/app/components/reveal/index.js @@ -1,14 +1,7 @@ -import Component from '@glimmer/component'; -import { tracked } from '@glimmer/tracking'; -import { action } from '@ember/object'; +import RoseDropdownComponent from 'rose/components/rose/dropdown'; -export default class RevealComponent extends Component { - // =attributes - @tracked isOpen = false; - - // =actions - @action - toggle() { - this.isOpen = !this.isOpen; +export default class RevealComponent extends RoseDropdownComponent { + constructor() { + super(...arguments); } } diff --git a/ui/desktop/app/styles/app.scss b/ui/desktop/app/styles/app.scss index 821c274d8..fc806580d 100644 --- a/ui/desktop/app/styles/app.scss +++ b/ui/desktop/app/styles/app.scss @@ -360,11 +360,38 @@ width: 50%; } } +} + + +$chevron-up: "data:image/svg+xml;utf-8,"; +$chevron-down: "data:image/svg+xml;utf-8,"; .reveal { display: flex; margin-bottom: sizing.rems(m); + &:not([open]) .reveal-summary { + .reveal-summary-text-close { + background: url($chevron-down) no-repeat right center; + padding-right: sizing.rems(l); + } + + .reveal-summary-text-open { + display: none; + } + } + + &[open] .reveal-summary { + .reveal-summary-text-open { + background: url($chevron-up) no-repeat right center; + padding-right: sizing.rems(l); + } + + .reveal-summary-text-close { + display: none; + } + } + .reveal-summary { align-items: center; color: var(--info); diff --git a/ui/desktop/tests/integration/components/reveal-test.js b/ui/desktop/tests/integration/components/reveal-test.js index 4c8f5497d..4acf7b69e 100644 --- a/ui/desktop/tests/integration/components/reveal-test.js +++ b/ui/desktop/tests/integration/components/reveal-test.js @@ -20,6 +20,7 @@ module('Integration | Component | reveal', function (hooks) { }); test('it renders with content, opens, show the content, close and hide the content', async function (assert) { + assert.expect(3); await render(hbs` `); - assert.notOk(find('.reveal-content')); - await click('details'); - assert.ok(find('.reveal-content')); - assert.ok(find('.reveal-content pre code')); - await click('details'); - assert.notOk(find('.reveal-content')); + + assert.notOk(find('details').open); + await click('summary'); + assert.ok(find('details').open); + await click('summary'); + assert.notOk(find('details').open); }); });