import { ISegment } from 'interfaces/segment';
import PermissionIconButton from 'component/common/PermissionIconButton/PermissionIconButton';
import {
DELETE_SEGMENT,
UPDATE_PROJECT_SEGMENT,
} from 'component/providers/AccessProvider/permissions';
import { Delete } from '@mui/icons-material';
import { SEGMENT_DELETE_BTN_ID } from 'utils/testIds';
import { useSegments } from 'hooks/api/getters/useSegments/useSegments';
import { ConditionallyRender } from 'component/common/ConditionallyRender/ConditionallyRender';
import useToast from 'hooks/useToast';
import { SegmentDelete } from 'component/segments/SegmentDelete/SegmentDelete';
import { useSegmentsApi } from 'hooks/api/actions/useSegmentsApi/useSegmentsApi';
import { formatUnknownError } from 'utils/formatUnknownError';
import { useState } from 'react';
import { useOptionalPathParam } from 'hooks/useOptionalPathParam';
interface IRemoveSegmentButtonProps {
segment: ISegment;
}
export const RemoveSegmentButton = ({ segment }: IRemoveSegmentButtonProps) => {
const projectId = useOptionalPathParam('projectId');
const { refetchSegments } = useSegments();
const { deleteSegment } = useSegmentsApi();
const { setToastData, setToastApiError } = useToast();
const [showModal, toggleModal] = useState(false);
const onRemove = async () => {
try {
await deleteSegment(segment.id);
await refetchSegments();
setToastData({
type: 'success',
title: 'Successfully deleted segment',
});
} catch (error: unknown) {
setToastApiError(formatUnknownError(error));
} finally {
toggleModal(false);
}
};
return (
<>
toggleModal(true)}
permission={[DELETE_SEGMENT, UPDATE_PROJECT_SEGMENT]}
projectId={projectId}
tooltipProps={{ title: 'Remove segment' }}
data-testid={`${SEGMENT_DELETE_BTN_ID}_${segment.name}`}
>
(
toggleModal(false)}
onRemove={onRemove}
/>
)}
/>
>
);
};