@hyperframes/studio 0.8.174 → 0.8.176
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{hyperframes-player-B4KfQdfl.js → hyperframes-player-DBHpVw8L.js} +1 -1
- package/dist/assets/{index-DGl_Zvb3.js → index-BkDF4Z-5.js} +97 -97
- package/dist/assets/{index-Bsc8xBh9.js → index-DHRXpmtI.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/index.js +3 -3
- package/package.json +8 -8
- package/src/player/hooks/previewMessageRouter.test.ts +23 -0
- package/src/player/hooks/previewMessageRouter.ts +4 -2
package/dist/index.html
CHANGED
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
document.documentElement.dataset.theme = "paper";
|
|
15
15
|
}
|
|
16
16
|
</script>
|
|
17
|
-
<script type="module" crossorigin src="/assets/index-
|
|
17
|
+
<script type="module" crossorigin src="/assets/index-BkDF4Z-5.js"></script>
|
|
18
18
|
<link rel="stylesheet" crossorigin href="/assets/index-CESvLzz0.css">
|
|
19
19
|
</head>
|
|
20
20
|
<body>
|
package/dist/index.js
CHANGED
|
@@ -32181,7 +32181,7 @@ function acceptedPreviewMessage(e, iframe) {
|
|
|
32181
32181
|
if (data?.source !== "hf-preview") return null;
|
|
32182
32182
|
return acceptStudioRuntimeMessage(data) ? data : null;
|
|
32183
32183
|
}
|
|
32184
|
-
function handleStateMessage(deps, iframe) {
|
|
32184
|
+
function handleStateMessage(deps, iframe, playingHoldsClipListPosts) {
|
|
32185
32185
|
try {
|
|
32186
32186
|
if (usePlayerStore.getState().elements.length === 0) {
|
|
32187
32187
|
const manifest = iframe?.contentWindow?.__clipManifest;
|
|
@@ -32189,7 +32189,7 @@ function handleStateMessage(deps, iframe) {
|
|
|
32189
32189
|
deps.processTimelineMessageRef.current(manifest);
|
|
32190
32190
|
}
|
|
32191
32191
|
}
|
|
32192
|
-
if (Date.now() - deps.lastTimelineMessageRef.current > 500) {
|
|
32192
|
+
if (!playingHoldsClipListPosts && Date.now() - deps.lastTimelineMessageRef.current > 500) {
|
|
32193
32193
|
deps.enrichMissingCompositionsRef.current();
|
|
32194
32194
|
}
|
|
32195
32195
|
} catch {
|
|
@@ -32214,7 +32214,7 @@ function createPreviewMessageHandler(deps) {
|
|
|
32214
32214
|
const iframe = deps.iframeRef.current;
|
|
32215
32215
|
const data = acceptedPreviewMessage(e, iframe);
|
|
32216
32216
|
if (!data) return;
|
|
32217
|
-
if (data.type === "state") return handleStateMessage(deps, iframe);
|
|
32217
|
+
if (data.type === "state") return handleStateMessage(deps, iframe, data.isPlaying === true);
|
|
32218
32218
|
if (data.type === "timeline" && Array.isArray(data.clips)) {
|
|
32219
32219
|
handleTimelineMessage(deps, iframe, data);
|
|
32220
32220
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hyperframes/studio",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.176",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -59,12 +59,12 @@
|
|
|
59
59
|
"dockview-react": "8.3.1",
|
|
60
60
|
"gsap": "^3.13.0",
|
|
61
61
|
"mediabunny": "^1.45.3",
|
|
62
|
-
"@hyperframes/core": "0.8.
|
|
63
|
-
"@hyperframes/parsers": "0.8.
|
|
64
|
-
"@hyperframes/
|
|
65
|
-
"@hyperframes/sdk": "0.8.
|
|
66
|
-
"@hyperframes/
|
|
67
|
-
"@hyperframes/studio-server": "0.8.
|
|
62
|
+
"@hyperframes/core": "0.8.176",
|
|
63
|
+
"@hyperframes/parsers": "0.8.176",
|
|
64
|
+
"@hyperframes/player": "0.8.176",
|
|
65
|
+
"@hyperframes/sdk": "0.8.176",
|
|
66
|
+
"@hyperframes/shader-transitions": "0.8.176",
|
|
67
|
+
"@hyperframes/studio-server": "0.8.176"
|
|
68
68
|
},
|
|
69
69
|
"devDependencies": {
|
|
70
70
|
"@tailwindcss/vite": "^4.3.3",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"vite": "^6.4.2",
|
|
82
82
|
"vitest": "^4.1.11",
|
|
83
83
|
"zustand": "^5.0.0",
|
|
84
|
-
"@hyperframes/producer": "0.8.
|
|
84
|
+
"@hyperframes/producer": "0.8.176"
|
|
85
85
|
},
|
|
86
86
|
"peerDependencies": {
|
|
87
87
|
"react": "19",
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { describe, expect, it, vi } from "vitest";
|
|
2
|
+
import { createPreviewMessageHandler } from "./previewMessageRouter";
|
|
3
|
+
|
|
4
|
+
function route(isPlaying: boolean) {
|
|
5
|
+
const enrich = vi.fn();
|
|
6
|
+
const handle = createPreviewMessageHandler({
|
|
7
|
+
iframeRef: { current: null },
|
|
8
|
+
processTimelineMessageRef: { current: vi.fn() },
|
|
9
|
+
enrichMissingCompositionsRef: { current: enrich },
|
|
10
|
+
lastTimelineMessageRef: { current: 0 },
|
|
11
|
+
getAdapter: () => null,
|
|
12
|
+
syncTimelineElements: vi.fn(),
|
|
13
|
+
});
|
|
14
|
+
handle(new MessageEvent("message", { data: { source: "hf-preview", type: "state", isPlaying } }));
|
|
15
|
+
return enrich;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
describe("preview state messages", () => {
|
|
19
|
+
it("re-reads the preview for missing compositions only while it is stopped", () => {
|
|
20
|
+
expect(route(true)).not.toHaveBeenCalled();
|
|
21
|
+
expect(route(false)).toHaveBeenCalledTimes(1);
|
|
22
|
+
});
|
|
23
|
+
});
|
|
@@ -29,6 +29,7 @@ interface PreviewMessage {
|
|
|
29
29
|
source?: string;
|
|
30
30
|
type?: string;
|
|
31
31
|
clips?: unknown;
|
|
32
|
+
isPlaying?: unknown;
|
|
32
33
|
}
|
|
33
34
|
|
|
34
35
|
export interface PreviewMessageRouterDeps {
|
|
@@ -68,6 +69,7 @@ function acceptedPreviewMessage(
|
|
|
68
69
|
function handleStateMessage(
|
|
69
70
|
deps: PreviewMessageRouterDeps,
|
|
70
71
|
iframe: HTMLIFrameElement | null,
|
|
72
|
+
playingHoldsClipListPosts: boolean,
|
|
71
73
|
): void {
|
|
72
74
|
try {
|
|
73
75
|
if (usePlayerStore.getState().elements.length === 0) {
|
|
@@ -76,7 +78,7 @@ function handleStateMessage(
|
|
|
76
78
|
deps.processTimelineMessageRef.current(manifest);
|
|
77
79
|
}
|
|
78
80
|
}
|
|
79
|
-
if (Date.now() - deps.lastTimelineMessageRef.current > 500) {
|
|
81
|
+
if (!playingHoldsClipListPosts && Date.now() - deps.lastTimelineMessageRef.current > 500) {
|
|
80
82
|
deps.enrichMissingCompositionsRef.current();
|
|
81
83
|
}
|
|
82
84
|
} catch {}
|
|
@@ -112,7 +114,7 @@ export function createPreviewMessageHandler(
|
|
|
112
114
|
const iframe = deps.iframeRef.current;
|
|
113
115
|
const data = acceptedPreviewMessage(e, iframe);
|
|
114
116
|
if (!data) return;
|
|
115
|
-
if (data.type === "state") return handleStateMessage(deps, iframe);
|
|
117
|
+
if (data.type === "state") return handleStateMessage(deps, iframe, data.isPlaying === true);
|
|
116
118
|
if (data.type === "timeline" && Array.isArray(data.clips)) {
|
|
117
119
|
handleTimelineMessage(deps, iframe, data as unknown as ClipManifestMessage);
|
|
118
120
|
}
|