export const AlertOpenState = atom({
key: 'alertOpenState',
default: '',
})
// 사용 시
const [alert, setAlert] = useRecoilState(AlertOpenState)
// 기존 - 시스템 모달 사용
alert('요청 성공!')
// 후 - 모달 컴포넌트
setAlert('요청 성공!')
alert.tsx
//alert.tsx
'use client'
import { AlertOpenState } from '@/store/user'
import { useRecoilState } from 'recoil'
import Button from './commonButton'
import { LuAlertCircle } from 'react-icons/lu'
const Alert = () => {
const [alert, setAlert] = useRecoilState(AlertOpenState)
{
return alert !== '' ? ( // 빈 문자열일 경우 === alert 상태 false
<div id="alertModal">
<div className="alertCont">
<div className="alertInner">
<LuAlertCircle />
<p>{alert}</p> // alert messge 출력
<Button theme="blue" onClick={() => setAlert('')}>
닫기 //닫기 버튼 클릭 시 다시 빈 문자열 (false)로 변경
</Button>
</div>
</div>
</div>
) : null
}
}
export default Alert