@selfcommunity/react-ui
Version:
React UI Components to integrate a Community created with SelfCommunity Platform.
68 lines (63 loc) • 3.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const jsx_runtime_1 = require("react/jsx-runtime");
const material_1 = require("@mui/material");
const system_1 = require("@mui/system");
const classnames_1 = tslib_1.__importDefault(require("classnames"));
const react_intl_1 = require("react-intl");
const BaseDialog_1 = tslib_1.__importDefault(require("../../shared/BaseDialog"));
const constants_1 = require("./constants");
const CourseForm_1 = tslib_1.__importDefault(require("../CourseForm"));
const react_1 = require("react");
const Course_1 = require("../../constants/Course");
const classes = {
root: `${constants_1.PREFIX}-root`
};
const Root = (0, material_1.styled)(BaseDialog_1.default, {
name: constants_1.PREFIX,
slot: 'Root'
})(() => ({}));
/**
*> API documentation for the Community-JS CourseFormDialog component. Learn about the available props and the CSS API.
*
#### Import
```jsx
import {CourseFormDialog} from '@selfcommunity/react-ui';
```
#### Component Name
The name `SCCourseFormDialog` can be used when providing style overrides in the theme.
#### CSS
|Rule Name|Global class|Description|
|---|---|---|
|root|.SCCourseFormDialog-root|Styles applied to the root element.|
* @param inProps
*/
function CourseFormDialog(inProps) {
//PROPS
const props = (0, system_1.useThemeProps)({
props: inProps,
name: constants_1.PREFIX
});
const { className, open = true, onClose, CourseFormComponentProps = {} } = props, rest = tslib_1.__rest(props, ["className", "open", "onClose", "CourseFormComponentProps"]);
// STATE
const [step, setStep] = (0, react_1.useState)(Course_1.SCCourseFormStepType.GENERAL);
const [type, setType] = (0, react_1.useState)('');
//HANDLERS
const handleStepTypeChange = (step, type) => {
setStep(step);
setType(type);
};
const handleSuccess = (0, react_1.useCallback)((course) => {
var _a;
(_a = CourseFormComponentProps.onSuccess) === null || _a === void 0 ? void 0 : _a.call(CourseFormComponentProps, course);
onClose === null || onClose === void 0 ? void 0 : onClose();
}, [onClose, CourseFormComponentProps]);
/**
* Renders root object
*/
return ((0, jsx_runtime_1.jsx)(Root, Object.assign({ DialogContentProps: { dividers: false }, title: (CourseFormComponentProps === null || CourseFormComponentProps === void 0 ? void 0 : CourseFormComponentProps.course) ? ((0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.courseForm.title.edit", defaultMessage: "ui.courseForm.title.edit" })) : step === Course_1.SCCourseFormStepType.GENERAL ? ((0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.courseForm.title.general", defaultMessage: "ui.courseForm.title.general" })) : ((0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.courseForm.title.customization", defaultMessage: "ui.courseForm.title.customization", values: {
courseType: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: `ui.courseForm.${type}.title`, defaultMessage: `ui.courseForm.${type}.title` })
} })), open: open, onClose: onClose, className: (0, classnames_1.default)(classes.root, className) }, rest, { children: (0, jsx_runtime_1.jsx)(CourseForm_1.default, Object.assign({}, CourseFormComponentProps, { onStepChange: handleStepTypeChange, onSuccess: handleSuccess })) })));
}
exports.default = CourseFormDialog;