subscription.on('data', (update) => {
const { preview, action } = update;
if (action === 'delete') {
if (preview.__typename === 'ComponentPreview') {
removeComponentPreview(preview.componentId);
} else {
removeContentPreview(preview.contentId);
}
return;
}
// Handle component preview
if (preview.__typename === 'ComponentPreview') {
if (preview.component) {
refreshComponentPreview(preview.component, preview.resolvedRef);
} else {
fetchComponent(preview.componentId).then(component => {
refreshComponentPreview(component, preview.resolvedRef);
});
}
}
// Handle content preview
if (preview.__typename === 'ContentPreview') {
if (preview.content) {
refreshContentPreview(preview.content, preview.resolvedRef);
} else {
fetchContent(preview.contentId).then(content => {
refreshContentPreview(content, preview.resolvedRef);
});
}
}
});