import { createSubscribedTraditionalStore } from '/@/renderer/lib/zustand-traditional'; interface TimestampState { setTimestamp: (timestamp: number) => void; timestamp: number; } export const useTimestampStoreBase = createSubscribedTraditionalStore()((set) => ({ setTimestamp: (timestamp: number) => { set({ timestamp }); }, timestamp: 0, })); export const subscribePlayerProgress = ( onChange: (properties: { timestamp: number }, prev: { timestamp: number }) => void, ) => { return useTimestampStoreBase.subscribe( (state) => state.timestamp, (timestamp, prevTimestamp) => { onChange({ timestamp }, { timestamp: prevTimestamp }); }, { equalityFn: (a, b) => { return a === b; }, }, ); }; export const usePlayerProgress = () => { return useTimestampStoreBase((state) => state.timestamp); }; export const usePlayerTimestamp = () => { return useTimestampStoreBase((state) => state.timestamp); }; export const setTimestamp = (timestamp: number) => { useTimestampStoreBase.getState().setTimestamp(timestamp); };