.at-gsm { display: none; } .ads-container { padding: 20px 10px; display: -webkit-flex; display: -moz-flex; display: -ms-flex; display: -o-flex; display: flex; -ms-align-items: center; align-items: center; } .ads-container .ads-screenshot { width: 20%; max-width: 200px; display: inline-block; vertical-align: top; border: 2px solid #ddd; border-radius: 4px; } .ads-container .ads-notice { width: 70%; display: block; vertical-align: top; padding: 0 20px; } .ads-container .ads-notice .plugin-install-notice { border-top: 1px solid #ddd; padding-top: 15px; margin-top: 25px; margin-bottom: 10px; } .ads-container a.ads-gsm-btn:before{ margin: -2px 5px 0 -2px; vertical-align: middle; } .ads-notice h2 { margin: 0 0 10px; font-weight: 400; line-height: 1.3; } .ads-container .ads-notice p { margin: 1em 0; padding: 0; color: #72777c; } a.ads-gsm-btn.button { background: #04bf41; color: #fff; border-color: #04bf41; font-size: 15px; -webkit-transition: all 0.3s ease; -moz-transition: all 0.3s ease; -ms-transition: all 0.3s ease; -o-transition: all 0.3s ease; transition: all 0.3s ease; } a.ads-gsm-btn.button:hover, a.ads-gsm-btn.button:focus, a.ads-gsm-btn.button:active { background: #00944a; border-color: #00944a; color: #fff; } @media (max-width: 600px) { .ads-container .ads-screenshot { display: none; } .ads-container .ads-notice { padding: 0; width: 100%; } } import Alert from '@elementor/ui/Alert'; import Box from '@elementor/ui/Box'; import Card from '@elementor/ui/Card'; import CardContent from '@elementor/ui/CardContent'; import CardHeader from '@elementor/ui/CardHeader'; import Divider from '@elementor/ui/Divider'; import List from '@elementor/ui/List'; import ListItem from '@elementor/ui/ListItem'; import ListItemText from '@elementor/ui/ListItemText'; import Typography from '@elementor/ui/Typography'; import { styled } from '@elementor/ui/styles'; import { CapabilitiesItem } from '@ea11y/components'; import { useSettings, useStorage } from '@ea11y/hooks'; import { LogoSettings } from '@ea11y/layouts'; import { useEffect, useState } from '@wordpress/element'; import { __ } from '@wordpress/i18n'; import { MENU_SETTINGS } from '../constants/menu-settings'; const StyledCardContent = styled(CardContent)` height: 55vh; overflow: auto; margin-block-end: ${({ theme }) => theme.spacing(2)}; padding: 0 ${({ theme }) => theme.spacing(2)}; `; const MenuSettings = () => { const { widgetMenuSettings, hideMinimumOptionAlert, setHideMinimumOptionAlert, } = useSettings(); const [disableOptions, setDisableOptions] = useState(false); const { save } = useStorage(); useEffect(() => { if (!areAtLeastTwoOptionsEnabled(widgetMenuSettings)) { setDisableOptions(true); } else { setDisableOptions(false); save({ a11y_hide_minimum_active_options_alert: false }).then(() => { setHideMinimumOptionAlert(false); }); } }, [widgetMenuSettings]); /** * Check if at least two options are enabled. * @param {Object} settings - widget menu settings. * @return {boolean} true if at least two options are enabled. */ const areAtLeastTwoOptionsEnabled = (settings) => { const enabled = Object.keys(settings)?.filter( (key) => settings[key].enabled, ); return enabled.length > 2; }; /** * Close minimum option notification. */ const handleCloseNotification = () => { save({ a11y_hide_minimum_active_options_alert: true }).then(() => { setHideMinimumOptionAlert(true); }); }; const sectionsCount = Object.entries(MENU_SETTINGS).length; return ( {__( 'Choose which accessibility features and capabilities you want to include.', 'pojo-accessibility', )} } /> {disableOptions && !hideMinimumOptionAlert && ( {__('At least two option must remain active', 'pojo-accessibility')} )} {Object.entries(MENU_SETTINGS).map(([parentKey, parentItem], i) => { return ( {parentItem.title} {parentItem.options && Object.entries(parentItem.options).map( ([childKey, childValue]) => { return ( ); }, )} {i + 1 < sectionsCount && } ); })} ); }; export default MenuSettings; import React from 'react'; import { BrowserRouter as Router } from 'react-router-dom'; import Steps from './steps/index'; import './style.scss'; const App = () => { return (
); }; export default App;