Delete on-click-inside and on-click-outside rose modifiers (#2926)

This commit is contained in:
Carlos Alcaide Corvo authored and GitHub committed 2025-07-15 09:11:32 -07:00
1 parent 389c635030
commit c0d41c0a62
6 files changed
-152

No files matched your search

@@ -1,28 +0,0 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import { modifier } from 'ember-modifier';
/**
* Used to detect clicks occurring _inside_ the modified element.
* This is useful especially for dropdowns to toggle content visibility
* when the user clicks an item.
*/
export default modifier(
(element, [callback]) => {
function handleClick(event) {
if (element.contains(event.target)) {
callback(element, event);
}
}
element.addEventListener('click', handleClick, false);
return () => {
element.removeEventListener('click', handleClick, false);
};
},
{ eager: false },
);
@@ -1,28 +0,0 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import { modifier } from 'ember-modifier';
/**
* Used to detect clicks occurring _outside_ of the modified element.
* This is useful especially for dropdowns to toggle content visibility
* when the user clicks away.
*/
export default modifier(
(element, [callback]) => {
function handleClick(event) {
if (!element.contains(event.target)) {
callback(element, event);
}
}
document.addEventListener('click', handleClick, false);
return () => {
document.removeEventListener('click', handleClick, false);
};
},
{ eager: false },
);
@@ -1,6 +0,0 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
export { default } from 'rose/modifiers/on-click-inside';
@@ -1,6 +0,0 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
export { default } from 'rose/modifiers/on-click-outside';
@@ -1,42 +0,0 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import { render, click } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
module('Integration | Modifier | on-click-inside', function (hooks) {
setupRenderingTest(hooks);
test('it fires event when inside is clicked', async function (assert) {
assert.expect(2);
this.set('clickedInside', (element) => {
assert.ok(element);
assert.strictEqual(element.id, 'inside');
});
await render(hbs`
<div id="outside"></div>
<div id="inside" {{on-click-inside this.clickedInside}}>
<div id="item" />
</div>
`);
await click('#item');
});
test('it does not fire event when outside is clicked', async function (assert) {
assert.expect(0);
this.set('clickedInside', () => {
assert.ok(true);
});
await render(hbs`
<div id="outside"></div>
<div id="inside" {{on-click-inside this.clickedInside}}>
<div id="item" />
</div>
`);
await click('#outside');
});
});
@@ -1,42 +0,0 @@
/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import { module, test } from 'qunit';
import { setupRenderingTest } from 'ember-qunit';
import { render, click } from '@ember/test-helpers';
import { hbs } from 'ember-cli-htmlbars';
module('Integration | Modifier | on-click-outside', function (hooks) {
setupRenderingTest(hooks);
test('it fires event when an outside element is clicked', async function (assert) {
assert.expect(2);
this.set('clickedOutside', (element, event) => {
assert.ok(element);
assert.strictEqual(event.target.id, 'outside');
});
await render(hbs`<div id="outside"></div>
<div id="inside" {{on-click-outside this.clickedOutside}}></div>`);
await click('#outside');
});
test('it does not fire event when element is clicked', async function (assert) {
assert.expect(1);
this.set('clickedOutside', () => {
assert.ok(true);
});
await render(hbs`<div id="outside"></div>
<div id="inside" {{on-click-outside this.clickedOutside}}>
<div id="item" />
</div>`);
await click('#inside');
await click('#item');
await click('#outside');
});
});