11'use client' ;
2-
3- import { useState } from 'react' ;
2+ import { useEffect , useState } from 'react' ;
43import clsx from 'clsx' ;
54
65import {
@@ -13,20 +12,32 @@ import { COOKIES_MODAL_STATUS } from '@/shared/constants';
1312import { Button } from '@/shared/components/button' ;
1413
1514export function CookiesModal ( ) {
16- const [ cookiesModalStatus , setCookiesModalStatus ] = useState < CookiesModalStatus > ( ( ) =>
17- getCookiesModalStatus ( )
15+ const [ cookiesModalStatus , setCookiesModalStatus ] = useState < CookiesModalStatus > (
16+ COOKIES_MODAL_STATUS . NONE
1817 ) ;
1918
19+ useEffect ( ( ) => {
20+ try {
21+ const initial = getCookiesModalStatus ( ) ;
22+ setCookiesModalStatus ( initial ) ;
23+ } catch {
24+ setCookiesModalStatus ( COOKIES_MODAL_STATUS . NONE ) ;
25+ }
26+ } , [ ] ) ;
27+
2028 const handleAccept = ( ) => {
21- setCookiesModalStatus ( COOKIES_MODAL_STATUS . ACCESPT ) ;
22- updateCookiesModalStatus ( COOKIES_MODAL_STATUS . ACCESPT ) ;
29+ setCookiesModalStatus ( COOKIES_MODAL_STATUS . ACCEPT ) ;
30+ updateCookiesModalStatus ( COOKIES_MODAL_STATUS . ACCEPT ) ;
2331 } ;
32+
2433 const handleReject = ( ) => {
2534 setCookiesModalStatus ( COOKIES_MODAL_STATUS . REJECT ) ;
2635 updateCookiesModalStatus ( COOKIES_MODAL_STATUS . REJECT ) ;
2736 } ;
2837
29- return cookiesModalStatus === COOKIES_MODAL_STATUS . NONE ? (
38+ if ( cookiesModalStatus !== COOKIES_MODAL_STATUS . NONE ) return null ;
39+
40+ return (
3041 < div
3142 className = { clsx (
3243 'fixed flex flex-col gap-2 bottom-5 left-5 max-md:left-1/2 max-md:-translate-x-1/2 transform border p-4 w-11/12 max-w-sm select-none shadow backdrop-blur-sm duration-500 hover:bg-slate-300/10 border-slate-300/40 bg-transparent' ,
@@ -44,5 +55,5 @@ export function CookiesModal() {
4455 < Button label = "Reject" type = "button" onClick = { handleReject } />
4556 </ div >
4657 </ div >
47- ) : null ;
58+ ) ;
4859}
0 commit comments