import { Component, ReactElement } from 'react'; import { inject, observer } from 'mobx-react'; import { StoresProps } from '../../@types/ferdium-components.types'; import ServicesDashboard from '../../components/settings/services/ServicesDashboard'; import ErrorBoundary from '../../components/util/ErrorBoundary'; class ServicesScreen extends Component { componentWillUnmount(): void { this.props.actions.service.resetFilter(); this.props.actions.service.resetStatus(); } deleteService(): void { this.props.actions.service.deleteService(); this.props.actions.service.resetFilter(); } render(): ReactElement { const { user, services, router } = this.props.stores; const { toggleService, filter, resetFilter } = this.props.actions.service; const isLoading = services.allServicesRequest.isExecuting; let allServices = services.all; if (services.filterNeedle !== null) { allServices = services.filtered; } return ( this.deleteService()} toggleService={toggleService} isLoading={isLoading} filterServices={filter} resetFilter={resetFilter} goTo={router.push} servicesRequestFailed={ services.allServicesRequest.wasExecuted && services.allServicesRequest.isError } retryServicesRequest={() => services.allServicesRequest.reload()} searchNeedle={services.filterNeedle} /> ); } } export default inject('stores', 'actions')(observer(ServicesScreen));