Skip to content

Commit aa58e5e

Browse files
Quang Phanvnphanquang
authored andcommitted
refactor(clickoutside): better naming for action parameter type
1 parent 0f9eeb0 commit aa58e5e

3 files changed

Lines changed: 22 additions & 22 deletions

File tree

.changeset/yellow-fans-shop.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
'@svelte-put/clickoutside': major
3+
---
4+
5+
Better naming for action parameter type

packages/actions/clickoutside/src/clickoutside.js

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
/** @typedef {import('svelte/action').Action} Action */
2-
31
/**
42
* Dispatch a `clickoutside` {@link https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent | CustomEvent } on click outside of node
53
* @public
@@ -53,11 +51,11 @@
5351
* ```
5452
*
5553
* @param {HTMLElement} node - node outside of which `click` event will trigger `clickoutside`
56-
* @param {import('./public').ClickOutsideParameters} parameters - instructions for `clickoutside` behavior
54+
* @param {import('./public').ClickOutsideParameter} param - instructions for `clickoutside` behavior
5755
* @returns {import('./public').ClickOutsideActionReturn}
5856
*/
59-
export function clickoutside(node, parameters = { enabled: true }) {
60-
let { enabled, eventType, nodeForEvent, options, capture } = resolveParameters(parameters);
57+
export function clickoutside(node, param = { enabled: true }) {
58+
let { enabled, eventType, nodeForEvent, options, capture } = resolveConfig(param);
6159

6260
/**
6361
* @param {Event} event
@@ -69,14 +67,14 @@ export function clickoutside(node, parameters = { enabled: true }) {
6967
}
7068
}
7169

72-
if (parameters.enabled !== false) {
70+
if (param.enabled !== false) {
7371
nodeForEvent.addEventListener(eventType, handle, options);
7472
}
7573

7674
return {
7775
update(update) {
7876
nodeForEvent.removeEventListener(eventType, handle, capture);
79-
({ enabled, eventType, nodeForEvent, options, capture } = resolveParameters(update));
77+
({ enabled, eventType, nodeForEvent, options, capture } = resolveConfig(update));
8078
if (enabled) nodeForEvent.addEventListener(eventType, handle, options);
8179
},
8280
destroy() {
@@ -87,15 +85,14 @@ export function clickoutside(node, parameters = { enabled: true }) {
8785

8886
/**
8987
* @internal
90-
* @param {Partial<import('./public').ClickOutsideParameters>} parameters
88+
* @param {import('./public').ClickOutsideParameter} param
9189
*/
92-
export function resolveParameters(parameters) {
90+
export function resolveConfig(param = {}) {
9391
return {
94-
enabled: parameters.enabled ?? true,
95-
nodeForEvent: parameters.limit?.parent ?? document,
96-
eventType: parameters.event ?? 'click',
97-
options: parameters.options,
98-
capture:
99-
typeof parameters.options === 'object' ? parameters.options?.capture : parameters.options,
92+
enabled: param.enabled ?? true,
93+
nodeForEvent: param.limit?.parent ?? document,
94+
eventType: param.event ?? 'click',
95+
options: param.options,
96+
capture: typeof param.options === 'object' ? param.options?.capture : param.options,
10097
};
10198
}

packages/actions/clickoutside/src/public.d.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export interface ClickOutsideLimit {
4040
* svelte action parameters to config behavior of `clickoutside`
4141
* @public
4242
*/
43-
export interface ClickOutsideParameters {
43+
export interface ClickOutsideConfig {
4444
/** whether to activate the action. Default to `true` */
4545
enabled: boolean;
4646
/** limit to which the click event will trigger `clickoutside` */
@@ -51,12 +51,10 @@ export interface ClickOutsideParameters {
5151
options?: AddEventListenerOptions | boolean;
5252
}
5353

54+
export type ClickOutsideParameter = Partial<ClickOutsideConfig> | undefined;
55+
5456
/** @public */
55-
export type ClickOutsideAction = Action<
56-
HTMLElement,
57-
ClickOutsideParameters,
58-
ClickOutsideAttributes
59-
>;
57+
export type ClickOutsideAction = Action<HTMLElement, ClickOutsideParameter, ClickOutsideAttributes>;
6058

6159
/** @public */
62-
export type ClickOutsideActionReturn = ActionReturn<ClickOutsideParameters, ClickOutsideAttributes>;
60+
export type ClickOutsideActionReturn = ActionReturn<ClickOutsideParameter, ClickOutsideAttributes>;

0 commit comments

Comments
 (0)