Files
infio-copilot-dev/src/contexts/DiffStrategyContext.tsx
2025-03-23 09:34:44 +08:00

32 lines
681 B
TypeScript

import {
PropsWithChildren,
createContext,
useContext,
useMemo
} from 'react'
import { DiffStrategy } from '../core/diff/DiffStrategy'
const DiffStrategyContext = createContext<DiffStrategy>(null)
export function DiffStrategyProvider({
diffStrategy,
children,
}: PropsWithChildren<{ diffStrategy: DiffStrategy }>) {
const value = useMemo(() => {
return diffStrategy
}, [diffStrategy])
return <DiffStrategyContext.Provider value={value}>{children}</DiffStrategyContext.Provider>
}
export function useDiffStrategy() {
const context = useContext(DiffStrategyContext)
if (!context) {
throw new Error('DiffStrategyContext is not initialized')
}
return context
}