403Webshell
Server IP : 38.190.208.107  /  Your IP : 216.73.217.105
Web Server : nginx/1.28.1
System : Linux ht2026040333114 6.1.0-10-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.37-1 (2023-07-03) x86_64
User : root ( 0)
PHP Version : 8.2.28
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv,eval,assert,passthru,system,exec,shell_exec,popen,proc_open
MySQL : OFF  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /www/wwwroot/wp.2/wp-content/plugins/blocksy-companion-pro/static/js/editor/blocks/query/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/wwwroot/wp.2/wp-content/plugins/blocksy-companion-pro/static/js/editor/blocks/query/Preview.js
import {
	useState,
	useEffect,
	createElement,
	useMemo,
	RawHTML,
} from '@wordpress/element'

import { withSelect, withDispatch } from '@wordpress/data'
import { Spinner } from '@wordpress/components'

import { __ } from 'ct-i18n'

import { usePostsBlockData } from './hooks/use-posts-block-data'
import { useFlexySlider } from '../../hooks/use-flexy-slider'

import { getStylesForBlock } from '../../utils/css'

import classnames from 'classnames'

import parse, { domToReact, attributesToProps } from 'html-react-parser'

const getReactElement = ({ isSlideshow, sliderDescriptor, blockData }) => {
	if (!isSlideshow) {
		return <RawHTML>{blockData.customizer_preview}</RawHTML>
	}

	const options = {
		replace: ({ attribs, children, name }, index) => {
			if (
				attribs &&
				attribs.class &&
				attribs.class.includes('flexy-container')
			) {
				return (
					<div
						{...attributesToProps(attribs)}
						{...sliderDescriptor.flexyContainerAttr}>
						{domToReact(children, options)}
					</div>
				)
			}

			if (
				attribs &&
				attribs.class &&
				attribs.class.includes('flexy-arrow-')
			) {
				const TagName = name

				const arrowDescriptor = attribs.class.includes(
					'flexy-arrow-next'
				)
					? sliderDescriptor.arrowsDescritor.right
					: sliderDescriptor.arrowsDescritor.left

				return (
					<TagName
						{...attributesToProps(attribs)}
						{...arrowDescriptor}>
						{domToReact(children, options)}
					</TagName>
				)
			}

			const className =
				attribs && attribs.class ? attribs.class.split(' ') : []

			if (className.includes('flexy-item')) {
				let maybeElementDescriptor =
					sliderDescriptor.elementDescriptorForIndex(index)

				if (maybeElementDescriptor) {
					maybeElementDescriptor = maybeElementDescriptor.attr
				}

				let { className, ...props } = attributesToProps(attribs)

				if (maybeElementDescriptor) {
					const {
						className: maybeElementClassName,
						...maybeElementProps
					} = maybeElementDescriptor

					className = classnames(className, maybeElementClassName)

					props = {
						...props,
						...maybeElementProps,
					}
				}

				return (
					<div className={classnames(className)} {...props}>
						{domToReact(children, options)}
					</div>
				)
			}
		},
	}

	return parse(blockData.customizer_preview, options)
}

const Preview = ({ attributes, postId, uniqueId }) => {
	const { blockData } = usePostsBlockData({
		attributes,
		previewedPostId: postId,
	})

	const isSlideshow = attributes.has_slideshow === 'yes'

	const sliderDescriptor = useFlexySlider({
		isSlideshow,
		attributes,
		toWatch: blockData ? blockData.customizer_preview : {},
	})

	const blockStyles = getStylesForBlock([])

	if (!blockData) {
		return <Spinner />
	}

	if (!blockData.customizer_preview) {
		return <p>{__('No results found.', 'blocksy-companion')}</p>
	}

	return (
		<>
			{getReactElement({ isSlideshow, sliderDescriptor, blockData })}

			{blockStyles}
		</>
	)
}

export default Preview

Youez - 2016 - github.com/yon3zu
LinuXploit