Skip to content
Snippets Groups Projects
Select Git revision
  • 33aff202a4da10c59515893faf87f713538eff7f
  • main default protected
  • v5.2
  • v5.1
  • v7.1
  • v7
  • v6.2
  • v6.1
  • v6
  • v5.9
  • v5.8
  • v5.7
  • v5.6
  • v5.5
  • v5
  • v5.3
  • v4.6
  • v4.6-problem
  • v4.5
  • v4
  • v3.2
  • v3.1
22 results

personListingController.component.jsx

Blame
  • personListingController.component.jsx 1.42 KiB
    import { useState } from 'react';
    
    import '../assets/style/displayController.css';
    
    import PersonListing from './personListing.component.jsx';
    import PersonListingControls from './personListingControls.component.jsx';
    
    const PersonListingController = ({ initialDelay = 250 }) => {
    
        const [ closed, setClosed ] = useState(false);
        const [ started, setStarted ] = useState(false);
        const [ delay, setDelay ] = useState(initialDelay)
    
        const startStop = () => setStarted( previousStarted => ! previousStarted);
        const closeComponent = () =>  {
                setClosed(previousClosed => ! previousClosed);
                setStarted(false);
            }
    
        const changeDelay = newDelay => setDelay(newDelay);
    
         const buildPersonListing = () => {
            if (closed)
               return null;
            else
               return (<PersonListing
                           delay={delay}
                           started={started}
                        />);
         }
    
         const buildListingControls = () => {
            return (<PersonListingControls
                        started={started}
                        closed={closed}
                        changeDelay={changeDelay}
                        closeAction={closeComponent}
                        startStop={startStop}
                     />);
         }
    
        return (
                <div>
                  {buildListingControls()}
                  {buildPersonListing()}
                </div>
            );
    
    }
    
    export default PersonListingController;