19 lines
680 B
JavaScript
19 lines
680 B
JavaScript
|
"use strict";
|
||
|
|
||
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
||
|
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.default = useSyncState;
|
||
|
var React = _interopRequireWildcard(require("react"));
|
||
|
var _useForceUpdate = _interopRequireDefault(require("./useForceUpdate"));
|
||
|
function useSyncState(initialValue) {
|
||
|
const ref = React.useRef(initialValue);
|
||
|
const forceUpdate = (0, _useForceUpdate.default)();
|
||
|
return [() => ref.current, newValue => {
|
||
|
ref.current = newValue;
|
||
|
// re-render
|
||
|
forceUpdate();
|
||
|
}];
|
||
|
}
|