26 lines
767 B
TypeScript
26 lines
767 B
TypeScript
import { useEffect, useRef } from 'react'
|
|
import {
|
|
type FileHistorySnapshot,
|
|
type FileHistoryState,
|
|
fileHistoryEnabled,
|
|
fileHistoryRestoreStateFromLog,
|
|
} from '../utils/fileHistory.js'
|
|
|
|
export function useFileHistorySnapshotInit(
|
|
initialFileHistorySnapshots: FileHistorySnapshot[] | undefined,
|
|
fileHistoryState: FileHistoryState,
|
|
onUpdateState: (newState: FileHistoryState) => void,
|
|
): void {
|
|
const initialized = useRef(false)
|
|
|
|
useEffect(() => {
|
|
if (!fileHistoryEnabled() || initialized.current) {
|
|
return
|
|
}
|
|
initialized.current = true
|
|
if (initialFileHistorySnapshots) {
|
|
fileHistoryRestoreStateFromLog(initialFileHistorySnapshots, onUpdateState)
|
|
}
|
|
}, [fileHistoryState, initialFileHistorySnapshots, onUpdateState])
|
|
}
|