/** * External dependencies */ import { createSlotFill, ToggleControl, RadioControl, Button, } from '@wordpress/components'; import { useState } from '@wordpress/element'; import { registerPlugin } from '@wordpress/plugins'; import { __ } from '@wordpress/i18n'; import classNames from 'classnames'; import { useCopyToClipboard } from '@wordpress/compose'; /** * Internal dependencies */ import { SETTINGS_SLOT_FILL_CONSTANT } from '../../settings/settings-slots'; import './style.scss'; const { Fill } = createSlotFill( SETTINGS_SLOT_FILL_CONSTANT ); const SiteVisibility = () => { const shareKey = window?.wcSettings?.admin?.siteVisibilitySettings ?.woocommerce_share_key; const [ comingSoon, setComingSoon ] = useState( window?.wcSettings?.admin?.siteVisibilitySettings ?.woocommerce_coming_soon || 'no' ); const [ storePagesOnly, setStorePagesOnly ] = useState( window?.wcSettings?.admin?.siteVisibilitySettings ?.woocommerce_store_pages_only ); const [ privateLink, setPrivateLink ] = useState( window?.wcSettings?.admin?.siteVisibilitySettings ?.woocommerce_private_link ); const copyLink = __( 'Copy link', 'woocommerce' ); const copied = __( 'Copied!', 'woocommerce' ); const [ copyLinkText, setCopyLinkText ] = useState( copyLink ); const getPrivateLink = () => { if ( storePagesOnly === 'yes' ) { return ( window?.wcSettings?.admin?.siteVisibilitySettings ?.shop_permalink + '?woo-share=' + shareKey ); } return window?.wcSettings?.homeUrl + '?woo-share=' + shareKey; }; const copyClipboardRef = useCopyToClipboard( getPrivateLink, () => { setCopyLinkText( copied ); setTimeout( () => { setCopyLinkText( copyLink ); }, 2000 ); } ); return (
{ __( 'Manage how your site appears to visitors.', 'woocommerce' ) }
{ __( 'Your site is hidden from visitors behind a “Coming soon” landing page until it’s ready for viewing. You can customize your “Coming soon” landing page via the Editor.', 'woocommerce' ) }
{ __( 'Hide store pages only behind a “Coming soon” page. The rest of your site will remain public.', 'woocommerce' ) }
> } checked={ storePagesOnly === 'yes' } onChange={ () => { setStorePagesOnly( storePagesOnly === 'yes' ? 'no' : 'yes' ); } } />{ __( '“Coming soon” sites are only visible to Admins and Shop managers. Enable “Share site” to let other users view your site.', 'woocommerce' ) }
{ privateLink === 'yes' && ({ __( 'Your entire site is visible to everyone.', 'woocommerce' ) }