import { router } from '@inertiajs/vue3';

/** Reload shared `pricingUpdate` prop (header banner) without a full page refresh. */
export function refreshPricingUpdateBanner(): Promise<void> {
    return new Promise((resolve) => {
        router.reload({
            only: ['pricingUpdate'],
            preserveScroll: true,
            preserveState: true,
            onFinish: () => resolve(),
        });
    });
}

export function shouldRefreshPricingBannerFromResponse(response: {
    headers?: Record<string, unknown>;
    data?: Record<string, unknown>;
}): boolean {
    const headers = response.headers ?? {};
    const header =
        headers['x-refresh-pricing-update'] ??
        headers['X-Refresh-Pricing-Update'];

    if (header === '1' || header === 1 || header === true) {
        return true;
    }

    const data = response.data;
    return data?.pricing_update_pending === true || data?.refresh_pricing_update === true;
}
