Skip to content

Commit fbc3943

Browse files
authored
Merge pull request #530 from Kaggle/fix-hmr
Fix HMR import.meta lookups
2 parents 19d9fe4 + 43cb527 commit fbc3943

File tree

5 files changed

+10
-21
lines changed

5 files changed

+10
-21
lines changed

kaggle_environments/envs/connectx/visualizer/default/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
"version": "0.0.0",
55
"type": "module",
66
"scripts": {
7-
"dev": "cross-env VITE_REPLAY_FILE=./replays/test-replay.json vite",
8-
"dev:iframe": "vite",
7+
"dev": "vite",
8+
"dev-with-replay": "cross-env VITE_REPLAY_FILE=./replays/test-replay.json vite",
99
"build": "tsc && vite build",
1010
"preview": "vite preview"
1111
},

kaggle_environments/envs/connectx/visualizer/default/src/main.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ if (!app) {
1111
const adapter = new PreactAdapter(Renderer as any);
1212
if (app) {
1313
// Set up an HMR boundary for development
14-
if (import.meta?.env?.DEV && import.meta?.hot) {
14+
if (import.meta.env?.DEV && import.meta.hot) {
1515
import.meta.hot.accept();
1616
}
1717
createReplayVisualizer(app, adapter);

kaggle_environments/envs/open_spiel_env/games/repeated_poker/visualizer/default/src/main.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,9 @@ class LegacyAdapter implements GameAdapter {
3232
const app = document.getElementById('app');
3333
if (app) {
3434
// Set up an HMR boundary for development
35-
if (import.meta?.env?.DEV && import.meta?.hot) {
35+
if (import.meta.env?.DEV && import.meta.hot) {
3636
import.meta.hot.accept();
3737
}
38+
3839
createReplayVisualizer(app, new LegacyAdapter());
3940
}

web/core/src/player.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -277,18 +277,6 @@ export class ReplayVisualizer {
277277
this.stepSlider.max = (this.replay.steps.length > 0 ? this.replay.steps.length - 1 : 0).toString();
278278
this.renderControls();
279279

280-
// If we have steps but no agents, don't try to render.
281-
// The player will wait until agents are provided (e.g., via postMessage)
282-
// and handleMessage calls setData again.
283-
if (this.replay && this.replay.steps.length > 0 && (!this.agents || this.agents.length === 0)) {
284-
console.warn('setData: Have replay data, but no agents. Skipping render and waiting for agents.');
285-
// Optionally update the viewer to show we're waiting
286-
if (!options.skipRender) {
287-
this.viewer.innerHTML = '<div>Replay loaded, waiting for agent data...</div>';
288-
}
289-
return;
290-
}
291-
292280
// Only render/tick if not told to skip (e.g., during HMR restore)
293281
if (!options.skipRender) {
294282
this.adapter.render(this.step, this.replay, this.agents);

web/core/src/replay-visualizer-factory.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,15 @@ interface ReplayVisualizerState {
1616
let hmrReplayVisualizerStates: Map<string, ReplayVisualizerState>;
1717
let hmrReplayVisualizerInstances: Map<string, ReplayVisualizer>;
1818

19-
if (import.meta?.env?.DEV && import.meta?.hot) {
19+
if (import.meta.env?.DEV && import.meta.hot) {
2020
// 2. Initialize or retrieve the persistent state Map
21-
if (!import.meta?.hot?.data?.replayVisualizerStates) {
21+
if (!import.meta.hot?.data?.replayVisualizerStates) {
2222
import.meta.hot.data.replayVisualizerStates = new Map<string, ReplayVisualizerState>();
2323
}
24-
hmrReplayVisualizerStates = import.meta?.hot?.data?.replayVisualizerStates;
24+
hmrReplayVisualizerStates = import.meta.hot?.data?.replayVisualizerStates;
2525

2626
// 3. Initialize or retrieve the instance Map (for cleanup)
27-
if (!import.meta?.hot?.data?.replayVisualizerInstances) {
27+
if (!import.meta.hot?.data?.replayVisualizerInstances) {
2828
import.meta.hot.data.replayVisualizerInstances = new Map<string, ReplayVisualizer>();
2929
}
3030
hmrReplayVisualizerInstances = import.meta.hot.data.replayVisualizerInstances;
@@ -41,7 +41,7 @@ if (import.meta?.env?.DEV && import.meta?.hot) {
4141
*/
4242
export function createReplayVisualizer(container: HTMLElement, adapter: GameAdapter): ReplayVisualizer {
4343
// --- Production Build ---
44-
if (!import.meta?.env?.DEV || !import.meta?.hot) {
44+
if (!import.meta.env?.DEV || !import.meta.hot) {
4545
return new ReplayVisualizer(container, adapter);
4646
}
4747

0 commit comments

Comments
 (0)