HEX
Server: LiteSpeed
System: Linux server315.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User: globfdxw (6114)
PHP: 8.1.34
Disabled: NONE
Upload Files
File: /home/globfdxw/diasporameetsafrica.com/wp-content/plugins/extendify/src/QuickEdit/lib/admin-bar.js
import { useEditModeStore } from '../state/edit-mode';

const NODE_ID = '#wp-admin-bar-extendify-quick-edit-toggle';
const AGENT_BTN_ID = 'wp-admin-bar-extendify-agent-btn';
const BOUND_MARK = '__extendifyQuickEditBound';

// The PHP-registered toggle belongs next to the agent button — a JS-injected
// <li> that may land after this bundle, so watch the bar until it shows up.
const positionToggle = (node) => {
	const agentBtn = document.getElementById(AGENT_BTN_ID);
	if (agentBtn) {
		agentBtn.after(node);
		return true;
	}
	document.getElementById('wp-admin-bar-root-default')?.prepend(node);
	return false;
};

const followAgentButton = (node) => {
	if (positionToggle(node)) return;
	const bar = document.getElementById('wpadminbar');
	if (!bar) return;
	const observer = new MutationObserver(() => {
		if (!document.getElementById(AGENT_BTN_ID)) return;
		positionToggle(node);
		observer.disconnect();
	});
	observer.observe(bar, { childList: true, subtree: true });
};

export const bindAdminBarToggle = () => {
	const link = document.querySelector(`${NODE_ID} a`);
	if (!link) return;

	const sync = () => {
		link.setAttribute(
			'aria-checked',
			useEditModeStore.getState().on ? 'true' : 'false',
		);
	};
	sync();

	if (link[BOUND_MARK]) return;
	link[BOUND_MARK] = true;

	followAgentButton(link.closest('li'));

	link.addEventListener('click', (e) => {
		e.preventDefault();
		useEditModeStore.getState().toggle();
	});

	useEditModeStore.subscribe(sync);
};