import lottie from 'lottie-web';
const response = await fetch('/api/visualisation', {
method: 'POST',
body: JSON.stringify({
productId: 'prod_abc123',
format: 'LOTTIE',
template: 'SCORE_GAUGE',
}),
});
const { templateUrl, parameters } = await response.json();
const animation = lottie.loadAnimation({
container: document.getElementById('impact-animation'),
path: templateUrl,
renderer: 'svg',
loop: false,
autoplay: true,
});
// Apply data-driven parameters
animation.addEventListener('DOMLoaded', () => {
// Update text layers with impact data
animation.renderer.elements.forEach((element) => {
if (element.data?.nm === 'score') {
element.updateDocumentData({ t: parameters.score.toString() });
}
});
});