Uname: Linux business55.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
Software: LiteSpeed
PHP version: 8.1.31 [ PHP INFO ] PHP os: Linux
Server Ip: 162.213.251.212
Your Ip: 3.141.27.108
User: allssztx (535) | Group: allssztx (533)
Safe Mode: OFF
Disable Function:
NONE

name : usePatterns.js
import { PATTERNS_HOST } from '@constants';
import useSWRInfinite from 'swr/infinite';

const fetcher = (url) => fetch(url).then((res) => res.json());

export const usePatterns = (incomingParams) => {
	const params = {
		siteType: undefined,
		category: undefined,
		wpVersion: window.extSharedData.wpVersion,
		lang: window.extSharedData.wpLanguage || null,
		showLocalizedCopy: window.extSharedData.showLocalizedCopy || null,
		...incomingParams,
	};

	const getKey = (pageIndex, previousPageData) => {
		if (!params.category) return null;
		if (previousPageData && !previousPageData.length) return null;

		const urlParams = new URLSearchParams({ page: pageIndex + 1 });

		Object.entries(params)
			.filter(([, value]) => value !== undefined)
			.forEach(([key, value]) => {
				urlParams.append(key, value);
			});

		return `${PATTERNS_HOST}/api/patterns?${urlParams.toString()}`;
	};

	const { data, error, isLoading, isValidating, mutate, size, setSize } =
		useSWRInfinite(getKey, fetcher, {
			initialSize: 2,
			revalidateFirstPage: false,
			revalidateIfStale: false,
			revalidateOnFocus: false,
			revalidateOnReconnect: false,
		});

	return {
		data,
		error,
		isLoading,
		isValidating,
		mutate,
		size,
		setSize,
	};
};
© 2025 GrazzMean-Shell