import React, {createContext, Dispatch, PropsWithChildren, SetStateAction, useState} from "react";


interface HeaderControlsContextInterface {
    demandUpdate:number
    setDemandUpdate: Dispatch<SetStateAction<number>>
    showSensitive: boolean
    toggleSensitive: ()=>void
}

const HeaderControlsContext = createContext({} as HeaderControlsContextInterface);

export const HeaderControlsContextProvider: React.FC<PropsWithChildren> = (props) => {

    /** increases by 1 so use effects can catch the change and request updates */
    const [demandUpdate, setDemandUpdate] = useState(1)
    const [showSensitive, setShowSensitive] = useState(false)

    const toggleSensitive = () => {
        setShowSensitive((prev) => !prev)
    }

    return (
        <HeaderControlsContext.Provider value={{
            demandUpdate,
            setDemandUpdate,
            showSensitive,
            toggleSensitive,
        }}>
            {props.children}
        </HeaderControlsContext.Provider>
    );
};

export default HeaderControlsContext;