@tomino/dynamic-form-semantic-ui
Version:
Semantic UI form renderer based on dynamic form generation
51 lines • 2.27 kB
JavaScript
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