Delete on-click-inside and on-click-outside rose modifiers (#2926)
This commit is contained in:
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');
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user