From 4cb046a6b8b37a0f328fa5b86fbd573ca3f0dc33 Mon Sep 17 00:00:00 2001 From: GeoSot Date: Fri, 7 Oct 2022 15:25:00 +0300 Subject: Boost `execute` function, being able to handle arguments (#36652) --- js/src/util/index.js | 6 ++---- js/src/util/template-factory.js | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) (limited to 'js/src/util') diff --git a/js/src/util/index.js b/js/src/util/index.js index 7c2411665..ad99f85ed 100644 --- a/js/src/util/index.js +++ b/js/src/util/index.js @@ -249,10 +249,8 @@ const defineJQueryPlugin = plugin => { }) } -const execute = callback => { - if (typeof callback === 'function') { - callback() - } +const execute = (possibleCallback, args = [], defaultValue = possibleCallback) => { + return typeof possibleCallback === 'function' ? possibleCallback(...args) : defaultValue } const executeAfterTransition = (callback, transitionElement, waitForTransition = true) => { diff --git a/js/src/util/template-factory.js b/js/src/util/template-factory.js index c6d52a50d..16ec6c28d 100644 --- a/js/src/util/template-factory.js +++ b/js/src/util/template-factory.js @@ -6,7 +6,7 @@ */ import { DefaultAllowlist, sanitizeHtml } from './sanitizer' -import { getElement, isElement } from '../util/index' +import { execute, getElement, isElement } from '../util/index' import SelectorEngine from '../dom/selector-engine' import Config from './config' @@ -143,7 +143,7 @@ class TemplateFactory extends Config { } _resolvePossibleFunction(arg) { - return typeof arg === 'function' ? arg(this) : arg + return execute(arg, [this]) } _putElementInTemplate(element, templateElement) { -- cgit v1.2.3