PHP 8.2.31
Preview: useSelectedText.js Size: 992 B
/home/nshryvcy/radiantskinclinics.org/wp-content/plugins/extendify_old/src/Draft/hooks/useSelectedText.js

import { store as blockEditorStore } from '@wordpress/block-editor';
import { useSelect } from '@wordpress/data';
import { useCallback } from '@wordpress/element';

const htmlToText = (html) => {
	try {
		const parser = new DOMParser();
		const doc = parser.parseFromString(html, 'text/html');
		return doc.body.textContent || '';
	} catch (_error) {
		return '';
	}
};

export const useSelectedText = () => {
	const { getSelectedBlockClientIds, getBlocksByClientId } = useSelect(
		(select) => select(blockEditorStore),
		[],
	);

	const selectedBlockId = getSelectedBlockClientIds();

	const getSelectedContent = useCallback(() => {
		const selectedBlocks = getBlocksByClientId(selectedBlockId);
		if (!selectedBlocks?.length) return '';
		const raw = selectedBlocks
			.filter(Boolean)
			.map(({ attributes }) => attributes?.content ?? '')
			.join('\n\n');
		return htmlToText(raw);
	}, [getBlocksByClientId, selectedBlockId]);

	return { selectedText: getSelectedContent().trim() };
};

Directory Contents

Dirs: 0 × Files: 5

Name Size Perms Modified Actions
1.37 KB lrw-r--r-- 2026-02-19 03:27:14
Edit Download
705 B lrw-r--r-- 2023-10-11 06:07:34
Edit Download
2.87 KB lrw-r--r-- 2026-02-19 03:27:14
Edit Download
992 B lrw-r--r-- 2026-02-19 03:27:14
Edit Download
650 B lrw-r--r-- 2025-05-19 16:47:28
Edit Download

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