UNPKG

@selfcommunity/react-ui

Version:

React UI Components to integrate a Community created with SelfCommunity Platform.

45 lines (44 loc) 4.22 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); const system_1 = require("@mui/system"); const classnames_1 = tslib_1.__importDefault(require("classnames")); const material_1 = require("@mui/material"); const constants_1 = require("./constants"); const react_intl_1 = require("react-intl"); const types_1 = require("@selfcommunity/types"); const lab_1 = require("@mui/lab"); const classes = { root: `${constants_1.PREFIX}-root`, form: `${constants_1.PREFIX}-form`, settings: `${constants_1.PREFIX}-settings`, button: `${constants_1.PREFIX}-button` }; const Root = (0, material_1.styled)(material_1.Box, { name: constants_1.PREFIX, slot: 'Root', overridesResolver: (props, styles) => [styles.root] })(() => ({})); function LessonEditForm(inProps) { // PROPS const props = (0, system_1.useThemeProps)({ props: inProps, name: constants_1.PREFIX }); const { className = null, lesson, onSettingsChange, onSave, updating } = props, rest = tslib_1.__rest(props, ["className", "lesson", "onSettingsChange", "onSave", "updating"]); //STATE const [settings, setSettings] = (0, react_1.useState)({ comments_enabled: lesson.comments_enabled, status: lesson.status }); // HANDLERS const handleChange = (field, value) => { const updatedSettings = Object.assign(Object.assign({}, settings), { [field]: value }); setSettings(updatedSettings); onSettingsChange(updatedSettings); }; /** * Rendering */ return ((0, jsx_runtime_1.jsxs)(Root, Object.assign({ className: (0, classnames_1.default)(className, classes.root) }, rest, { children: [(0, jsx_runtime_1.jsxs)(material_1.Box, Object.assign({ className: classes.form }, { children: [(0, jsx_runtime_1.jsxs)(material_1.FormControl, { children: [(0, jsx_runtime_1.jsx)(material_1.FormLabel, Object.assign({ id: "status" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.lessonEditForm.status.title", defaultMessage: "ui.lessonEditForm.status.title" }) })), (0, jsx_runtime_1.jsxs)(material_1.RadioGroup, Object.assign({ "aria-labelledby": "course-status-radio-buttons-group", name: "course-status-radio-buttons-group", value: settings.status, onChange: (e) => handleChange('status', e.target.value) }, { children: [(0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { value: types_1.SCCourseLessonStatusType.DRAFT, control: (0, jsx_runtime_1.jsx)(material_1.Radio, {}), label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.lessonEditForm.status.draft", defaultMessage: "ui.lessonEditForm.status.draft" }) }), (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { value: types_1.SCCourseLessonStatusType.PUBLISHED, control: (0, jsx_runtime_1.jsx)(material_1.Radio, {}), label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.lessonEditForm.status.published", defaultMessage: "ui.lessonEditForm.status.published" }) })] }))] }), (0, jsx_runtime_1.jsxs)(material_1.FormControl, Object.assign({ className: classes.settings }, { children: [(0, jsx_runtime_1.jsx)(material_1.FormLabel, Object.assign({ id: "settings" }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.lessonEditForm.settings.title", defaultMessage: "ui.lessonEditForm.settings.title" }) })), (0, jsx_runtime_1.jsx)(material_1.FormControlLabel, { control: (0, jsx_runtime_1.jsx)(material_1.Checkbox, { checked: settings.comments_enabled, onChange: (e) => handleChange('comments_enabled', e.target.checked) }), label: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.lessonEditForm.settings.enableComments", defaultMessage: "ui.lessonEditForm.settings.enableComments" }) })] }))] })), (0, jsx_runtime_1.jsx)(lab_1.LoadingButton, Object.assign({ className: classes.button, variant: "contained", size: "small", onClick: onSave, loading: updating }, { children: (0, jsx_runtime_1.jsx)(react_intl_1.FormattedMessage, { id: "ui.lessonEditForm.button.save", defaultMessage: "ui.lessonEditForm.button.save" }) }))] }))); } exports.default = LessonEditForm;