Confetti Plugin: Don't pass undefined for missing parameters

This commit is contained in:
Jeremy Ruston 2024-02-22 17:17:38 +00:00
parent ae9250622f
commit 6d721c728f
1 changed files with 15 additions and 7 deletions

View File

@ -25,13 +25,19 @@ exports.startup = function() {
var paramObject = event.paramObject || {}, var paramObject = event.paramObject || {},
options = {}, options = {},
extractNumericParameter = function(name) { extractNumericParameter = function(name) {
options[name] = paramObject[name] && $tw.utils.parseNumber(paramObject[name]); if(paramObject[name]) {
options[name] = $tw.utils.parseNumber(paramObject[name]);
}
}, },
extractListParameter = function(name) { extractListParameter = function(name) {
options[name] = paramObject[name] && $tw.utils.parseStringArray(paramObject[name]); if(paramObject[name]) {
options[name] = $tw.utils.parseStringArray(paramObject[name]);
}
}, },
extractBooleanParameter = function(name) { extractBooleanParameter = function(name) {
options[name] = paramObject[name] && paramObject[name] === "yes"; if(paramObject[name]) {
options[name] = paramObject[name] === "yes";
}
}; };
$tw.utils.each("particleCount angle spread startVelocity decay gravity drift ticks scalar zIndex".split(" "),function(name) { $tw.utils.each("particleCount angle spread startVelocity decay gravity drift ticks scalar zIndex".split(" "),function(name) {
extractNumericParameter(name); extractNumericParameter(name);
@ -39,10 +45,12 @@ exports.startup = function() {
$tw.utils.each("colors shapes".split(" "),function(name) { $tw.utils.each("colors shapes".split(" "),function(name) {
extractListParameter(name); extractListParameter(name);
}); });
if(paramObject.originX && paramObject.originY) {
options.origin = { options.origin = {
x: paramObject.originX && $tw.utils.parseNumber(paramObject.originX), x: paramObject.originX && $tw.utils.parseNumber(paramObject.originX),
y: paramObject.originY && $tw.utils.parseNumber(paramObject.originY) y: paramObject.originY && $tw.utils.parseNumber(paramObject.originY)
}; };
}
extractBooleanParameter("disableForReducedMotion"); extractBooleanParameter("disableForReducedMotion");
var delay = paramObject.delay ? $tw.utils.parseNumber(paramObject.delay) : 0; var delay = paramObject.delay ? $tw.utils.parseNumber(paramObject.delay) : 0;
$tw.confettiManager.launch(delay,options); $tw.confettiManager.launch(delay,options);