BlueWallet/hooks/usePrivacy.tsx
2024-10-13 10:44:22 -04:00

34 lines
No EOL
912 B
TypeScript

import { useEffect, useCallback } from 'react';
import { disallowScreenshot } from 'react-native-screen-capture';
import { useSettings } from './context/useSettings';
export const usePrivacy = () => {
const { isPrivacyBlurEnabled } = useSettings();
const enableBlur = useCallback(() => {
if (!isPrivacyBlurEnabled) return;
disallowScreenshot(true);
}, [isPrivacyBlurEnabled]);
const disableBlur = useCallback(() => {
disallowScreenshot(false);
}, []);
useEffect(() => {
// Apply privacy settings when the component mounts or when the setting changes
if (isPrivacyBlurEnabled) {
enableBlur();
} else {
disableBlur();
}
// Cleanup: Re-enable screenshots when the component unmounts
return () => {
disableBlur();
};
}, [isPrivacyBlurEnabled, enableBlur, disableBlur]);
return { enableBlur, disableBlur };
};
export default usePrivacy;