1
0
mirror of https://github.com/Unleash/unleash.git synced 2024-12-28 00:06:53 +01:00
unleash.unleash/frontend/src/hooks/useHiddenEnvironments.ts
2024-01-29 12:33:01 +01:00

48 lines
1.5 KiB
TypeScript

import { useGlobalLocalStorage } from './useGlobalLocalStorage';
import { useState } from 'react';
import { usePlausibleTracker } from 'hooks/usePlausibleTracker';
export const useHiddenEnvironments = () => {
const { trackEvent } = usePlausibleTracker();
const { value: globalStore, setValue: setGlobalStore } =
useGlobalLocalStorage();
const [hiddenEnvironments, setStoredHiddenEnvironments] = useState<
Set<string>
>(new Set(globalStore.hiddenEnvironments));
const setHiddenEnvironments = (environment: string) => {
setGlobalStore((params) => {
const hiddenEnvironments = new Set(
Array.from(params.hiddenEnvironments || []),
);
if (hiddenEnvironments.has(environment)) {
hiddenEnvironments.delete(environment);
trackEvent('hidden_environment', {
props: {
eventType: `environment unhidden`,
},
});
} else {
hiddenEnvironments.add(environment);
trackEvent('hidden_environment', {
props: {
eventType: `environment hidden`,
},
});
}
setStoredHiddenEnvironments(hiddenEnvironments);
return {
...globalStore,
hiddenEnvironments: [...hiddenEnvironments],
};
});
};
return {
hiddenEnvironments,
setHiddenEnvironments,
};
};