diff --git a/shapes/confetti/src/shape.ts b/shapes/confetti/src/shape.ts index 0abb0023c06..f90cf16c9f0 100644 --- a/shapes/confetti/src/shape.ts +++ b/shapes/confetti/src/shape.ts @@ -12,6 +12,7 @@ interface IConfettiData extends IShapeValues { } interface IConfettiParticle extends IParticle { + confettiType?: string; wobble?: Vector; wobbleInc?: number; wobbleSpeed?: number; @@ -32,12 +33,16 @@ export function loadConfettiShape(tsParticles: Main): void { delta: IDelta, pixelRatio: number ): void { - const shapeData = (particle.shapeData ?? {}) as IConfettiData; + if (!particle.confettiType) { + const shapeData = (particle.shapeData ?? {}) as IConfettiData; - if (shapeData.type === undefined) { - shapeData.type = Utils.itemFromArray(types); - } else if (shapeData.type instanceof Array) { - shapeData.type = Utils.itemFromArray(shapeData.type); + if (shapeData.type === undefined) { + shapeData.type = Utils.itemFromArray(types); + } else if (shapeData.type instanceof Array) { + shapeData.type = Utils.itemFromArray(shapeData.type); + } + + particle.confettiType = shapeData.type; } if (particle.wobble === undefined) { @@ -75,7 +80,7 @@ export function loadConfettiShape(tsParticles: Main): void { x2 = particle.wobble.x + random * particle.tilt.x, y2 = particle.wobble.y + random * particle.tilt.y; - if (shapeData.type === "circle") { + if (particle.confettiType === "circle") { context.ellipse( 0, 0, diff --git a/website/configs/confetti.json b/website/configs/confetti.json index f56a3d59929..b32ab67da70 100644 --- a/website/configs/confetti.json +++ b/website/configs/confetti.json @@ -15,12 +15,7 @@ ] }, "shape": { - "type": "confetti", - "options": { - "confetti": { - "type": "circle" - } - } + "type": "confetti" }, "opacity": { "value": 1, diff --git a/website/package.json b/website/package.json index ed227d6534d..70c2d5f72e9 100644 --- a/website/package.json +++ b/website/package.json @@ -27,6 +27,10 @@ "gh-pages": "^3.1.0", "minify": "^6.0.1", "rimraf": "^3.0.2", - "sass": "^1.32.5" + "sass": "^1.32.5", + "tsparticles": "^1.24.3", + "tsparticles-editor": "^1.24.4", + "tsparticles-preset-basic": "^1.9.3", + "tsparticles-shape-confetti": "^1.9.3" } }