PHP 8.2.31
Preview: domains.js Size: 2.72 KB
/home/nshryvcy/radiantskinclinics.org/wp-content/plugins/extendify_old/src/Assist/lib/domains.js

import { safeParseJson } from '@shared/lib/parsing';
import apiFetch from '@wordpress/api-fetch';
import { decodeEntities } from '@wordpress/html-entities';

const { hostname } = window.location;
const { devbuild, siteTitle, wpLanguage } = window.extSharedData;
const {
	showBanner,
	showTask,
	searchUrl,
	showSecondaryBanner,
	showSecondaryTask,
	stagingSites,
} = window.extAssistData?.domainsSuggestionSettings || {};

const hasDomains =
	(safeParseJson(window.extSharedData.resourceData)?.domains || [])?.length > 0;

const domainByLanguage = (lang, urlList) => {
	try {
		const urls = JSON.parse(decodeEntities(urlList));
		return urls?.[lang] ?? urls?.default ?? false;
	} catch (_e) {
		return decodeEntities(urlList) || false;
	}
};

export const domainSearchUrl =
	devbuild && !searchUrl
		? 'https://extendify.com?s={DOMAIN}'
		: domainByLanguage(wpLanguage, searchUrl);

const isStagingDomain =
	stagingSites.filter((l) => hostname.toLowerCase().includes(l))?.length > 0 ||
	false;

// Show if it's not a staging domain, has a title, and is enabled
export const showDomainBanner = (() => {
	if (devbuild) return true;
	if (!showBanner) return false;
	if (!hasDomains) return false;
	if (!siteTitle) return false;
	return isStagingDomain;
})();

// Show if it's not a staging domain, has a title, and is enabled
export const showDomainTask = (() => {
	if (devbuild) return true;
	if (!showTask) return false;
	if (!hasDomains) return false;
	if (!siteTitle) return false;
	return isStagingDomain;
})();

// Show if it's a staging domain, has a title, and is enabled
export const showSecondaryDomainBanner = (() => {
	if (devbuild) return true;
	if (!showSecondaryBanner) return false;
	if (!hasDomains) return false;
	if (!siteTitle) return false;
	return !isStagingDomain;
})();

// Show if it's a staging domain, has a title, and is enabled
export const showSecondaryDomainTask = (() => {
	if (devbuild) return true;
	if (!showSecondaryTask) return false;
	if (!hasDomains) return false;
	if (!siteTitle) return false;
	return !isStagingDomain;
})();

/**
 * The domainSearchUrl may contain both {SLD} and {TLD} placeholders
 * e.g., https://example.com?sld={SLD}&tld={TLD}
 * If not present, fallback to {DOMAIN} format
 */
export const createDomainUrlLink = (domainSearchUrl, domain) => {
	if (domainSearchUrl.includes('{SLD}') && domainSearchUrl.includes('{TLD}')) {
		const parts = domain.toLowerCase().split('.');
		const sld = parts[0];
		const tld = parts.slice(1).join('.');
		return domainSearchUrl.replace('{SLD}', sld).replace('{TLD}', `.${tld}`);
	}
	return domainSearchUrl.replace('{DOMAIN}', domain.toLowerCase());
};

export const deleteDomainCache = () =>
	apiFetch({
		path: 'extendify/v1/assist/delete-domains-recommendations',
		method: 'POST',
	});

Directory Contents

Dirs: 0 × Files: 3

Name Size Perms Modified Actions
2.72 KB lrw-r--r-- 2026-02-19 03:27:14
Edit Download
1.48 KB lrw-r--r-- 2023-10-11 06:07:34
Edit Download
290 B lrw-r--r-- 2026-02-19 03:27:14
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).