The createComponent() method is the main way to create UI components for your app or integration.
The createComponent() method can take 4 arguments, and must be defined in the blocks object in your app's gitbook-manifest.yaml file.
Any component defined in the blocks object will be available in the GitBook's quick insert menu (⌘ + /)
See the Configurations section for more info.
| Argument | Type | Description |
|---|---|---|
componentId* | string | A unique identifier for the component in the integration. |
initialState | object | An object containing the initial state of your app or integration when the page loads. |
action | function | An async function to handle a dispatched action. See the Actions section to learn more. |
render | function | An async function that must return valid UI from ContentKit. See the ContentKit reference for more info. |
*required
const component = createComponent({
componentId: 'unique-id',
initialState: (props) => ({
message: 'Click me',
}),
action: async (element, action, context) => {
switch (action.action) {
case 'say':
return { state: { message: 'Hello world' } };
}
},
render: async (element, action, context) => {
return (
<block>
<button label={element.state.message} onPress={{ action: 'say' }} />
</block>
);
},
});