-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.tsx
More file actions
56 lines (51 loc) · 1.38 KB
/
index.tsx
File metadata and controls
56 lines (51 loc) · 1.38 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import theme from '@styles/theme';
import { StyledText } from '@components/Text/StyledText';
import type { ConfirmationModalProps } from './dto';
import { ConfirmationModalLayout, ConfirmationModalWrapper, ContentBox, ButtonContainer, Button } from './styles';
const ConfirmationModal: React.FC<ConfirmationModalProps> = ({
content,
isCancelButtonVisible,
confirm,
onCloseModal,
}) => {
return (
<ConfirmationModalWrapper
onClick={(e) => {
e.stopPropagation();
// Modal 외부를 클릭했을 경우 Modal 닫음
if (e.target === e.currentTarget) {
onCloseModal();
}
}}
>
<ConfirmationModalLayout>
<ContentBox>
<StyledText $textTheme={{ style: 'body2-regular' }} color={theme.colors.text.primary}>
{content}
</StyledText>
</ContentBox>
<ButtonContainer>
{isCancelButtonVisible && (
<>
<Button
onClick={() => {
onCloseModal();
}}
>
<StyledText $textTheme={{ style: 'body2-regular' }} color={theme.colors.text.primary}>
취소
</StyledText>
</Button>
</>
)}
<Button onClick={confirm.action}>
<StyledText $textTheme={{ style: 'body2-regular' }} color={'#F00'}>
{confirm.text}
</StyledText>
</Button>
</ButtonContainer>
</ConfirmationModalLayout>
</ConfirmationModalWrapper>
);
};
export default ConfirmationModal;