mirror of
https://github.com/imgfloat/server.git
synced 2026-02-05 03:39:26 +00:00
Improve media packets
This commit is contained in:
@@ -314,15 +314,18 @@ function updateRenderState(asset) {
|
||||
}
|
||||
|
||||
function handleEvent(event) {
|
||||
const assetId = event.assetId || event?.patch?.id || event?.payload?.id;
|
||||
if (event.type === 'DELETED') {
|
||||
assets.delete(event.assetId);
|
||||
assets.delete(assetId);
|
||||
zOrderDirty = true;
|
||||
clearMedia(event.assetId);
|
||||
renderStates.delete(event.assetId);
|
||||
loopPlaybackState.delete(event.assetId);
|
||||
if (selectedAssetId === event.assetId) {
|
||||
clearMedia(assetId);
|
||||
renderStates.delete(assetId);
|
||||
loopPlaybackState.delete(assetId);
|
||||
if (selectedAssetId === assetId) {
|
||||
selectedAssetId = null;
|
||||
}
|
||||
} else if (event.patch) {
|
||||
applyPatch(assetId, event.patch);
|
||||
} else if (event.payload) {
|
||||
storeAsset(event.payload);
|
||||
if (!event.payload.hidden) {
|
||||
@@ -338,6 +341,23 @@ function handleEvent(event) {
|
||||
drawAndList();
|
||||
}
|
||||
|
||||
function applyPatch(assetId, patch) {
|
||||
if (!assetId || !patch) {
|
||||
return;
|
||||
}
|
||||
const existing = assets.get(assetId);
|
||||
if (!existing) {
|
||||
return;
|
||||
}
|
||||
const merged = { ...existing, ...patch };
|
||||
if (patch.hidden) {
|
||||
clearMedia(assetId);
|
||||
loopPlaybackState.delete(assetId);
|
||||
}
|
||||
storeAsset(merged);
|
||||
updateRenderState(merged);
|
||||
}
|
||||
|
||||
function drawAndList() {
|
||||
requestDraw();
|
||||
renderAssetList();
|
||||
|
||||
Reference in New Issue
Block a user