import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { Menu } from '@/shared/ui/menu'; import { IMAGE_ROOT } from '@/shared/constants/common'; import { PATHS } from '@/shared/constants/paths'; import { HeaderType, HeaderNavigationProps } from '@/entities/common/model/types'; import { useStore } from '@/shared/model/store'; import { ChangeEvent, useEffect, useState } from 'react'; import { AppAlarmUnreadCountParams, AppAlarmUnreadCountResponse, MERCHANT_ADMIN_APP } from '@/entities/alarm/model/types'; import { useAppAlarmUnreadCountMutation } from '@/entities/alarm/api/use-app-alarm-unread-count-mutation'; export const HeaderNavigation = ({ onBack, headerTitle, menuOn, headerType, setMenuOn, favoriteEdit, loginSuccess }: HeaderNavigationProps) => { const { mutateAsync: appAlarmUnreadCount } = useAppAlarmUnreadCountMutation(); let [selectOptions, setSelectOptions] = useState>>([]); const [unreadCount, setUnreadCount] = useState(0); const { navigate, navigateBack } = useNavigate(); const handleBack = () => { if(onBack){ onBack(); } else{ navigateBack(); } }; const handleClose = () => { if(onBack){ onBack(); } else{ navigateBack(); } }; const onClickToGoToAlarm = () => { navigate(PATHS.alarm.list); }; const onChangeToMid = (e: ChangeEvent) => { let value = e.target.value; useStore.getState().UserStore.setMid(value); }; const callAlarmCount = () => { const userInfo = useStore.getState().UserStore.userInfo; if(userInfo.usrid){ let params: AppAlarmUnreadCountParams = { usrid: userInfo.usrid, appCl: MERCHANT_ADMIN_APP.MERCHANT_ADMIN_APP }; appAlarmUnreadCount(params).then((rs: AppAlarmUnreadCountResponse) => { setUnreadCount(rs.unreadCount); }); } }; useEffect(() => { if(headerType === HeaderType.Home){ callAlarmCount(); } }, [headerType]); useEffect(() => { let mids = useStore.getState().UserStore.selectOptionsMids; setSelectOptions(mids); }, [loginSuccess]); return ( <> { (headerType === HeaderType.Home || headerType === HeaderType.Alim || headerType === HeaderType.LeftArrow ) && } { (headerType !== HeaderType.NoHeader) &&
{ // 홈에서만 적용 (headerType === HeaderType.Home) &&

나이스가맹점관리자

{ /* */ }
} { (headerType === HeaderType.Alim) &&
{ headerTitle }
} { (headerType === HeaderType.LeftArrow) &&
{ headerTitle }
} { (headerType === HeaderType.RightClose) &&
{ headerTitle }
}
} ); };