import React from 'react'; import { compose, graphql } from 'react-apollo'; import { Margin } from 'styled-components-spacing'; import get from 'lodash.get'; import { ViewContainer, Message, MessageTitle, MessageDescription, StatusLoader } from 'joyent-ui-toolkit'; import Editor from 'joyent-ui-toolkit/dist/es/editor'; import Description from '@components/instances/description'; import Empty from 'joyent-ui-resource-step'; import GetMetadata from '@graphql/list-metadata.gql'; export const UserScript = ({ metadata, loading = false, error = null }) => ( User script can be used to inject a custom boot script. {loading ? : null} {!loading && error ? ( Ooops! An error occurred while loading the instance user-script ) : null} {!loading && metadata ? ( ) : null} {!loading && !error && !metadata ? ( No User Script defined ) : null} ); export default compose( graphql(GetMetadata, { options: ({ match }) => ({ ssr: false, variables: { fetchPolicy: 'network-only', id: get(match, 'params.instance') } }), props: ({ data }) => { const { loading, error, machine } = data; const metadata = get(machine, 'metadata', []) .filter(({ name = '' }) => name === 'user-script') .shift(); return { metadata, instance: machine, loading, error }; } }) )(UserScript);