From 01931957ab0e2b60ea7f353d7b713912485df68f Mon Sep 17 00:00:00 2001 From: Jared Scheib Date: Fri, 16 Mar 2018 19:23:28 -0700 Subject: [PATCH] Convert KapacitorRulesTable to working TypeScript --- .../components/KapacitorRulesTable.tsx | 122 ++++++++++-------- 1 file changed, 66 insertions(+), 56 deletions(-) diff --git a/ui/src/kapacitor/components/KapacitorRulesTable.tsx b/ui/src/kapacitor/components/KapacitorRulesTable.tsx index 783d66218..e6998db99 100644 --- a/ui/src/kapacitor/components/KapacitorRulesTable.tsx +++ b/ui/src/kapacitor/components/KapacitorRulesTable.tsx @@ -1,8 +1,9 @@ -import React from 'react' -import PropTypes from 'prop-types' +import React, {PureComponent, SFC, MouseEvent} from 'react' import {Link} from 'react-router' import _ from 'lodash' +import {AlertRule, Source} from 'src/types' + import ConfirmButton from 'src/shared/components/ConfirmButton' import {parseAlertNodeList} from 'src/shared/parsing/parseHandlersFromRule' import {TASKS_TABLE} from 'src/kapacitor/constants/tableSizing' @@ -15,7 +16,26 @@ const { colActions, } = TASKS_TABLE -const KapacitorRulesTable = ({rules, source, onDelete, onChangeRuleStatus}) => +interface KapacitorRulesTableProps { + rules: AlertRule[] + source: Source + onChangeRuleStatus: (rule: AlertRule) => void + onDelete: (rule: AlertRule) => void +} + +interface RuleRowProps { + rule: AlertRule + source: Source + onChangeRuleStatus: (rule: AlertRule) => void + onDelete: (rule: AlertRule) => void +} + +const KapacitorRulesTable: SFC = ({ + rules, + source, + onChangeRuleStatus, + onDelete, +}) => ( @@ -43,64 +63,54 @@ const KapacitorRulesTable = ({rules, source, onDelete, onChangeRuleStatus}) => })}
+) const handleDelete = (rule, onDelete) => onDelete(rule) -const RuleRow = ({rule, source, onDelete, onChangeRuleStatus}) => - - - - {rule.name} - - - - {rule.trigger} - - - {rule.message} - - - {parseAlertNodeList(rule)} - - -
- -
- - - - - +class RuleRow extends PureComponent { + handleClickRuleStatusEnabled(_: MouseEvent) { + return (rule: AlertRule) => this.props.onChangeRuleStatus(rule) + } -const {arrayOf, func, shape, string} = PropTypes + render() { + const {rule, source, onDelete} = this.props -KapacitorRulesTable.propTypes = { - rules: arrayOf(shape()), - onChangeRuleStatus: func, - onDelete: func, - source: shape({ - id: string.isRequired, - }).isRequired, -} - -RuleRow.propTypes = { - rule: shape(), - source: shape(), - onChangeRuleStatus: func, - onDelete: func, + return ( + + + + {rule.name} + + + + {rule.trigger} + + {rule.message} + {parseAlertNodeList(rule)} + +
+ +
+ + + + + + ) + } } export default KapacitorRulesTable