You're ready to translate your contents!

You're now able to translate your contents such as posts, pages, categories and tags. You can learn how to use Polylang by reading the documentation.

Read documentation

import Button from '@elementor/ui/Button'; import Checkbox from '@elementor/ui/Checkbox'; import PropTypes from 'prop-types'; import { useToastNotification } from '@ea11y-apps/global/hooks'; import { mixpanelEvents, mixpanelService } from '@ea11y-apps/global/services'; import { useHeadingStructureContext } from '@ea11y-apps/scanner/context/heading-structure-context'; import { useHeadingNodeManipulation } from '@ea11y-apps/scanner/hooks/use-heading-node-manipulation'; import { EA11Y_RULES } from '@ea11y-apps/scanner/rules'; import { StyledListItemActionsWrapper, StyledListItemDismissLabel, } from '@ea11y-apps/scanner/styles/heading-structure.styles'; import { HEADING_STATUS } from '@ea11y-apps/scanner/types/heading'; import { getHeadingXpath } from '@ea11y-apps/scanner/utils/page-headings'; import { __ } from '@wordpress/i18n'; const HeadingTreeListItemActions = ({ node, status, isDisabled, isDismiss, setIsDismiss, setIsSubmitted, displayLevel, violation, }) => { const { error } = useToastNotification(); const { isLoading, error: asyncActionError, updateHeadingsTree, onHeadingWarningDismiss, onHeadingLevelUpdate, collapseHeading, } = useHeadingStructureContext(); const { restoreOriginalAttributes, clearOriginalAttributes } = useHeadingNodeManipulation({ node }); const onCancel = () => { restoreOriginalAttributes(); setTimeout(() => updateHeadingsTree(), 0); setIsDismiss(false); collapseHeading(); }; const onApply = async () => { setIsSubmitted(true); if (isDismiss) { await onDismiss(); } await onLevelUpdate(); }; const onLevelUpdate = async () => { const isSuccess = await onHeadingLevelUpdate({ node, newLevel: displayLevel, rule: violation, }); if (isSuccess) { if ('p' === displayLevel) { node.setAttribute('role', 'presentation'); } collapseHeading(); clearOriginalAttributes(); setTimeout(() => updateHeadingsTree(), 0); mixpanelService.sendEvent(mixpanelEvents.applyFixButtonClicked, { fix_method: 'Headings', category_name: 'Headings', issue_type: violation, }); } else { error(asyncActionError); } }; const onDismiss = async () => { const isSuccess = await onHeadingWarningDismiss({ node }); if (isSuccess) { collapseHeading(); setIsDismiss(false); mixpanelService.sendEvent(mixpanelEvents.markAsResolveClicked, { category_name: 'Headings', issue_type: violation, element_selector: getHeadingXpath(node), }); setTimeout(() => updateHeadingsTree(), 0); } else { error(asyncActionError); } }; return ( {HEADING_STATUS.WARNING === status && ( } onChange={(e) => setIsDismiss(e.target.checked)} /> )} ); }; HeadingTreeListItemActions.propTypes = { status: PropTypes.oneOf(Object.values(HEADING_STATUS)).isRequired, node: PropTypes.object.isRequired, isDisabled: PropTypes.bool.isRequired, isDismiss: PropTypes.bool.isRequired, setIsDismiss: PropTypes.func.isRequired, setIsSubmitted: PropTypes.func.isRequired, displayLevel: PropTypes.string.isRequired, violation: PropTypes.oneOf(Object.values(EA11Y_RULES)), isExpanded: PropTypes.bool.isRequired, }; export default HeadingTreeListItemActions; https://idropeit.com/post-sitemap.xml 2026-09-26T13:24:06+00:00 https://idropeit.com/page-sitemap.xml 2023-07-03T07:57:32+00:00 https://idropeit.com/category-sitemap.xml 2026-09-26T14:01:50+00:00