UNPKG

@tomino/dynamic-form-semantic-ui

Version:

Semantic UI form renderer based on dynamic form generation

51 lines 2.27 kB
import React from 'react'; import { ApolloProvider } from './apollo_provider_view'; import { thumbnails } from './apollo_query.editor'; import { propGroup, prop } from '../editor/editor_common'; import { Context } from '../context'; import { DynamicComponent } from '../wrapper'; const Provider = (props) => (React.createElement("div", { onMouseOver: props.onMouseOver, onMouseOut: props.onMouseOut }, React.createElement(ApolloProvider, Object.assign({}, props)))); export const ApolloProviderEditorComponent = props => { const controlProps = props.formElement.props; const context = React.useContext(Context); if (controlProps.authorised) { context.auth.user = { roles: controlProps.roles.split(','), name: controlProps.user, id: controlProps.id }; } return React.createElement(DynamicComponent, Object.assign({}, props, { control: Provider, preserveProps: true })); }; ApolloProviderEditorComponent.displayName = 'ApolloProviderEditor'; export const ApolloProviderEditor = { Component: ApolloProviderEditorComponent, title: 'Apollo Provider', control: 'ApolloProvider', thumbnail: thumbnails, provider: true, group: 'Data', props: { ...propGroup('Apollo', { server: prop({ label: 'Server Url', type: 'string' }), tokenName: prop({ label: 'Token', type: 'string' }), auth: prop({ label: 'Use Authentication', control: 'Checkbox', type: 'boolean' }), batchRequests: prop({ label: 'Batch Requests', control: 'Checkbox', type: 'boolean' }), disable: prop({ documentation: 'This is useful during testing when a mocked provider can be used instead.', label: 'Disable provider', group: 'Apollo', control: 'Checkbox', type: 'boolean' }) }), ...propGroup('Test', { authorised: prop({ label: 'Authorise', control: 'Checkbox', type: 'boolean' }), user: prop({ label: 'User', type: 'string' }), roles: prop({ label: 'Roles', type: 'string' }), id: prop({ label: 'Id', type: 'string' }) }) } }; //# sourceMappingURL=apollo_provider_editor.js.map