one-click-accessibility/modules/scanner/assets/js/components/remediation-form/index.js
VasylD f0dce2793e
[APP-1923][APP-1924] manage remediations, global remediations (#424)
* [APP-1923] change remediation management (#411)

* [APP-1988] Add tabs

* [APP-1988][APP-1989] add tabs, remove menu item

* [APP-1988][APP-1989] add tabs, remove menu item

* [APP-1992] add empty state and tab navigation

* [APP-1993][APP-1994] Change view for manage AI fixes, change delete confirmation modal

* [APP-1996] add view for alt text fixes

* [APP-1996] add edit for alt text fixes

* [APP-1996] add edit for alt text fixes

* [APP-1996] add edit for alt text fixes

* [APP-1996] add edit for alt text fixes

* [APP-1996] add edit for alt text fixes

* [APP-1995] Color contrast form

* [APP-2001] add global remediation logic (#415)

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2001] add global remediation logic

* [APP-2003] add disable across scans (#418)

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* [APP-2003] add disable across scans

* add logs

* add logs

* add logs

* remove logs

* remove logs

* remove logs

* remove logs

* remove logs

* remove logs

* remove logs

* remove logs

* remove logs

* remove logs

* change to theme value

* change to theme value

* change to theme value

* change to theme value

* add edit mode

* add edit mode

* add edit mode
2025-11-10 16:25:45 +07:00

111 lines
2.9 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import CopyIcon from '@elementor/icons/CopyIcon';
import InfoCircleIcon from '@elementor/icons/InfoCircleIcon';
import Box from '@elementor/ui/Box';
import IconButton from '@elementor/ui/IconButton';
import Infotip from '@elementor/ui/Infotip';
import Tooltip from '@elementor/ui/Tooltip';
import Typography from '@elementor/ui/Typography';
import { RemediationSnippet } from '@ea11y-apps/scanner/components/remediation-form/remediation-snippet';
import { uxMessaging } from '@ea11y-apps/scanner/constants/ux-messaging';
import { useCopyToClipboard } from '@ea11y-apps/scanner/hooks/use-copy-to-clipboard';
import { StyledAlert } from '@ea11y-apps/scanner/styles/app.styles';
import {
InfotipBox,
StyledAccordionDetails,
StyledSnippet,
TitleBox,
} from '@ea11y-apps/scanner/styles/manual-fixes.styles';
import { remediationItem } from '@ea11y-apps/scanner/types/remediation-item';
import { __ } from '@wordpress/i18n';
export const RemediationForm = ({ item }) => {
const { copied, copyToClipboard } = useCopyToClipboard();
const content = JSON.parse(item.content);
return (
<>
<StyledAccordionDetails>
<Box>
<Box display="flex" gap={1} alignItems="center">
<Typography variant="subtitle2" as="h5">
{__('Whats the issue', 'pojo-accessibility')}
</Typography>
<Infotip
tabIndex="0"
placement="top"
PopperProps={{
disablePortal: true,
}}
content={
<InfotipBox>
<Typography
variant="subtitle1"
sx={{ mb: 1, textTransform: 'none' }}
>
{__(
"What's the issue and why it matters?",
'pojo-accessibility',
)}
</Typography>
<Typography variant="body2">
{uxMessaging[item.rule].whyItMatters}
</Typography>
</InfotipBox>
}
>
<InfoCircleIcon fontSize="small" color="action" />
</Infotip>
</Box>
<Typography variant="body2">
{uxMessaging[item.rule]?.whatsTheIssue}
</Typography>
</Box>
<Box>
<TitleBox>
<Typography variant="subtitle2">
{__('Affected element:', 'pojo-accessibility')}
</Typography>
<Tooltip
arrow
placement="top"
title={
copied
? __('Copied!', 'pojo-accessibility')
: __('Copy', 'pojo-accessibility')
}
PopperProps={{
disablePortal: true,
}}
>
<IconButton
size="tiny"
onClick={copyToClipboard(
content.find,
'error_snippet',
'remediation',
)}
>
<CopyIcon fontSize="tiny" />
</IconButton>
</Tooltip>
</TitleBox>
<StyledAlert color="error" icon={false}>
<StyledSnippet variant="body2">{content.find}</StyledSnippet>
</StyledAlert>
</Box>
<RemediationSnippet item={item} />
</StyledAccordionDetails>
</>
);
};
RemediationForm.propTypes = {
item: remediationItem,
};