Hi, I'm attempting to create a custom block following this documentation
I've setup my Edit.jsx and View.jsx
Edit.jsx-
import React from 'react';
const Edit = props => {
return <div>I'm the MainSlider edit component!</div>;
};
export default Edit;
View.jsx
import React from 'react';
const View = props => {
return <div>I'm the MainSlider view component!</div>;
};
export default View;
Added and exported them from index.js
import TalkView from "./Views/Talk";
import TalkListView from "./Views/TalkList";
import NewKnowledgeView from "./Views/NewKnowledge";
import PrimaryAuthorWidget from "./Widgets/KnowledgeWidgets/PrimaryAuthor";
import IndustryWidget from "./Widgets/KnowledgeWidgets/Industry";
import MarketWidget from "./Widgets/KnowledgeWidgets/Market";
import AddView from "./Views/Add";
import Edit from "./Blocks/MainSlider/Edit";
import View from "./Blocks/MainSlider/View";
export {TalkView, TalkListView, NewKnowledgeView, PrimaryAuthorWidget, IndustryWidget, MarketWidget, AddView, Edit, View};
/**
* Add your components here.
* @module components
* @example
* import Footer from './Footer/Footer';
*
* export {
* Footer,
* };
*/
My config.js looks like this -
import {Edit, View} from './components';
...
export default function applyConfig(config) {
let custom_block = {
id: 'mainslider',
title: 'Main Slider',
icon: titleSVG,
group: 'common',
view: View,
edit: Edit,
restricted: false,
mostUsed: true,
security: {
addPermission: [],
view: [],
}
};
config.blocks.blocksConfig.MainSlider = custom_block;
return config;
}
It looks like Volto is picking up that I've added a custom block, when I go to use it in the UI though, this is what ends up happening -
Have I missed some configuration?
Thanks!
Edit -
Seeing this in the console on page load
Warning: Failed prop type: The prop `onMutateBlock` is marked as required in `BlockChooser`, but its value is `undefined`.
in BlockChooser (created by Context.Consumer)
in injectIntl(BlockChooser) (at Edit.jsx:335)
in Edit (created by Context.Consumer)
in injectIntl(Edit) (at Edit.jsx:168)
in div (at Edit.jsx:136)
in Edit (created by Connect(Edit))
in Connect(Edit) (at ObjectBrowser.jsx:83)
in _class (created by Context.Consumer)
in injectIntl(_class) (at BlocksForm.jsx:206)
in div (at EditBlockWrapper.jsx:50)
in div (at EditBlockWrapper.jsx:39)
in div (at EditBlockWrapper.jsx:34)
in EditBlockWrapper (created by Context.Consumer)
in injectIntl(EditBlockWrapper) (at BlocksForm.jsx:146)
in Draggable (created by ConnectFunction)
in ConnectFunction (created by PrivateDraggable)
in PrivateDraggable (created by PublicDraggable)
in PublicDraggable (at DragDropList.jsx:115)
in div (at DragDropList.jsx:106)
in Droppable (created by ConnectFunction)
in ConnectFunction
in ConnectFunction (at DragDropList.jsx:104)
in Provider (created by App)
in App (created by ErrorBoundary)
in ErrorBoundary (created by DragDropContext)
in DragDropContext (at DragDropList.jsx:96)
in DragDropList (at BlocksForm.jsx:156)
in fieldset (at BlocksForm.jsx:155)
in div (at BlocksForm.jsx:154)
in BlocksForm (at Form.jsx:523)
in div (at Form.jsx:505)
in Form (created by Context.Consumer)
in injectIntl(Form) (created by ForwardRef)
in ForwardRef (at Add.jsx:297)
in div (at Add.jsx:291)
in Add (at Loadable.js:87)
in PreloadLoadables(cms)(Add) (at Loadable.js:98)
in ForwardRef (created by Connect(Component))
in Connect(Component) (created by Context.Consumer)
in injectIntl(Connect(Component)) (created by DragDropContext(injectIntl(Connect(Component))))
in DragDropContext(injectIntl(Connect(Component))) (created by Context.Consumer)
in Route (created by App)
in Switch (created by App)
in main (at App.jsx:138)
in div (created by Segment)
in Segment (at App.jsx:137)
in MultilingualRedirector (at App.jsx:136)
in PluggablesProvider (at App.jsx:109)
in App (created by Connect(App))
in Connect(App) (created by Connect(Connect(App)))
in Connect(Connect(App)) (created by Context.Consumer)
in Route (created by Context.Consumer)
in Switch (created by Context.Consumer)
in Route (at AsyncConnect.jsx:89)
in AsyncConnect (at AsyncConnect.jsx:129)
in AsyncConnectWithContext (created by Context.Consumer)
in withRouter(AsyncConnectWithContext) (created by Connect(withRouter(AsyncConnectWithContext)))
in Connect(withRouter(AsyncConnectWithContext)) (at start-client.jsx:56)
in ScrollToTop (created by Context.Consumer)
in withRouter(ScrollToTop) (at start-client.jsx:55)
in Router (created by ConnectedRouter)
in ConnectedRouter (created by Context.Consumer)
in ConnectedRouterWithContext (created by Connect(ConnectedRouterWithContext))
in Connect(ConnectedRouterWithContext) (at start-client.jsx:54)
in IntlProvider (created by Connect(IntlProvider))
in Connect(IntlProvider) (at start-client.jsx:53)
in Provider (at start-client.jsx:52)