1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-10-18 11:14:57 +02:00
unleash.unleash/frontend/src/component/segments/SegmentDelete/SegmentDeleteConfirm/SegmentDeleteConfirm.tsx
olav 24c11332b5 chore: update MUI to v5 (#923)
* refactor: update mui packages

* refactor: run mui codemods

* refactor: format files after codemods

* refactor: fix broken types

* refactor: clean up theme

* refactor: fix broken tests

* refactor: replace @mui/styles with tss-react

* refactor: move breakpoints into classes for tss

* refactor: fix crash on missing feature description

* refactor: remove void classNames

* refactor: adjust styles to new defaults

* refactor: remove broken rollout slider e2e test

* refactor: fix duplicate e2e testid

* refactor: update makeStyles after rebase

* refactor: add missing snapshot after rebase

* refactor: fix TableCellSortable focus styles

* refactor: use 1.4 as the default line-height

* refactor: hide webkit search field icons

* refactor: fix select box label

* refactor: make AutocompleteBox smaller

* refactor: make heading smaller

* refactor: fix toast close icon color

* refactor: update snapshots

* refactor: add missing test event awaits

* refactor: fix default button line-height
2022-05-02 15:52:41 +02:00

64 lines
2.1 KiB
TypeScript

import React, { useState } from 'react';
import { Dialogue } from 'component/common/Dialogue/Dialogue';
import Input from 'component/common/Input/Input';
import { useStyles } from './SegmentDeleteConfirm.styles';
import { ISegment } from 'interfaces/segment';
import { SEGMENT_DIALOG_NAME_ID } from 'utils/testIds';
interface ISegmentDeleteConfirmProps {
segment: ISegment;
open: boolean;
setDeldialogue: React.Dispatch<React.SetStateAction<boolean>>;
handleDeleteSegment: (id: number) => Promise<void>;
}
export const SegmentDeleteConfirm = ({
segment,
open,
setDeldialogue,
handleDeleteSegment,
}: ISegmentDeleteConfirmProps) => {
const { classes: styles } = useStyles();
const [confirmName, setConfirmName] = useState('');
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) =>
setConfirmName(e.currentTarget.value);
const handleCancel = () => {
setDeldialogue(false);
setConfirmName('');
};
const formId = 'delete-segment-confirmation-form';
return (
<Dialogue
title="Are you sure you want to delete this segment?"
open={open}
primaryButtonText="Delete segment"
secondaryButtonText="Cancel"
onClick={() => {
handleDeleteSegment(segment.id);
setConfirmName('');
}}
disabledPrimaryButton={segment?.name !== confirmName}
onClose={handleCancel}
formId={formId}
>
<p className={styles.deleteParagraph}>
In order to delete this segment, please enter the name of the
segment in the textfield below: <strong>{segment?.name}</strong>
</p>
<form id={formId}>
<Input
autoFocus
onChange={handleChange}
value={confirmName}
label="Segment name"
className={styles.deleteInput}
data-testid={SEGMENT_DIALOG_NAME_ID}
/>
</form>
</Dialogue>
);
};