|
|
@@ -1,7 +1,8 @@
|
|
|
import React, { PureComponent } from 'react';
|
|
|
import { hot } from 'react-hot-loader';
|
|
|
import { connect } from 'react-redux';
|
|
|
-import PageHeader from 'app/core/components/PageHeader/PageHeader';
|
|
|
+import Page from 'app/core/components/Page/Page';
|
|
|
+// import PageHeader from 'app/core/components/PageHeader/PageHeader';
|
|
|
import AlertRuleItem from './AlertRuleItem';
|
|
|
import appEvents from 'app/core/app_events';
|
|
|
import { updateLocation } from 'app/core/actions';
|
|
|
@@ -19,6 +20,7 @@ export interface Props {
|
|
|
togglePauseAlertRule: typeof togglePauseAlertRule;
|
|
|
stateFilter: string;
|
|
|
search: string;
|
|
|
+ isLoading: boolean;
|
|
|
}
|
|
|
|
|
|
export class AlertRuleList extends PureComponent<Props, any> {
|
|
|
@@ -54,9 +56,9 @@ export class AlertRuleList extends PureComponent<Props, any> {
|
|
|
return 'all';
|
|
|
}
|
|
|
|
|
|
- onStateFilterChanged = event => {
|
|
|
+ onStateFilterChanged = (evt: React.ChangeEvent<HTMLSelectElement>) => {
|
|
|
this.props.updateLocation({
|
|
|
- query: { state: event.target.value },
|
|
|
+ query: { state: evt.target.value },
|
|
|
});
|
|
|
};
|
|
|
|
|
|
@@ -68,8 +70,8 @@ export class AlertRuleList extends PureComponent<Props, any> {
|
|
|
});
|
|
|
};
|
|
|
|
|
|
- onSearchQueryChange = event => {
|
|
|
- const { value } = event.target;
|
|
|
+ onSearchQueryChange = (evt: React.ChangeEvent<HTMLInputElement>) => {
|
|
|
+ const { value } = evt.target;
|
|
|
this.props.setSearchQuery(value);
|
|
|
};
|
|
|
|
|
|
@@ -77,7 +79,7 @@ export class AlertRuleList extends PureComponent<Props, any> {
|
|
|
this.props.togglePauseAlertRule(rule.id, { paused: rule.state !== 'paused' });
|
|
|
};
|
|
|
|
|
|
- alertStateFilterOption = ({ text, value }) => {
|
|
|
+ alertStateFilterOption = ({ text, value }: { text: string; value: string; }) => {
|
|
|
return (
|
|
|
<option key={value} value={value}>
|
|
|
{text}
|
|
|
@@ -86,12 +88,11 @@ export class AlertRuleList extends PureComponent<Props, any> {
|
|
|
};
|
|
|
|
|
|
render() {
|
|
|
- const { navModel, alertRules, search } = this.props;
|
|
|
+ const { navModel, alertRules, search, isLoading } = this.props;
|
|
|
|
|
|
return (
|
|
|
- <div>
|
|
|
- <PageHeader model={navModel} />
|
|
|
- <div className="page-container page-body">
|
|
|
+ <Page navModel={navModel}>
|
|
|
+ <Page.Contents isLoading={isLoading}>
|
|
|
<div className="page-action-bar">
|
|
|
<div className="gf-form gf-form--grow">
|
|
|
<label className="gf-form--has-input-icon gf-form--grow">
|
|
|
@@ -131,8 +132,8 @@ export class AlertRuleList extends PureComponent<Props, any> {
|
|
|
))}
|
|
|
</ol>
|
|
|
</section>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ </Page.Contents>
|
|
|
+ </Page>
|
|
|
);
|
|
|
}
|
|
|
}
|
|
|
@@ -142,6 +143,7 @@ const mapStateToProps = (state: StoreState) => ({
|
|
|
alertRules: getAlertRuleItems(state.alertRules),
|
|
|
stateFilter: state.location.query.state,
|
|
|
search: getSearchQuery(state.alertRules),
|
|
|
+ isLoading: state.alertRules.isLoading
|
|
|
});
|
|
|
|
|
|
const mapDispatchToProps = {
|