# give/4.18.0/src/Promotions/ReportsWidgetBanner/hooks/useBannerVisibility.ts

GiveWP – Donation Plugin and Fundraising Platform, version 4.18.0. 39 lines.

- Page: https://pluginprobe.com/plugins/give/4.18.0/code/src/Promotions/ReportsWidgetBanner/hooks/useBannerVisibility.ts
- Raw: https://pluginprobe.com/plugins/give/4.18.0/raw/src/Promotions/ReportsWidgetBanner/hooks/useBannerVisibility.ts
- Modified: 2024-06-26T16:32:32+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/give/4.18.0/code/src/Promotions/ReportsWidgetBanner/hooks/useBannerVisibility.ts#L10-L20`.

```typescript
import { useState, useEffect } from 'react';
import {getWidgetWindowData} from "../window/widgetWindow";


export const useBannerVisibility = () => {
    const windowData = getWidgetWindowData();
    const [isVisible, setIsVisible] = useState<boolean>(false);

    useEffect(() => {
            setIsVisible(!!windowData?.banner);
    }, [windowData?.banner]);

    const hideWidgetBanner = async (id) => {
        const formData = new FormData();
        formData.append('id', id);

        try {
             await fetch(`${windowData.apiRoot}/hide`, {
                method: 'POST',
                headers: {
                    'X-WP-Nonce': windowData.apiNonce,
                },
                body: formData,
            });

            setIsVisible(false);
        } catch (error) {
            console.error('Error hiding banner:', error);
        }
    };

    return {
        isVisible,
        hideWidgetBanner,
    };
};

export default useBannerVisibility;

```
