trainingSnapshot.js 640 Bytes
// sheep/store/trainingSnapshot.js
import { reactive } from 'vue';

/**
 * 训练快照 — 悬浮球与训练页面的共享数据桥梁
 * 不是 Pinia store,是模块级 reactive 对象,存在 JS 堆内存中
 * 页面跳转、clearTrainingStore() 都碰不到它
 */
export const trainingSnapshot = reactive({
  /** 全量 store 状态快照(JSON 深拷贝) */
  data: null,
  /** 快照时间戳(毫秒),用于回显时补偿计时器 */
  timestamp: null,
  /** 快照时计时器是否正在运行 */
  timerWasRunning: false,
  /** 悬浮球是否应该显示(独立于 trainingStore.min) */
  visible: false,
});