refactor(command-menu-item): rename Actions to CommandMenuItem (#18489)

actions are being renamed to command menu item, they will be migrated to
server and will be served as headless front components

---------

Co-authored-by: Raphaël Bosi <71827178+bosiraphael@users.noreply.github.com>
This commit is contained in:
nitin
2026-03-09 19:33:12 +05:30
committed by GitHub
parent 06bdb5ad6a
commit 36bcc71f3d
275 changed files with 4544 additions and 4436 deletions
@@ -0,0 +1,69 @@
import { COMMAND_MENU_CONFIRMATION_MODAL_RESULT_BROWSER_EVENT_NAME } from '@/command-menu-item/confirmation-modal/constants/CommandMenuItemConfirmationModalResultBrowserEventName';
import { COMMAND_MENU_CONFIRMATION_MODAL_INSTANCE_ID } from '@/command-menu-item/confirmation-modal/constants/CommandMenuItemConfirmationModalId';
import { commandMenuItemConfirmationModalConfigState } from '@/command-menu-item/confirmation-modal/states/commandMenuItemConfirmationModalState';
import {
type CommandMenuConfirmationModalResult,
type CommandMenuConfirmationModalResultBrowserEventDetail,
} from '@/command-menu-item/confirmation-modal/types/CommandMenuConfirmationModalResultBrowserEventDetail';
import { ConfirmationModal } from '@/ui/layout/modal/components/ConfirmationModal';
import { isModalOpenedComponentState } from '@/ui/layout/modal/states/isModalOpenedComponentState';
import { useAtomComponentStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomComponentStateValue';
import { useAtomStateValue } from '@/ui/utilities/state/jotai/hooks/useAtomStateValue';
import { useSetAtomState } from '@/ui/utilities/state/jotai/hooks/useSetAtomState';
export const CommandMenuConfirmationModalManager = () => {
const commandMenuItemConfirmationModalConfig = useAtomStateValue(
commandMenuItemConfirmationModalConfigState,
);
const isModalOpened = useAtomComponentStateValue(
isModalOpenedComponentState,
COMMAND_MENU_CONFIRMATION_MODAL_INSTANCE_ID,
);
const setCommandMenuItemConfirmationModalConfig = useSetAtomState(
commandMenuItemConfirmationModalConfigState,
);
const callerId = commandMenuItemConfirmationModalConfig?.frontComponentId;
const emitConfirmationResult = (
confirmationResult: CommandMenuConfirmationModalResult,
) => {
if (!callerId) {
return;
}
window.dispatchEvent(
new CustomEvent<CommandMenuConfirmationModalResultBrowserEventDetail>(
COMMAND_MENU_CONFIRMATION_MODAL_RESULT_BROWSER_EVENT_NAME,
{
detail: {
frontComponentId: callerId,
confirmationResult,
},
},
),
);
setCommandMenuItemConfirmationModalConfig(null);
};
if (!commandMenuItemConfirmationModalConfig || !isModalOpened) {
return null;
}
return (
<ConfirmationModal
modalInstanceId={COMMAND_MENU_CONFIRMATION_MODAL_INSTANCE_ID}
title={commandMenuItemConfirmationModalConfig.title}
subtitle={commandMenuItemConfirmationModalConfig.subtitle}
onConfirmClick={() => emitConfirmationResult('confirm')}
onClose={() => emitConfirmationResult('cancel')}
confirmButtonText={
commandMenuItemConfirmationModalConfig.confirmButtonText
}
confirmButtonAccent={
commandMenuItemConfirmationModalConfig.confirmButtonAccent
}
/>
);
};