one-click-accessibility/modules/scanner/assets/js/layouts/management/manage-alt-text-layout.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

75 lines
1.9 KiB
JavaScript

import { AltTextForm } from '@ea11y-apps/scanner/components/alt-text-form';
import { FormNavigation } from '@ea11y-apps/scanner/components/form-navigation';
import { ManageAltText } from '@ea11y-apps/scanner/components/manage-alt-text';
import { BLOCKS } from '@ea11y-apps/scanner/constants';
import { useScannerWizardContext } from '@ea11y-apps/scanner/context/scanner-wizard-context';
import { StyledContent } from '@ea11y-apps/scanner/styles/app.styles';
import { getElementByXPath } from '@ea11y-apps/scanner/utils/get-element-by-xpath';
import { useState } from '@wordpress/element';
export const ManageAltTextLayout = () => {
const {
sortedRemediation,
sortedGlobalRemediation,
isManageGlobal,
setOpenedBlock,
} = useScannerWizardContext();
const [current, setCurrent] = useState(0);
const [isEdit, setIsEdit] = useState(false);
const remediations = isManageGlobal
? sortedGlobalRemediation
: sortedRemediation;
const item = remediations[BLOCKS.altText][current];
// Prevent to render empty list
if (!item) {
void (remediations[BLOCKS.altText].length > 0
? setCurrent(0)
: setOpenedBlock(BLOCKS.management));
return null;
}
const openEdit = () => {
setIsEdit(true);
};
const changeNavigation = (index) => {
if (index > remediations[BLOCKS.altText].length - 1) {
setCurrent(0);
} else {
setCurrent(index);
}
};
const data = JSON.parse(item?.content || '');
const node = getElementByXPath(data?.xpath);
return (
<StyledContent>
{isEdit ? (
<AltTextForm
item={{
id: item.id,
node,
data,
path: { dom: data?.xpath },
global: item.global === '1',
}}
current={current}
setCurrent={changeNavigation}
setIsEdit={setIsEdit}
/>
) : (
<ManageAltText item={item} current={current} openEdit={openEdit} />
)}
<FormNavigation
total={remediations.altText.length}
current={current}
setCurrent={changeNavigation}
/>
</StyledContent>
);
};