mirror of
https://github.com/yu-i-i/overleaf-cep.git
synced 2025-07-29 05:00:06 +02:00

Move scope values starting with `editor.` to contexts GitOrigin-RevId: 7ca349ceff002228cf4e931c644c8c386eb6c597
19 lines
733 B
TypeScript
19 lines
733 B
TypeScript
import { type Dispatch, type SetStateAction, useState } from 'react'
|
|
import { useUnstableStoreSync } from '@/shared/hooks/use-unstable-store-sync'
|
|
|
|
/**
|
|
* Creates a state variable that is exposed via window.overleaf.unstable.store,
|
|
* which is used by Writefull (and only Writefull). Once Writefull is integrated
|
|
* into our codebase, it should be able to hook directly into our React
|
|
* contexts and we would then be able to remove this hook, replacing it with
|
|
* useState.
|
|
*/
|
|
export default function useExposedState<T = any>(
|
|
initialState: T | (() => T),
|
|
path: string
|
|
): [T, Dispatch<SetStateAction<T>>] {
|
|
const [value, setValue] = useState<T>(initialState)
|
|
useUnstableStoreSync(path, value)
|
|
|
|
return [value, setValue]
|
|
}
|