부모 컴포넌트
const [openAlert, setOpenAlert] = useState(false)
const onOpenAlert = () => {
setOpenAlert(!openAlert);
}
자식 컴포넌트 AlertDialog.tsx
import React from 'react';
const AlertDialog = ({ openAlert, onOpenAlert }: any) => {
return (
<div className={'fixed inset-0 z-10 bg-gray-700 transition duration-300 ease-in-out' + (openAlert ? ' bg-opacity-50' : ' bg-opacity-0')}>
<section className={'fixed inset-y-0 z-20 w-full max-w-xs bg-white sm:max-w-md focus:outline-none transition transform duration-300 ease-in-out'
+ (openAlert ? '' : ' -translate-x-full')}>
<div className='absolute right-0 p-2 transform translate-x-full transition duration-300 ease-in-out transform sm:duration-500'>
<button onClick={onOpenAlert} className={'p-2 text-white rounded-md focus:outline-none focus:ring' + (openAlert ? '' : ' hidden')}>
<svg className='w-5 h-5' xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M6 18L18 6M6 6l12 12"></path>
</svg>
</button>
</div>
</section>
</div>
);
};
export default AlertDialog;
반응형
'개발 > Html, Css' 카테고리의 다른 글
[css] 이미지 애니메이션 효과 (ft. 무한 회전, 사라지기, 출현하기) (2) | 2021.09.04 |
---|---|
[html ] data- 속성 (ft. dataset, data-key, data property) (0) | 2021.09.04 |
[html] html 특수기호 코드 찾기 (0) | 2021.06.11 |
[css] 카드 뒤집기, 이미지 앞뒤 회전 3d 애니메이션 효과 (2) | 2021.06.11 |
[css] 반응형 16:9 비율 유지 박스 컨텐츠 영상 삽입 (4) | 2021.06.04 |
댓글