@bemit/consent-ui-react
Version:
38 lines • 1.02 kB
JavaScript
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
};
};