/* eslint-disable import/extensions */ /* eslint-disable import/no-unresolved */ /** * This is an example component for an xblock Editor * It uses pre-existing components to handle the saving of a the result of a function into the xblock's data. * To use run npm run-script addXblock */ /* eslint-disable no-unused-vars */ import React from 'react'; import { connect } from 'react-redux'; import PropTypes from 'prop-types'; import { Spinner } from '@edx/paragon'; import { injectIntl, intlShape } from '@edx/frontend-platform/i18n'; import EditorContainer from '../EditorContainer'; import * as module from '.'; import { actions, selectors } from '../../data/redux'; import { RequestKeys } from '../../data/constants/requests'; export const hooks = { getContent: () => ({ some: 'content', }), }; export const thumbEditor = ({ onClose, // redux blockValue, lmsEndpointUrl, blockFailed, blockFinished, initializeEditor, // inject intl, }) => (
{!blockFinished ? (
) : (

Your Editor Goes here. You can get at the xblock data with the blockValue field. here is what is in your xblock: {JSON.stringify(blockValue)}

)}
); thumbEditor.defaultProps = { blockValue: null, lmsEndpointUrl: null, }; thumbEditor.propTypes = { onClose: PropTypes.func.isRequired, // redux blockValue: PropTypes.shape({ data: PropTypes.shape({ data: PropTypes.string }), }), lmsEndpointUrl: PropTypes.string, blockFailed: PropTypes.bool.isRequired, blockFinished: PropTypes.bool.isRequired, initializeEditor: PropTypes.func.isRequired, // inject intl: intlShape.isRequired, }; export const mapStateToProps = (state) => ({ blockValue: selectors.app.blockValue(state), lmsEndpointUrl: selectors.app.lmsEndpointUrl(state), blockFailed: selectors.requests.isFailed(state, { requestKey: RequestKeys.fetchBlock }), blockFinished: selectors.requests.isFinished(state, { requestKey: RequestKeys.fetchBlock }), }); export const mapDispatchToProps = { initializeEditor: actions.app.initializeEditor, }; export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(thumbEditor));