/home/bdqbpbxa/demo-subdomains/ping-proxies.goodface.com.ua/src/helpers.js
import { MAIN_URL } from 'api/constants';
import * as dayjs from 'dayjs';
import { BlocksRenderer } from '@strapi/blocks-react-renderer';
import JSZip from 'jszip';


export const scrollToSection = (className, offset = 50) => {
    window.scrollTo({
        top: document?.querySelector(`.${className}`)?.getBoundingClientRect().top + window.scrollY - offset,
        behavior: 'smooth',
    });
};


export const getImageUrl = imageData => {
    const url = imageData?.data?.attributes.url;
    if (url) {
        return MAIN_URL + url;
    } else {
        return 'error';
    }
};

export const getFormatedDate = date => {
    return dayjs(date).format('DD.MM.YYYY');
};

export const getTextContent = content => {
    if (content && content.length) {
        return <BlocksRenderer content={content} />;
    } else return null;
};


export const copyTextToClipboard = (text) => {
    navigator.clipboard.writeText(text).catch((err) => {
        console.error('Error copying link to clipboard', err);
    });
}


export const downloadImages = async (imageUrls) => {
    if (imageUrls.length === 1) {
        const url = imageUrls[0];
        const link = document.createElement('a');
        link.href = url;
        link.download = url.split('/').pop();
        link.click();

    } else if (imageUrls.length > 1) {
        const zip = new JSZip();
        const folderName = 'Ping-logos';

        await Promise.all(imageUrls.map(async (url, index) => {
            try {
                const response = await fetch(url);
                const blob = await response.blob();

                const fileName = getFileNameFromUrl(response.url);

                zip.file(`${folderName}/${fileName}`, blob);
            } catch (error) {
                console.error('Error', error);
            }
        }));
        zip.generateAsync({ type: 'blob' }).then((content) => {
            const link = document.createElement('a');
            link.href = URL.createObjectURL(content);
            link.download = 'Ping_Proxy_logo_pack.zip';
            link.click();
        });
    }
};

const getFileNameFromUrl = (url) => {
    const matches = url.match(/\/([^\/?#]+)[^\/]*$/);
    if (matches && matches.length > 1) {
        return matches[1];
    }
    return `image_${new Date().getTime()}`;
};