Files
nodeMap/node_modules/recoil/cjs/hooks/Recoil_useRecoilRefresher.js.flow

28 lines
788 B
Plaintext

/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow strict-local
* @format
* @oncall recoil
*/
'use strict';
import type {RecoilValue} from '../core/Recoil_RecoilValue';
const {useStoreRef} = require('../core/Recoil_RecoilRoot');
const {refreshRecoilValue} = require('../core/Recoil_RecoilValueInterface');
const {useCallback} = require('react');
function useRecoilRefresher<T>(recoilValue: RecoilValue<T>): () => void {
const storeRef = useStoreRef();
return useCallback(() => {
const store = storeRef.current;
refreshRecoilValue(store, recoilValue);
}, [recoilValue, storeRef]);
}
module.exports = useRecoilRefresher;