UNPKG

@e-group/material-module

Version:
86 lines (66 loc) 2.83 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _react = _interopRequireWildcard(require("react")); var _clsx = _interopRequireDefault(require("clsx")); var _core = require("@material-ui/core"); var _Paper = _interopRequireDefault(require("@material-ui/core/Paper")); var _usePrevious = _interopRequireDefault(require("@e-group/hooks/usePrevious")); var _SurveyContext = _interopRequireDefault(require("./SurveyContext")); const styles = () => (0, _core.createStyles)({ root: { position: 'relative' } }); const Survey = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => { const classes = props.classes, className = props.className, data = props.data, onChange = props.onChange, selectedQuestionIdProp = props.selectedQuestionId, other = (0, _objectWithoutProperties2.default)(props, ["classes", "className", "data", "onChange", "selectedQuestionId"]); const _useState = (0, _react.useState)(data), _useState2 = (0, _slicedToArray2.default)(_useState, 2), questions = _useState2[0], setQuestions = _useState2[1]; const _useState3 = (0, _react.useState)(), _useState4 = (0, _slicedToArray2.default)(_useState3, 2), selectedQuestionId = _useState4[0], setSelectedQuestionId = _useState4[1]; const prevQuestions = (0, _usePrevious.default)(questions); (0, _react.useEffect)(() => { if (data) { setQuestions(data); } }, [data]); (0, _react.useEffect)(() => { if (onChange && JSON.stringify(questions) !== JSON.stringify(prevQuestions)) { onChange(questions); } // eslint-disable-next-line react-hooks/exhaustive-deps }, [questions]); (0, _react.useEffect)(() => { if (selectedQuestionIdProp) { setSelectedQuestionId(selectedQuestionIdProp); } }, [selectedQuestionIdProp]); return /*#__PURE__*/_react.default.createElement(_SurveyContext.default.Provider, { value: { questions, setQuestions, selectedQuestionId, setSelectedQuestionId } }, /*#__PURE__*/_react.default.createElement(_Paper.default, (0, _extends2.default)({ ref: ref, className: (0, _clsx.default)(className, classes.root) }, other))); }); var _default = (0, _core.withStyles)(styles)(Survey); exports.default = _default;