@khanacademy/wonder-blocks-core
Advanced tools
Comparing version 4.4.0 to 4.5.0
# @khanacademy/wonder-blocks-core | ||
## 4.5.0 | ||
### Minor Changes | ||
- 175a2dd2: Add 'useRenderState' hook | ||
## 4.4.0 | ||
@@ -4,0 +10,0 @@ |
import _extends from '@babel/runtime/helpers/extends'; | ||
import _objectWithoutPropertiesLoose from '@babel/runtime/helpers/objectWithoutPropertiesLoose'; | ||
import * as React from 'react'; | ||
import { useContext as useContext$1, useRef, useEffect as useEffect$1 } from 'react'; | ||
import { useContext, useRef, useEffect as useEffect$1 } from 'react'; | ||
import { StyleSheet, css } from 'aphrodite'; | ||
@@ -400,4 +400,6 @@ | ||
const useRenderState = () => useContext(RenderStateContext); | ||
const useUniqueIdWithMock = scope => { | ||
const renderState = useContext$1(RenderStateContext); | ||
const renderState = useRenderState(); | ||
const idFactory = useRef(null); | ||
@@ -420,3 +422,3 @@ | ||
const useUniqueIdWithoutMock = scope => { | ||
const renderState = useContext$1(RenderStateContext); | ||
const renderState = useRenderState(); | ||
const idFactory = useRef(null); | ||
@@ -461,6 +463,6 @@ | ||
const { | ||
useContext, | ||
useEffect, | ||
useState | ||
} = React; | ||
const RenderStateRoot = ({ | ||
@@ -471,3 +473,3 @@ children, | ||
const [firstRender, setFirstRender] = useState(true); | ||
const contextValue = useContext(RenderStateContext); | ||
const renderState = useRenderState(); | ||
useEffect(() => { | ||
@@ -477,3 +479,3 @@ setFirstRender(false); | ||
if (contextValue !== RenderState.Root) { | ||
if (renderState !== RenderState.Root) { | ||
if (throwIfNested) { | ||
@@ -491,2 +493,3 @@ throw new Error("There's already a <RenderStateRoot> above this instance in " + "the render tree. This instance should be removed."); | ||
}; | ||
RenderStateRoot.defaultProps = { | ||
@@ -496,2 +499,2 @@ throwIfNested: true | ||
export { IDProvider, RenderStateRoot, server as Server, Text, UniqueIDProvider, View, WithSSRPlaceholder, addStyle, useForceUpdate, useOnline, useUniqueIdWithMock, useUniqueIdWithoutMock }; | ||
export { IDProvider, RenderState, RenderStateRoot, server as Server, Text, UniqueIDProvider, View, WithSSRPlaceholder, addStyle, useForceUpdate, useOnline, useRenderState, useUniqueIdWithMock, useUniqueIdWithoutMock }; |
@@ -85,3 +85,3 @@ module.exports = | ||
/******/ // Load entry module and return exports | ||
/******/ return __webpack_require__(__webpack_require__.s = 18); | ||
/******/ return __webpack_require__(__webpack_require__.s = 19); | ||
/******/ }) | ||
@@ -105,3 +105,3 @@ /************************************************************************/ | ||
const RenderState = __webpack_require__(20)({ | ||
const RenderState = __webpack_require__(21)({ | ||
Root: "root", | ||
@@ -141,3 +141,3 @@ Initial: "initial", | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addStyle; }); | ||
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8); | ||
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9); | ||
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__); | ||
@@ -148,3 +148,3 @@ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0); | ||
/* harmony import */ var aphrodite__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(aphrodite__WEBPACK_IMPORTED_MODULE_2__); | ||
/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9); | ||
/* harmony import */ var _util_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); | ||
@@ -200,2 +200,15 @@ | ||
"use strict"; | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return useRenderState; }); | ||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(0); | ||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | ||
/* harmony import */ var _components_render_state_context_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); | ||
const useRenderState = () => Object(react__WEBPACK_IMPORTED_MODULE_0__["useContext"])(_components_render_state_context_js__WEBPACK_IMPORTED_MODULE_1__[/* RenderStateContext */ "b"]); | ||
/***/ }), | ||
/* 5 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
"use strict"; | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return UniqueIDFactory; }); | ||
@@ -268,3 +281,3 @@ /** | ||
/***/ }), | ||
/* 5 */ | ||
/* 6 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
@@ -435,3 +448,3 @@ | ||
/***/ }), | ||
/* 6 */ | ||
/* 7 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
@@ -443,5 +456,5 @@ | ||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | ||
/* harmony import */ var _with_ssr_placeholder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5); | ||
/* harmony import */ var _util_unique_id_factory_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); | ||
/* harmony import */ var _util_ssr_id_factory_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); | ||
/* harmony import */ var _with_ssr_placeholder_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); | ||
/* harmony import */ var _util_unique_id_factory_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5); | ||
/* harmony import */ var _util_ssr_id_factory_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(11); | ||
@@ -521,3 +534,3 @@ | ||
/***/ }), | ||
/* 7 */ | ||
/* 8 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
@@ -550,3 +563,3 @@ | ||
/***/ }), | ||
/* 8 */ | ||
/* 9 */ | ||
/***/ (function(module, exports) { | ||
@@ -574,3 +587,3 @@ | ||
/***/ }), | ||
/* 9 */ | ||
/* 10 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
@@ -656,6 +669,6 @@ | ||
} | ||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(19))) | ||
/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(20))) | ||
/***/ }), | ||
/* 10 */ | ||
/* 11 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
@@ -685,3 +698,3 @@ | ||
/***/ }), | ||
/* 11 */ | ||
/* 12 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
@@ -694,5 +707,6 @@ | ||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | ||
/* harmony import */ var _util_ssr_id_factory_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10); | ||
/* harmony import */ var _util_unique_id_factory_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); | ||
/* harmony import */ var _components_render_state_context_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(1); | ||
/* harmony import */ var _use_render_state_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4); | ||
/* harmony import */ var _util_ssr_id_factory_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(11); | ||
/* harmony import */ var _util_unique_id_factory_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5); | ||
/* harmony import */ var _components_render_state_context_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(1); | ||
@@ -703,2 +717,3 @@ | ||
/** | ||
@@ -713,15 +728,15 @@ * Returns a unique identifier factory. If the parent component hasn't | ||
const useUniqueIdWithMock = scope => { | ||
const renderState = Object(react__WEBPACK_IMPORTED_MODULE_0__["useContext"])(_components_render_state_context_js__WEBPACK_IMPORTED_MODULE_3__[/* RenderStateContext */ "b"]); | ||
const renderState = Object(_use_render_state_js__WEBPACK_IMPORTED_MODULE_1__[/* useRenderState */ "a"])(); | ||
const idFactory = Object(react__WEBPACK_IMPORTED_MODULE_0__["useRef"])(null); | ||
if (renderState === _components_render_state_context_js__WEBPACK_IMPORTED_MODULE_3__[/* RenderState */ "a"].Root) { | ||
if (renderState === _components_render_state_context_js__WEBPACK_IMPORTED_MODULE_4__[/* RenderState */ "a"].Root) { | ||
throw new Error("Components using useUniqueIdWithMock() should be descendants of <RenderStateRoot>"); | ||
} | ||
if (renderState === _components_render_state_context_js__WEBPACK_IMPORTED_MODULE_3__[/* RenderState */ "a"].Initial) { | ||
return _util_ssr_id_factory_js__WEBPACK_IMPORTED_MODULE_1__[/* default */ "a"]; | ||
if (renderState === _components_render_state_context_js__WEBPACK_IMPORTED_MODULE_4__[/* RenderState */ "a"].Initial) { | ||
return _util_ssr_id_factory_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"]; | ||
} | ||
if (!idFactory.current) { | ||
idFactory.current = new _util_unique_id_factory_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"](scope); | ||
idFactory.current = new _util_unique_id_factory_js__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"](scope); | ||
} | ||
@@ -740,10 +755,10 @@ | ||
const useUniqueIdWithoutMock = scope => { | ||
const renderState = Object(react__WEBPACK_IMPORTED_MODULE_0__["useContext"])(_components_render_state_context_js__WEBPACK_IMPORTED_MODULE_3__[/* RenderStateContext */ "b"]); | ||
const renderState = Object(_use_render_state_js__WEBPACK_IMPORTED_MODULE_1__[/* useRenderState */ "a"])(); | ||
const idFactory = Object(react__WEBPACK_IMPORTED_MODULE_0__["useRef"])(null); | ||
if (renderState === _components_render_state_context_js__WEBPACK_IMPORTED_MODULE_3__[/* RenderState */ "a"].Root) { | ||
if (renderState === _components_render_state_context_js__WEBPACK_IMPORTED_MODULE_4__[/* RenderState */ "a"].Root) { | ||
throw new Error("Components using useUniqueIdWithoutMock() should be descendants of <RenderStateRoot>"); | ||
} | ||
if (renderState === _components_render_state_context_js__WEBPACK_IMPORTED_MODULE_3__[/* RenderState */ "a"].Initial) { | ||
if (renderState === _components_render_state_context_js__WEBPACK_IMPORTED_MODULE_4__[/* RenderState */ "a"].Initial) { | ||
return null; | ||
@@ -753,3 +768,3 @@ } | ||
if (!idFactory.current) { | ||
idFactory.current = new _util_unique_id_factory_js__WEBPACK_IMPORTED_MODULE_2__[/* default */ "a"](scope); | ||
idFactory.current = new _util_unique_id_factory_js__WEBPACK_IMPORTED_MODULE_3__[/* default */ "a"](scope); | ||
} | ||
@@ -761,3 +776,3 @@ | ||
/***/ }), | ||
/* 12 */ | ||
/* 13 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
@@ -767,3 +782,3 @@ | ||
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return Text; }); | ||
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8); | ||
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9); | ||
/* harmony import */ var _babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_babel_runtime_helpers_extends__WEBPACK_IMPORTED_MODULE_0__); | ||
@@ -774,3 +789,3 @@ /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(0); | ||
/* harmony import */ var aphrodite__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(aphrodite__WEBPACK_IMPORTED_MODULE_2__); | ||
/* harmony import */ var _util_util_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9); | ||
/* harmony import */ var _util_util_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10); | ||
@@ -833,3 +848,3 @@ | ||
/***/ }), | ||
/* 13 */ | ||
/* 14 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
@@ -937,3 +952,3 @@ | ||
/***/ }), | ||
/* 14 */ | ||
/* 15 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
@@ -945,3 +960,3 @@ | ||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | ||
/* harmony import */ var _unique_id_provider_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(6); | ||
/* harmony import */ var _unique_id_provider_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7); | ||
@@ -1016,3 +1031,3 @@ | ||
/***/ }), | ||
/* 15 */ | ||
/* 16 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
@@ -1040,3 +1055,3 @@ | ||
/***/ }), | ||
/* 16 */ | ||
/* 17 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
@@ -1048,3 +1063,3 @@ | ||
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__); | ||
/* harmony import */ var _use_force_update_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7); | ||
/* harmony import */ var _use_force_update_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8); | ||
@@ -1077,3 +1092,3 @@ | ||
/***/ }), | ||
/* 17 */ | ||
/* 18 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
@@ -1086,2 +1101,3 @@ | ||
/* harmony import */ var _render_state_context_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1); | ||
/* harmony import */ var _hooks_use_render_state_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4); | ||
// TODO(somewhatabstract, FEI-4174): Update eslint-plugin-import when they | ||
@@ -1093,7 +1109,8 @@ // have fixed: | ||
const { | ||
useContext, | ||
useEffect, | ||
useState | ||
} = react__WEBPACK_IMPORTED_MODULE_0__; | ||
const RenderStateRoot = ({ | ||
@@ -1104,3 +1121,3 @@ children, | ||
const [firstRender, setFirstRender] = useState(true); | ||
const contextValue = useContext(_render_state_context_js__WEBPACK_IMPORTED_MODULE_1__[/* RenderStateContext */ "b"]); | ||
const renderState = Object(_hooks_use_render_state_js__WEBPACK_IMPORTED_MODULE_2__[/* useRenderState */ "a"])(); | ||
useEffect(() => { | ||
@@ -1110,3 +1127,3 @@ setFirstRender(false); | ||
if (contextValue !== _render_state_context_js__WEBPACK_IMPORTED_MODULE_1__[/* RenderState */ "a"].Root) { | ||
if (renderState !== _render_state_context_js__WEBPACK_IMPORTED_MODULE_1__[/* RenderState */ "a"].Root) { | ||
if (throwIfNested) { | ||
@@ -1125,3 +1142,6 @@ throw new Error("There's already a <RenderStateRoot> above this instance in " + "the render tree. This instance should be removed."); | ||
}, children); | ||
}; | ||
}; // We can set `defaultProps` on a functional component if we move the `export` to appear | ||
// afterwards. | ||
RenderStateRoot.defaultProps = { | ||
@@ -1131,4 +1151,5 @@ throwIfNested: true | ||
/***/ }), | ||
/* 18 */ | ||
/* 19 */ | ||
/***/ (function(module, __webpack_exports__, __webpack_require__) { | ||
@@ -1138,15 +1159,15 @@ | ||
__webpack_require__.r(__webpack_exports__); | ||
/* harmony import */ var _components_text_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12); | ||
/* harmony import */ var _components_text_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13); | ||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Text", function() { return _components_text_js__WEBPACK_IMPORTED_MODULE_0__["a"]; }); | ||
/* harmony import */ var _components_view_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13); | ||
/* harmony import */ var _components_view_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14); | ||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "View", function() { return _components_view_js__WEBPACK_IMPORTED_MODULE_1__["a"]; }); | ||
/* harmony import */ var _components_with_ssr_placeholder_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5); | ||
/* harmony import */ var _components_with_ssr_placeholder_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6); | ||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "WithSSRPlaceholder", function() { return _components_with_ssr_placeholder_js__WEBPACK_IMPORTED_MODULE_2__["a"]; }); | ||
/* harmony import */ var _components_id_provider_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14); | ||
/* harmony import */ var _components_id_provider_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15); | ||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "IDProvider", function() { return _components_id_provider_js__WEBPACK_IMPORTED_MODULE_3__["a"]; }); | ||
/* harmony import */ var _components_unique_id_provider_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6); | ||
/* harmony import */ var _components_unique_id_provider_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7); | ||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UniqueIDProvider", function() { return _components_unique_id_provider_js__WEBPACK_IMPORTED_MODULE_4__["a"]; }); | ||
@@ -1157,6 +1178,6 @@ | ||
/* harmony import */ var _util_server_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(15); | ||
/* harmony import */ var _util_server_js__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(16); | ||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Server", function() { return _util_server_js__WEBPACK_IMPORTED_MODULE_6__["a"]; }); | ||
/* harmony import */ var _hooks_use_unique_id_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(11); | ||
/* harmony import */ var _hooks_use_unique_id_js__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(12); | ||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useUniqueIdWithMock", function() { return _hooks_use_unique_id_js__WEBPACK_IMPORTED_MODULE_7__["a"]; }); | ||
@@ -1166,12 +1187,16 @@ | ||
/* harmony import */ var _hooks_use_force_update_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(7); | ||
/* harmony import */ var _hooks_use_force_update_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(8); | ||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useForceUpdate", function() { return _hooks_use_force_update_js__WEBPACK_IMPORTED_MODULE_8__["a"]; }); | ||
/* harmony import */ var _hooks_use_online_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(16); | ||
/* harmony import */ var _hooks_use_online_js__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(17); | ||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useOnline", function() { return _hooks_use_online_js__WEBPACK_IMPORTED_MODULE_9__["a"]; }); | ||
/* harmony import */ var _components_render_state_root_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(17); | ||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RenderStateRoot", function() { return _components_render_state_root_js__WEBPACK_IMPORTED_MODULE_10__["a"]; }); | ||
/* harmony import */ var _hooks_use_render_state_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(4); | ||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "useRenderState", function() { return _hooks_use_render_state_js__WEBPACK_IMPORTED_MODULE_10__["a"]; }); | ||
/* harmony import */ var _components_render_state_root_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(18); | ||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RenderStateRoot", function() { return _components_render_state_root_js__WEBPACK_IMPORTED_MODULE_11__["a"]; }); | ||
/* harmony import */ var _components_render_state_context_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(1); | ||
/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "RenderState", function() { return _components_render_state_context_js__WEBPACK_IMPORTED_MODULE_12__["a"]; }); | ||
@@ -1188,4 +1213,12 @@ | ||
// TODO(somewhatabstract, FEI-4174): Update eslint-plugin-import when they | ||
// have fixed: | ||
// https://github.com/import-js/eslint-plugin-import/issues/2073 | ||
// eslint-disable-next-line import/named | ||
/***/ }), | ||
/* 19 */ | ||
/* 20 */ | ||
/***/ (function(module, exports) { | ||
@@ -1216,3 +1249,3 @@ | ||
/***/ }), | ||
/* 20 */ | ||
/* 21 */ | ||
/***/ (function(module, exports) { | ||
@@ -1219,0 +1252,0 @@ |
@@ -1,1 +0,5 @@ | ||
`wonder-blocks-core` provides building blocks and utilities for constructing other `wonder-blocks` components. Many of these may be useful inside your applications, as well. | ||
Documentation for `@khanacademy/wonder-blocks-core` is now in Storybook. | ||
Visit the [Storybook | ||
Core](https://khan.github.io/wonder-blocks/?path=/docs/core) docs on GitHub | ||
Pages. |
{ | ||
"name": "@khanacademy/wonder-blocks-core", | ||
"version": "4.4.0", | ||
"version": "4.5.0", | ||
"design": "v1", | ||
@@ -5,0 +5,0 @@ "publishConfig": { |
@@ -9,4 +9,5 @@ // @flow | ||
import {RenderState, RenderStateContext} from "./render-state-context.js"; | ||
import {useRenderState} from "../hooks/use-render-state.js"; | ||
const {useContext, useEffect, useState} = React; | ||
const {useEffect, useState} = React; | ||
@@ -22,8 +23,5 @@ type Props = {| | ||
export const RenderStateRoot = ({ | ||
children, | ||
throwIfNested, | ||
}: Props): React.Node => { | ||
const RenderStateRoot = ({children, throwIfNested}: Props): React.Node => { | ||
const [firstRender, setFirstRender] = useState<boolean>(true); | ||
const contextValue = useContext(RenderStateContext); | ||
const renderState = useRenderState(); | ||
useEffect(() => { | ||
@@ -33,3 +31,3 @@ setFirstRender(false); | ||
if (contextValue !== RenderState.Root) { | ||
if (renderState !== RenderState.Root) { | ||
if (throwIfNested) { | ||
@@ -55,4 +53,8 @@ throw new Error( | ||
// We can set `defaultProps` on a functional component if we move the `export` to appear | ||
// afterwards. | ||
RenderStateRoot.defaultProps = { | ||
throwIfNested: true, | ||
}; | ||
export {RenderStateRoot}; |
// @flow | ||
import {useContext, useRef} from "react"; | ||
import {useRef} from "react"; | ||
import {useRenderState} from "./use-render-state.js"; | ||
import SsrIDFactory from "../util/ssr-id-factory.js"; | ||
@@ -13,3 +14,2 @@ import UniqueIDFactory from "../util/unique-id-factory.js"; | ||
RenderState, | ||
RenderStateContext, | ||
} from "../components/render-state-context.js"; | ||
@@ -28,3 +28,3 @@ | ||
export const useUniqueIdWithMock = (scope?: string): IIdentifierFactory => { | ||
const renderState = useContext(RenderStateContext); | ||
const renderState = useRenderState(); | ||
const idFactory = useRef<?IIdentifierFactory>(null); | ||
@@ -57,3 +57,3 @@ | ||
export const useUniqueIdWithoutMock = (scope?: string): ?IIdentifierFactory => { | ||
const renderState = useContext(RenderStateContext); | ||
const renderState = useRenderState(); | ||
const idFactory = useRef<?IIdentifierFactory>(null); | ||
@@ -60,0 +60,0 @@ |
@@ -17,4 +17,10 @@ // @flow | ||
export {useOnline} from "./hooks/use-online.js"; | ||
export {useRenderState} from "./hooks/use-render-state.js"; | ||
export {RenderStateRoot} from "./components/render-state-root.js"; | ||
// TODO(somewhatabstract, FEI-4174): Update eslint-plugin-import when they | ||
// have fixed: | ||
// https://github.com/import-js/eslint-plugin-import/issues/2073 | ||
// eslint-disable-next-line import/named | ||
export {RenderState} from "./components/render-state-context.js"; | ||
export type {AriaProps, IIdentifierFactory, StyleType}; |
8879
286
9
175
180270
53
4285
58