fix: complete display and channel group management
This commit is contained in:
@@ -46,6 +46,20 @@ export function createMemorySignageStore(
|
||||
...playbackStore,
|
||||
...viewerStore,
|
||||
|
||||
async deleteChannelGroup(groupId: string, fallbackChannelId: string): Promise<void> {
|
||||
const removedChannelIds = new Set(
|
||||
[...playbackStore.channels.values()]
|
||||
.filter((channel) => channel.groupId === groupId)
|
||||
.map((channel) => channel.id),
|
||||
);
|
||||
for (const viewer of viewerStore.viewers.values()) {
|
||||
if (viewer.channelId !== null && removedChannelIds.has(viewer.channelId)) {
|
||||
await viewerStore.updateViewer(viewer.id, { channelId: fallbackChannelId });
|
||||
}
|
||||
}
|
||||
await playbackStore.deleteChannelGroup(groupId, fallbackChannelId);
|
||||
},
|
||||
|
||||
addImageReference(imageId: string, kind: "slot" | "static-hold"): void {
|
||||
const current = references.get(imageId) ?? { slots: 0, staticHolds: 0 };
|
||||
references.set(
|
||||
|
||||
Reference in New Issue
Block a user