UNPKG

@bemit/consent-ui-react

Version:

38 lines 1.02 kB
import React from 'react'; export const usePreferState = (userPrefers, prefersInitial) => { const [nextUserPrefers, setNextUserPrefers] = React.useState({}); React.useEffect(() => { setNextUserPrefers(typeof userPrefers === 'undefined' ? { ...prefersInitial } : { ...userPrefers }); }, [userPrefers, prefersInitial, setNextUserPrefers]); const toggleGroup = React.useCallback(group => { setNextUserPrefers((up = {}) => { return { ...up, groups: { ...(up?.groups || {}), [group]: up?.groups?.[group] ? undefined : 2 } }; }); }, [setNextUserPrefers]); const toggleService = React.useCallback(service => { setNextUserPrefers((up = {}) => { return { ...up, services: { ...(up?.services || {}), [service]: up?.services?.[service] ? undefined : 2 } }; }); }, [setNextUserPrefers]); return { nextUserPrefers, toggleGroup, toggleService }; };