Sh3ll
OdayForums


Server : LiteSpeed
System : Linux premium84.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64
User : claqxcrl ( 523)
PHP Version : 8.1.32
Disable Function : NONE
Directory :  /home/claqxcrl/www/wp-content/plugins/extendify/src/Library/hooks/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/claqxcrl/www/wp-content/plugins/extendify/src/Library/hooks/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,
	};
};

ZeroDay Forums Mini