Files
Homarr/src/components/Dashboard/Tiles/Widgets/WidgetsMenu.tsx

66 lines
1.9 KiB
TypeScript
Raw Normal View History

2022-12-11 00:00:11 +01:00
import { Title } from '@mantine/core';
2022-12-10 22:14:31 +01:00
import { useTranslation } from 'next-i18next';
import { openContextModalGeneric } from '../../../../tools/mantineModalManagerExtensions';
import { IWidget } from '../../../../widgets/widgets';
2022-12-11 00:00:11 +01:00
import { GenericTileMenu } from '../GenericTileMenu';
import { WidgetEditModalInnerProps } from './WidgetsEditModal';
import { WidgetsRemoveModalInnerProps } from './WidgetsRemoveModal';
2022-12-10 22:14:31 +01:00
export type WidgetChangePositionModalInnerProps = {
widgetId: string;
widget: IWidget<string, any>;
2022-12-17 00:28:46 +09:00
};
interface WidgetsMenuProps {
integration: string;
widget: IWidget<string, any> | undefined;
2022-12-10 22:14:31 +01:00
}
export const WidgetsMenu = ({ integration, widget }: WidgetsMenuProps) => {
const { t } = useTranslation(`modules/${integration}`);
2022-12-10 22:14:31 +01:00
if (!widget) return null;
2022-12-10 22:14:31 +01:00
const handleDeleteClick = () => {
openContextModalGeneric<WidgetsRemoveModalInnerProps>({
2022-12-10 22:14:31 +01:00
modal: 'integrationRemove',
title: <Title order={4}>{t('descriptor.remove.title')}</Title>,
innerProps: {
widgetId: integration,
2022-12-10 22:14:31 +01:00
},
});
};
const handleChangeSizeClick = () => {
openContextModalGeneric<WidgetChangePositionModalInnerProps>({
2022-12-11 13:12:39 +01:00
modal: 'changeIntegrationPositionModal',
2022-12-10 22:14:31 +01:00
size: 'xl',
title: null,
innerProps: {
widgetId: integration,
widget: widget,
2022-12-10 22:14:31 +01:00
},
});
};
const handleEditClick = () => {
openContextModalGeneric<WidgetEditModalInnerProps>({
2022-12-10 22:14:31 +01:00
modal: 'integrationOptions',
title: <Title order={4}>{t('descriptor.settings.title')}</Title>,
innerProps: {
widgetId: integration,
options: widget.properties,
2022-12-10 22:14:31 +01:00
},
});
};
return (
2022-12-11 00:00:11 +01:00
<GenericTileMenu
handleClickEdit={handleEditClick}
handleClickChangePosition={handleChangeSizeClick}
handleClickDelete={handleDeleteClick}
displayEdit={widget.properties !== undefined}
2022-12-11 00:00:11 +01:00
/>
2022-12-10 22:14:31 +01:00
);
};