From af065033519bd4e94e730e602f7cea40be31f83a Mon Sep 17 00:00:00 2001 From: Andrew Watkins Date: Fri, 11 May 2018 17:30:54 -0700 Subject: [PATCH] Convert WriteDataFooter to ts --- .../components/WriteDataFooter.js | 60 ---------------- .../components/WriteDataFooter.tsx | 70 +++++++++++++++++++ ui/src/data_explorer/constants/index.ts | 5 ++ 3 files changed, 75 insertions(+), 60 deletions(-) delete mode 100644 ui/src/data_explorer/components/WriteDataFooter.js create mode 100644 ui/src/data_explorer/components/WriteDataFooter.tsx diff --git a/ui/src/data_explorer/components/WriteDataFooter.js b/ui/src/data_explorer/components/WriteDataFooter.js deleted file mode 100644 index b25850ac7..000000000 --- a/ui/src/data_explorer/components/WriteDataFooter.js +++ /dev/null @@ -1,60 +0,0 @@ -import React from 'react' -import PropTypes from 'prop-types' - -const submitButton = 'btn btn-sm btn-success write-data-form--submit' -const spinner = 'btn-spinner' - -const WriteDataFooter = ({ - isManual, - inputContent, - uploadContent, - handleSubmit, - isUploading, -}) => ( -
- {isManual ? ( - - Need help writing InfluxDB Line Protocol? -  - - See Documentation - - - ) : ( - - - File Upload Documentation - - - )} - -
-) - -const {bool, func, string} = PropTypes - -WriteDataFooter.propTypes = { - isManual: bool.isRequired, - isUploading: bool.isRequired, - uploadContent: string, - inputContent: string, - handleSubmit: func, -} - -export default WriteDataFooter diff --git a/ui/src/data_explorer/components/WriteDataFooter.tsx b/ui/src/data_explorer/components/WriteDataFooter.tsx new file mode 100644 index 000000000..c424bf631 --- /dev/null +++ b/ui/src/data_explorer/components/WriteDataFooter.tsx @@ -0,0 +1,70 @@ +import React, {PureComponent, MouseEvent} from 'react' +import { + WRITE_DATA_DOCS_LINK, + DATA_IMPORT_DOCS_LINK, +} from 'src/data_explorer/constants' + +const submitButton = 'btn btn-sm btn-success write-data-form--submit' +const spinner = 'btn-spinner' + +interface Props { + isManual: boolean + isUploading: boolean + uploadContent: string + inputContent: string + handleSubmit: (e: MouseEvent) => void +} + +class WriteDataFooter extends PureComponent { + public render() { + const {isManual, handleSubmit} = this.props + + return ( +
+ {isManual ? ( + + Need help writing InfluxDB Line Protocol? -  + + See Documentation + + + ) : ( + + + File Upload Documentation + + + )} + +
+ ) + } + + get buttonDisabled(): boolean { + const {inputContent, isManual, uploadContent, isUploading} = this.props + return ( + (!inputContent && isManual) || + (!uploadContent && !isManual) || + isUploading + ) + } + + get buttonClass(): string { + const {isUploading} = this.props + + if (isUploading) { + return `${submitButton} ${spinner}` + } + + return submitButton + } +} + +export default WriteDataFooter diff --git a/ui/src/data_explorer/constants/index.ts b/ui/src/data_explorer/constants/index.ts index bdd8a5d60..eefb25e40 100644 --- a/ui/src/data_explorer/constants/index.ts +++ b/ui/src/data_explorer/constants/index.ts @@ -137,3 +137,8 @@ export const QUERY_TEMPLATES: Template[] = [ query: 'SHOW DIAGNOSTICS', }, ] + +export const WRITE_DATA_DOCS_LINK = + 'https://docs.influxdata.com/influxdb/latest/write_protocols/line_protocol_tutorial/' +export const DATA_IMPORT_DOCS_LINK = + 'https://docs.influxdata.com/influxdb/v1.2//tools/shell/#import-data-from-a-file-with-import'