Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
trouvaille
/
wp-content
/
plugins
/
extendify
/
src
/
Agent
/
hooks
:
useThemeVariations.js
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
import apiFetch from '@wordpress/api-fetch'; import { __ } from '@wordpress/i18n'; import useSWRImmutable from 'swr/immutable'; const fetcher = async () => { const path = window.location.pathname; const s = new URLSearchParams(window.location.search); const onEditor = path.includes('/wp-admin/post.php') && s.get('action') === 'edit'; const variations = await apiFetch({ method: 'GET', // On the frontend we need to include layout styles path: `/extendify/v1/agent/theme-variations${onEditor ? '' : '?includeLayoutStyles'}`, }); if (!variations || !Array.isArray(variations)) { throw new Error(__('Failed to fetch theme variations.', 'extendify-local')); } return { // remove duplicate variations by title variations: variations.reduce((acc, variation) => { if (!acc.some((v) => v.title === variation.title)) { acc.push(variation); } return acc; }, []), }; }; export const useThemeVariations = () => { const { data, error, isLoading } = useSWRImmutable( { key: 'theme-variations', themeSlug: window.extAgentData.context.themeSlug, }, fetcher, ); return { variations: data?.variations, error, isLoading }; };