// @flow import React from 'react'; import type { ChecklistResource } from '../../types'; import { getCheckedStatusById, setCheckedStatusById } from './utils'; import Card from '../Card'; import LoadingChecklistItem from '../LoadingChecklistItem'; import { Heading } from './Heading'; import { Apps } from './Apps'; import { Resources } from './Resources'; import { Container, CheckboxContainer, Checkbox, CardContent, ResourceContent, Divider, } from './style'; type Props = { resource: ChecklistResource, }; type State = { isChecked: boolean, isLoading: boolean, isCollapsed: boolean, }; class ChecklistItem extends React.Component { state = { isChecked: false, isLoading: true, isCollapsed: true }; componentDidMount() { const { resource } = this.props; const isChecked = getCheckedStatusById(resource.id); return this.setState({ isChecked, isLoading: false, isCollapsed: isChecked, }); } handleSetChecked = () => { const { isChecked } = this.state; const { resource } = this.props; setCheckedStatusById(resource.id, !isChecked); return this.setState({ isChecked: !isChecked, isCollapsed: !isChecked }); }; uncollapse = () => this.setState(state => ({ isCollapsed: !state.isCollapsed })); render() { const { isChecked, isLoading, isCollapsed } = this.state; const { resource } = this.props; if (isLoading) return ; return ( {!isCollapsed && resource.apps && ( )} {!isCollapsed && resource.resources && ( )} ); } } export default ChecklistItem;