/** @format */
/**
* External dependencies
*/
import { __ } from '@wordpress/i18n';
import { Component, Fragment } from '@wordpress/element';
import { IconButton, Button, Dashicon } from '@wordpress/components';
import classnames from 'classnames';
import interpolateComponents from 'interpolate-components';
import { compose } from '@wordpress/compose';
/**
* WooCommerce dependencies
*/
import { Card } from '@woocommerce/components';
/**
* Internal dependencies
*/
import withSelect from 'wc-api/with-select';
import { QUERY_DEFAULTS } from 'wc-api/constants';
import sanitizeHTML from 'lib/sanitize-html';
import './style.scss';
class StoreAlerts extends Component {
constructor( props ) {
super( props );
const { alerts } = this.props;
this.state = {
currentIndex: alerts ? 0 : null,
};
this.previousAlert = this.previousAlert.bind( this );
this.nextAlert = this.nextAlert.bind( this );
}
previousAlert( event ) {
event.stopPropagation();
const { currentIndex } = this.state;
if ( currentIndex > 0 ) {
this.setState( {
currentIndex: currentIndex - 1,
} );
}
}
nextAlert( event ) {
event.stopPropagation();
const { alerts } = this.props;
const { currentIndex } = this.state;
if ( currentIndex < alerts.length - 1 ) {
this.setState( {
currentIndex: currentIndex + 1,
} );
}
}
render() {
const { alerts } = this.props;
if ( ! alerts || alerts.length === 0 ) {
return null;
}
const { currentIndex } = this.state;
const numberOfAlerts = alerts.length;
const alert = alerts[ currentIndex ] ? alerts[ currentIndex ] : null;
const type = alert && alert.type ? alert.type : null;
const className = classnames( 'woocommerce-store-alerts', {
'is-alert-error': 'error' === type,
'is-alert-update': 'update' === type,
} );
const actions =
alert &&
alert.actions.map( action => (
) );
return (