import { Title } from '@mantine/core'; import { useTranslation } from 'next-i18next'; import { openContextModalGeneric } from '../../../../tools/mantineModalManagerExtensions'; import { IntegrationsType } from '../../../../types/integration'; import { TileBaseType } from '../../../../types/tile'; import { GenericTileMenu } from '../GenericTileMenu'; import { WidgetsRemoveModalInnerProps } from './WidgetsRemoveModal'; import { WidgetEditModalInnerProps, integrationModuleTranslationsMap, IntegrationOptionLabels, IntegrationOptions, } from './WidgetsEditModal'; export type WidgetChangePositionModalInnerProps = { integration: keyof IntegrationsType; module: TileBaseType; }; interface WidgetsMenuProps { integration: TIntegrationKey; module: TileBaseType | undefined; options: IntegrationOptions | undefined; labels: IntegrationOptionLabels>; } export const WidgetsMenu = ({ integration, options, labels, module, }: WidgetsMenuProps) => { const { t } = useTranslation(integrationModuleTranslationsMap.get(integration)); if (!module) return null; const handleDeleteClick = () => { openContextModalGeneric({ modal: 'integrationRemove', title: {t('descriptor.remove.title')}, innerProps: { integration, }, }); }; const handleChangeSizeClick = () => { openContextModalGeneric({ modal: 'changeIntegrationPositionModal', size: 'xl', title: null, innerProps: { integration, module, }, }); }; const handleEditClick = () => { openContextModalGeneric>({ modal: 'integrationOptions', title: {t('descriptor.settings.title')}, innerProps: { integration, options, labels, }, }); }; return ( ); };