Merge pull request #145

* Fix RefreshSnapshot component and make useRefreshSnapshot not a hook,…
This commit is contained in:
Andrew Prifer 2022-05-04 17:10:42 +02:00 committed by GitHub
parent fceb1eb60a
commit c1e515a13f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 10 additions and 17 deletions

View file

@ -1,11 +1,11 @@
import React, {useEffect} from 'react' import React, {useEffect} from 'react'
import useRefreshSnapshot from './useRefreshSnapshot' import {refreshSnapshot} from '../utils'
/** /**
* Putting this element in a suspense tree makes sure the snapshot editor * Putting this element in a suspense tree makes sure the snapshot editor
* gets refreshed once the tree renders. * gets refreshed once the tree renders.
* *
* Alternatively you can use {@link useRefreshSnapshot} * Alternatively you can use {@link refreshSnapshot}
* *
* @example * @example
* Usage * Usage
@ -16,10 +16,11 @@ import useRefreshSnapshot from './useRefreshSnapshot'
* </Suspense> * </Suspense>
* ``` * ```
*/ */
const RefreshSnapshot: React.FC<{}> = (props) => { const RefreshSnapshot: React.FC<{}> = () => {
const refreshSnapshot = useRefreshSnapshot()
useEffect(() => { useEffect(() => {
refreshSnapshot() setTimeout(() => {
refreshSnapshot()
})
}, []) }, [])
return <></> return <></>
} }

View file

@ -1,11 +0,0 @@
import {useCallback} from 'react'
import {useEditorStore} from '../store'
/**
* Returns a function that can be called to refresh the snapshot in the snapshot editor.
*/
export default function useRefreshSnapshot() {
return useCallback(() => {
useEditorStore.getState().createSnapshot()
}, [])
}

View file

@ -4,5 +4,5 @@ export type {EditorHelperProps} from './components/EditorHelper'
export {default as editable} from './components/editable' export {default as editable} from './components/editable'
export type {EditableState, BindFunction} from './store' export type {EditableState, BindFunction} from './store'
export {default as SheetProvider, useCurrentSheet} from './SheetProvider' export {default as SheetProvider, useCurrentSheet} from './SheetProvider'
export {default as useRefreshSnapshot} from './components/useRefreshSnapshot' export {refreshSnapshot} from './utils'
export {default as RefreshSnapshot} from './components/RefreshSnapshot' export {default as RefreshSnapshot} from './components/RefreshSnapshot'

View file

@ -0,0 +1,3 @@
import {useEditorStore} from './store'
export const refreshSnapshot = useEditorStore.getState().createSnapshot