import { confetti } from 'https://esm.sh/@tsparticles/confetti@3.0.3' import { IS_BROWSER } from '$fresh/runtime.ts' let fireworks: HTMLAudioElement | null if (IS_BROWSER) { fireworks = new Audio('/fireworks.mp3') } export function excitement() { if (IS_BROWSER) { const count = 200, defaults = { origin: { y: 0.7 }, } if (fireworks) fireworks.play() // deno-lint-ignore no-inner-declarations function fire(particleRatio: number, opts: { spread?: number startVelocity?: number decay?: number scalar?: number }) { confetti( Object.assign({}, defaults, opts, { particleCount: Math.floor(count * particleRatio), }), ) } fire(0.25, { spread: 26, startVelocity: 55, }) fire(0.2, { spread: 60, }) fire(0.35, { spread: 100, decay: 0.91, scalar: 0.8, }) fire(0.1, { spread: 120, startVelocity: 25, decay: 0.92, scalar: 1.2, }) fire(0.1, { spread: 120, startVelocity: 45, }) } }