홈 즐겨찾기 변경

This commit is contained in:
focp212@naver.com
2025-11-13 13:09:17 +09:00
parent e0c4fa0141
commit d897fca03b
13 changed files with 392 additions and 340 deletions

View File

@@ -84,7 +84,6 @@
"react-tooltip": "^5.29.1", "react-tooltip": "^5.29.1",
"react-transition-group": "^4.4.5", "react-transition-group": "^4.4.5",
"react-use": "^17.6.0", "react-use": "^17.6.0",
"recoil": "^0.7.7",
"rimraf": "^6.0.1", "rimraf": "^6.0.1",
"root": "git+https://github.com/tanstack/react-query.git", "root": "git+https://github.com/tanstack/react-query.git",
"source-map-loader": "^5.0.0", "source-map-loader": "^5.0.0",

537
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,5 @@
import { Splash } from '@/widgets/splash/splash'; import { Splash } from '@/widgets/splash/splash';
import { Suspense } from 'react'; import { Suspense } from 'react';
import { RecoilRoot } from 'recoil';
import { CookiesProvider } from 'react-cookie'; import { CookiesProvider } from 'react-cookie';
import { QueryClientProvider } from '@tanstack/react-query'; import { QueryClientProvider } from '@tanstack/react-query';
import { GlobalErrorBoundary } from '@/widgets/error-boundaries'; import { GlobalErrorBoundary } from '@/widgets/error-boundaries';
@@ -16,14 +15,12 @@ export const AppProvider = ({
}: AppProviderProps) => { }: AppProviderProps) => {
return ( return (
<GlobalErrorBoundary> <GlobalErrorBoundary>
<RecoilRoot>
<QueryClientProvider client={ getGlobalQueryClient() }> <QueryClientProvider client={ getGlobalQueryClient() }>
<Suspense fallback={<Splash />}> <Suspense fallback={<Splash />}>
<CookiesProvider>{children}</CookiesProvider> <CookiesProvider>{children}</CookiesProvider>
{/* <ReactQueryDevtools /> */} {/* <ReactQueryDevtools /> */}
</Suspense> </Suspense>
</QueryClientProvider> </QueryClientProvider>
</RecoilRoot>
</GlobalErrorBoundary> </GlobalErrorBoundary>
); );
}; };

View File

@@ -72,19 +72,14 @@ export interface HeaderNavigationProps {
headerTitle?: string; headerTitle?: string;
headerLeft?: React.ReactNode; headerLeft?: React.ReactNode;
headerRight?: React.ReactNode; headerRight?: React.ReactNode;
menuOn: boolean;
headerType: HeaderType; headerType: HeaderType;
setMenuOn: (menuOn: boolean) => void;
favoriteEdit?: boolean;
loginSuccess: boolean; loginSuccess: boolean;
mid?: string; mid?: string;
setMid: (mid: string) => void; setMid: (mid: string) => void;
}; };
export interface FooterProps { export interface FooterProps {
setMenuOn: (menuOn: boolean) => void;
footerCurrentPage?: string | null; footerCurrentPage?: string | null;
setFavoriteEdit: (favoriteEdit: boolean) => void;
}; };
export enum FooterItemActiveKey { export enum FooterItemActiveKey {
Home = 'Home', Home = 'Home',

View File

@@ -4,29 +4,26 @@ import { Swiper, SwiperSlide } from 'swiper/react';
import 'swiper/css'; import 'swiper/css';
import { IMAGE_ROOT } from '@/shared/constants/common'; import { IMAGE_ROOT } from '@/shared/constants/common';
import { UserFavorite } from '@/entities/user/model/types'; import { UserFavorite } from '@/entities/user/model/types';
import { useStore } from '@/shared/model/store'; import { useFavoriteEditOnStore, useMenuOnStore, useStore } from '@/shared/model/store';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { showAlert } from '@/widgets/show-alert'; import { showAlert } from '@/widgets/show-alert';
import { checkGrant } from '@/shared/lib/check-grant'; import { checkGrant } from '@/shared/lib/check-grant';
export interface FavoriteWrapperProps { export interface FavoriteWrapperProps {
usingType: 'home' | 'menu', usingType: 'home' | 'menu',
editMode?: boolean,
setEditMode?: (editMode: boolean) => void;
changeMenuId?: string; changeMenuId?: string;
setMenuOn?: (menuOn: boolean) => void;
}; };
export const FavoriteWrapper = ({ export const FavoriteWrapper = ({
usingType, usingType,
editMode,
setEditMode,
changeMenuId, changeMenuId,
setMenuOn
}: FavoriteWrapperProps) => { }: FavoriteWrapperProps) => {
const { navigate } = useNavigate(); const { navigate } = useNavigate();
const { i18n, t } = useTranslation(); const { i18n, t } = useTranslation();
const { menuOn, setMenuOn } = useMenuOnStore();
const { favoriteEditOn, setFavoriteEditOn } = useFavoriteEditOnStore();
const [favoriteItems, setFavoriteItems] = useState<Array<UserFavorite>>([]); const [favoriteItems, setFavoriteItems] = useState<Array<UserFavorite>>([]);
const itemAdd: UserFavorite = { const itemAdd: UserFavorite = {
@@ -38,20 +35,17 @@ export const FavoriteWrapper = ({
}; };
const onClickToFavoriteEdit = () => { const onClickToFavoriteEdit = () => {
if(setEditMode){ setMenuOn(true);
setEditMode(true); setFavoriteEditOn(true);
}
}; };
const onClickToNavigate = (menuId?: number, path?: string) => { const onClickToNavigate = (menuId?: number, path?: string) => {
if(menuId && checkGrant(menuId, 'R')){ if(menuId && checkGrant(menuId, 'R')){
if(!!path){ if(!!path){
navigate(path); navigate(path);
if(setMenuOn){
setMenuOn(false); setMenuOn(false);
} }
} }
}
else{ else{
showAlert(t('common.nopermission')); showAlert(t('common.nopermission'));
} }
@@ -73,7 +67,7 @@ export const FavoriteWrapper = ({
<SwiperSlide key={ `favorite-slide-key-${i}` }> <SwiperSlide key={ `favorite-slide-key-${i}` }>
<div <div
className="swiper-item" className="swiper-item"
onClick={ () => !editMode && onClickToNavigate(favoriteItems[i]?.menuId, favoriteItems[i]?.programPath) } onClick={ () => !favoriteEditOn && onClickToNavigate(favoriteItems[i]?.menuId, favoriteItems[i]?.programPath) }
> >
<div className="swiper-icon coin-icon"> <div className="swiper-icon coin-icon">
<img <img
@@ -90,7 +84,7 @@ export const FavoriteWrapper = ({
}; };
const makeAddFavoriteItem = () => { const makeAddFavoriteItem = () => {
let rs = []; let rs = [];
if(!editMode && usingType === 'menu'){ if(!favoriteEditOn){
rs.push( rs.push(
<SwiperSlide key={ `favorite-item-add-slide-key` }> <SwiperSlide key={ `favorite-item-add-slide-key` }>
<div <div
@@ -114,7 +108,7 @@ export const FavoriteWrapper = ({
useEffect(() => { useEffect(() => {
getFavoriteList(); getFavoriteList();
}, [changeMenuId]); }, [changeMenuId, favoriteEditOn]);
return ( return (
<> <>

View File

@@ -1,5 +1,5 @@
import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { useStore } from '@/shared/model/store'; import { useFavoriteEditOnStore, useMenuOnStore, useStore } from '@/shared/model/store';
import { UserFavorite } from '@/entities/user/model/types'; import { UserFavorite } from '@/entities/user/model/types';
import { RefObject, useEffect, useState } from 'react'; import { RefObject, useEffect, useState } from 'react';
import { MenuItem } from '../model/types'; import { MenuItem } from '../model/types';
@@ -13,8 +13,6 @@ export interface MenuCategoryProps {
menuName?: string; menuName?: string;
iconFilePath?: string; iconFilePath?: string;
subMenu?: Array<MenuItem>; subMenu?: Array<MenuItem>;
setMenuOn?: (menuOn: boolean) => void;
editMode?: boolean;
changeMenuId?: string; changeMenuId?: string;
setChangeMenuId: (menuIdChecked?: string) => void; setChangeMenuId: (menuIdChecked?: string) => void;
buttonRefs: RefObject<Array<HTMLDivElement>>; buttonRefs: RefObject<Array<HTMLDivElement>>;
@@ -26,8 +24,6 @@ export const MenuCategory = ({
iconFilePath, iconFilePath,
menuName, menuName,
subMenu, subMenu,
setMenuOn,
editMode,
changeMenuId, changeMenuId,
setChangeMenuId, setChangeMenuId,
buttonRefs, buttonRefs,
@@ -39,9 +35,12 @@ export const MenuCategory = ({
const [favoriteItems, setFavoriteItems] = useState<Array<UserFavorite>>([]); const [favoriteItems, setFavoriteItems] = useState<Array<UserFavorite>>([]);
const [menuIds, setMenuIds] = useState<Array<number | undefined>>([]); const [menuIds, setMenuIds] = useState<Array<number | undefined>>([]);
const { menuOn, setMenuOn } = useMenuOnStore();
const { favoriteEditOn, setFavoriteEditOn } = useFavoriteEditOnStore();
const onClickToNavigate = (menuId?: number, path?: string) => { const onClickToNavigate = (menuId?: number, path?: string) => {
if(menuId && checkGrant(menuId, 'R')){ if(menuId && checkGrant(menuId, 'R')){
if(!!path && !!setMenuOn && !editMode){ if(!!path && !favoriteEditOn){
setMenuOn(false); setMenuOn(false);
navigate(path); navigate(path);
} }
@@ -125,7 +124,7 @@ export const MenuCategory = ({
? subMenu[i]?.menuNameEng ? subMenu[i]?.menuNameEng
: subMenu[i]?.menuName; : subMenu[i]?.menuName;
if(!!editMode && subMenu[i] && subMenu[i]?.menuId){ if(!!favoriteEditOn && subMenu[i] && subMenu[i]?.menuId){
rs.push( rs.push(
<li <li
key={ `menu-item-key-${menuId}-${i}` } key={ `menu-item-key-${menuId}-${i}` }

View File

@@ -13,10 +13,9 @@ import {
useSetHeaderTitle, useSetHeaderTitle,
useSetHeaderType, useSetHeaderType,
useSetFooterMode, useSetFooterMode,
useSetFooterCurrentPage useSetFooterCurrentPage,
} from '@/widgets/sub-layout/use-sub-layout'; } from '@/widgets/sub-layout/use-sub-layout';
import { useStore } from '@/shared/model/store'; import { useStore } from '@/shared/model/store';
import { UserFavorite } from '@/entities/user/model/types';
import { useHomeBannerListMutation } from '@/entities/home/api/use-home-banner-list-mutation'; import { useHomeBannerListMutation } from '@/entities/home/api/use-home-banner-list-mutation';
import { import {
BannerList, BannerList,
@@ -27,11 +26,6 @@ import {
import { showAlert } from '@/widgets/show-alert'; import { showAlert } from '@/widgets/show-alert';
import { snackBar } from '@/shared/lib'; import { snackBar } from '@/shared/lib';
export let homeReloadKey = 1;
export const setHomeReloadKey = () => {
homeReloadKey++;
};
export const HomePage = () => { export const HomePage = () => {
const { openBiometricRegistrationPopup, checkAlarmLink } = useAppBridge(); const { openBiometricRegistrationPopup, checkAlarmLink } = useAppBridge();
const { mutateAsync: homeBannerList } = useHomeBannerListMutation(); const { mutateAsync: homeBannerList } = useHomeBannerListMutation();
@@ -46,7 +40,6 @@ export const HomePage = () => {
const [bottomBannerOn, setBottomBannerOn] = useState<boolean>(false); const [bottomBannerOn, setBottomBannerOn] = useState<boolean>(false);
const [authRegisterOn, setAuthRegisterOn] = useState<boolean>(false); const [authRegisterOn, setAuthRegisterOn] = useState<boolean>(false);
const [favoriteItems, setFavoriteItems] = useState<Array<UserFavorite>>([]);
const [bannerList, setBannerList] = useState<Array<BannerList>>([]); const [bannerList, setBannerList] = useState<Array<BannerList>>([]);
const callHomeBannerList = () => { const callHomeBannerList = () => {
@@ -117,9 +110,6 @@ export const HomePage = () => {
else{ else{
useStore.getState().UserStore.setFirstAccess(false); useStore.getState().UserStore.setFirstAccess(false);
} }
let userFavorite = useStore.getState().UserStore.userFavorite;
setFavoriteItems(userFavorite);
callHomeBannerList(); callHomeBannerList();
}, []); }, []);
@@ -143,7 +133,6 @@ export const HomePage = () => {
<div className="tab-pane dashboard active"> <div className="tab-pane dashboard active">
<FavoriteWrapper <FavoriteWrapper
usingType='home' usingType='home'
key={ homeReloadKey }
></FavoriteWrapper> ></FavoriteWrapper>
<DayStatusBox></DayStatusBox> <DayStatusBox></DayStatusBox>
</div> </div>

View File

@@ -6,6 +6,31 @@ import { createUserInfoStore, UserInfoState } from '@/entities/user/model/store'
import { createBannerInfoStore, BannerInfoState, createCommonStore, CommonState } from '@/entities/common/model/store'; import { createBannerInfoStore, BannerInfoState, createCommonStore, CommonState } from '@/entities/common/model/store';
import { StorageKeys } from '@/shared/constants/local-storage'; import { StorageKeys } from '@/shared/constants/local-storage';
export interface MenuOnStore {
menuOn: boolean;
setMenuOn: (menuOn: boolean) => void;
};
export interface FavoriteEditOnStore {
favoriteEditOn: boolean;
setFavoriteEditOn: (favoriteEditOn: boolean) => void;
};
export const useMenuOnStore = create<MenuOnStore>((set) => ({
menuOn: false,
setMenuOn: (menuOn: boolean) => {
set((state: { menuOn: boolean}) => ({
menuOn: (state.menuOn = menuOn)
}))
}
}));
export const useFavoriteEditOnStore = create<FavoriteEditOnStore>((set) => ({
favoriteEditOn: false,
setFavoriteEditOn: (favoriteEditOn: boolean) => {
set((state: { favoriteEditOn: boolean}) => ({
favoriteEditOn: (state.favoriteEditOn = favoriteEditOn)
}))
}
}));
export type RootStore = { export type RootStore = {
UserStore: UserInfoState; UserStore: UserInfoState;
BannerStore: BannerInfoState; BannerStore: BannerInfoState;

View File

@@ -4,11 +4,10 @@ import { IMAGE_ROOT } from '@/shared/constants/common';
import { useNavigate } from '@/shared/lib/hooks/use-navigate'; import { useNavigate } from '@/shared/lib/hooks/use-navigate';
import { MenuCategory } from '@/entities/menu/ui/menu-category'; import { MenuCategory } from '@/entities/menu/ui/menu-category';
import { FavoriteWrapper } from '@/entities/home/ui/favorite-wrapper'; import { FavoriteWrapper } from '@/entities/home/ui/favorite-wrapper';
import { useStore } from '@/shared/model/store'; import { useFavoriteEditOnStore, useMenuOnStore, useStore } from '@/shared/model/store';
import { FilterMotionDuration, FilterMotionStyle, FilterMotionVariants, MenuItems } from '@/entities/common/model/constant'; import { FilterMotionDuration, FilterMotionStyle, FilterMotionVariants, MenuItems } from '@/entities/common/model/constant';
import { useEffect, useRef, useState } from 'react'; import { useEffect, useRef, useState } from 'react';
import { useLocation } from 'react-router'; import { useLocation } from 'react-router';
import { setHomeReloadKey } from '@/pages/home/home-page';
import { useShortcutSaveMutation } from '@/entities/user/api/use-shortcut-save-mutation'; import { useShortcutSaveMutation } from '@/entities/user/api/use-shortcut-save-mutation';
import { ShortcutSaveParams, ShortcutSaveResponse } from '@/entities/user/model/types'; import { ShortcutSaveParams, ShortcutSaveResponse } from '@/entities/user/model/types';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
@@ -28,17 +27,10 @@ interface ShortButton {
index: number; index: number;
} }
export interface MenuProps { export const Menu = () => {
menuOn: boolean; const { menuOn, setMenuOn } = useMenuOnStore();
setMenuOn: (menuOn: boolean) => void; const { favoriteEditOn, setFavoriteEditOn } = useFavoriteEditOnStore();
favoriteEdit?: boolean;
}
export const Menu = ({
menuOn,
setMenuOn,
favoriteEdit
}: MenuProps) => {
const { i18n } = useTranslation(); const { i18n } = useTranslation();
const userMids = useStore.getState().UserStore.userMids; const userMids = useStore.getState().UserStore.userMids;
const userMid = useStore.getState().UserStore.mid; const userMid = useStore.getState().UserStore.mid;
@@ -49,7 +41,6 @@ export const Menu = ({
const { mutateAsync: shortcutSave } = useShortcutSaveMutation(); const { mutateAsync: shortcutSave } = useShortcutSaveMutation();
const [shortBtns, setShortBtns] = useState<ShortButton[]>([]); const [shortBtns, setShortBtns] = useState<ShortButton[]>([]);
const [editMode, setEditMode] = useState(false);
const [changeMenuId, setChangeMenuId] = useState<string>(); const [changeMenuId, setChangeMenuId] = useState<string>();
const [shortBtnIdx, setShortBtnIdx] = useState(0); const [shortBtnIdx, setShortBtnIdx] = useState(0);
@@ -135,17 +126,12 @@ export const Menu = ({
}, SCROLL_ANIMATION_DURATION); }, SCROLL_ANIMATION_DURATION);
}; };
const onClickToMenuClose = () => { const onClickToMenuClose = () => {
if(editMode){ if(favoriteEditOn){
setEditMode(false); setFavoriteEditOn(false);
callShortcutSave(); callShortcutSave();
// 여기에 저장 로직?
} }
else{ else{
setMenuOn(false); setMenuOn(false);
if(location.pathname === PATHS.home){
setHomeReloadKey();
}
} }
}; };
@@ -160,8 +146,6 @@ export const Menu = ({
iconFilePath={ MenuItems[i]?.iconFilePath } iconFilePath={ MenuItems[i]?.iconFilePath }
menuName={ MenuItems[i]?.menuName } menuName={ MenuItems[i]?.menuName }
subMenu={ MenuItems[i]?.subMenu } subMenu={ MenuItems[i]?.subMenu }
setMenuOn={ setMenuOn }
editMode={ editMode }
changeMenuId={ changeMenuId } changeMenuId={ changeMenuId }
setChangeMenuId= { setChangeMenuId } setChangeMenuId= { setChangeMenuId }
buttonRefs={ buttonRefs } buttonRefs={ buttonRefs }
@@ -255,11 +239,6 @@ export const Menu = ({
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
}, [i18n.language]); }, [i18n.language]);
useEffect(() => {
if(favoriteEdit){
setEditMode(favoriteEdit)
}
},[favoriteEdit]);
// 메뉴가 열릴 때 초기화 // 메뉴가 열릴 때 초기화
useEffect(() => { useEffect(() => {
@@ -292,7 +271,7 @@ export const Menu = ({
<div className="full-menu-header"> <div className="full-menu-header">
<div className="full-menu-title">{ userMid }</div> <div className="full-menu-title">{ userMid }</div>
<div className="full-menu-actions"> <div className="full-menu-actions">
{ !editMode && { !favoriteEditOn &&
<button <button
className="full-menu-settings" className="full-menu-settings"
onClick={ () => onClickToNavigate(PATHS.setting) } onClick={ () => onClickToNavigate(PATHS.setting) }
@@ -314,10 +293,7 @@ export const Menu = ({
{ {
<FavoriteWrapper <FavoriteWrapper
usingType='menu' usingType='menu'
editMode={ editMode }
setEditMode={ setEditMode }
changeMenuId={ changeMenuId } changeMenuId={ changeMenuId }
setMenuOn={ setMenuOn }
></FavoriteWrapper> ></FavoriteWrapper>
} }
</div> </div>

View File

@@ -8,17 +8,17 @@ import {
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { useAppBridge } from '@/hooks'; import { useAppBridge } from '@/hooks';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useStore } from '@/shared/model/store';
import { showAlert } from '../show-alert'; import { showAlert } from '../show-alert';
import { checkGrant } from '@/shared/lib/check-grant'; import { checkGrant } from '@/shared/lib/check-grant';
import { useFavoriteEditOnStore, useMenuOnStore } from '@/shared/model/store';
export const FooterNavigation = ({ export const FooterNavigation = ({
setMenuOn,
footerCurrentPage, footerCurrentPage,
setFavoriteEdit
}: FooterProps) => { }: FooterProps) => {
const { favoriteEditOn, setFavoriteEditOn } = useFavoriteEditOnStore();
const { navigate } = useNavigate(); const { navigate } = useNavigate();
const { t } = useTranslation(); const { t } = useTranslation();
const { menuOn, setMenuOn } = useMenuOnStore();
const [isFooterOn, setIsFooterOn] = useState<boolean>(true); const [isFooterOn, setIsFooterOn] = useState<boolean>(true);
@@ -33,7 +33,7 @@ export const FooterNavigation = ({
} }
}; };
const onClickToOpenMenu = () => { const onClickToOpenMenu = () => {
setFavoriteEdit(false); setFavoriteEditOn(false);
setMenuOn(true); setMenuOn(true);
}; };

View File

@@ -15,10 +15,7 @@ import { appBridge } from '@/utils/appBridge';
export const HeaderNavigation = ({ export const HeaderNavigation = ({
onBack, onBack,
headerTitle, headerTitle,
menuOn,
headerType, headerType,
setMenuOn,
favoriteEdit,
loginSuccess, loginSuccess,
mid, mid,
setMid setMid
@@ -95,11 +92,7 @@ export const HeaderNavigation = ({
|| headerType === HeaderType.Alim || headerType === HeaderType.Alim
|| headerType === HeaderType.LeftArrow || headerType === HeaderType.LeftArrow
) && ) &&
<Menu <Menu></Menu>
menuOn={ menuOn }
setMenuOn={ setMenuOn }
favoriteEdit={ favoriteEdit }
></Menu>
} }
{ {
(headerType !== HeaderType.NoHeader) && (headerType !== HeaderType.NoHeader) &&

View File

@@ -66,12 +66,9 @@ export const SubLayout = () => {
const [onBack, setOnBack] = useState(undefined); const [onBack, setOnBack] = useState(undefined);
const [headerTitle, setHeaderTitle] = useState<string>(''); const [headerTitle, setHeaderTitle] = useState<string>('');
const [isPullToRefreshEnabled, setIsPullToRefreshEnabled] = useState<boolean>(false);
const [menuOn, setMenuOn] = useState<boolean>(false);
const [headerType, setHeaderType] = useState<HeaderType>(HeaderType.NoHeader); const [headerType, setHeaderType] = useState<HeaderType>(HeaderType.NoHeader);
const [footerMode, setFooterMode] = useState<boolean>(false); const [footerMode, setFooterMode] = useState<boolean>(false);
const [footerCurrentPage, setFooterCurrentPage] = useState<undefined | string | null>(undefined); const [footerCurrentPage, setFooterCurrentPage] = useState<undefined | string | null>(undefined);
const [favoriteEdit, setFavoriteEdit] = useState<boolean>(false);
const [headerNavigationKey, setHeaderNavigationKey] = useState<number>(1); const [headerNavigationKey, setHeaderNavigationKey] = useState<number>(1);
const [loginSuccess, setLoginSuccess] = useState<boolean>(false); const [loginSuccess, setLoginSuccess] = useState<boolean>(false);
const [mid, setMid] = useState<string>(); const [mid, setMid] = useState<string>();
@@ -411,10 +408,7 @@ export const SubLayout = () => {
<HeaderNavigation <HeaderNavigation
onBack={ onBack } onBack={ onBack }
headerTitle={ headerTitle } headerTitle={ headerTitle }
menuOn={ menuOn }
setMenuOn={ setMenuOn }
headerType={ headerType } headerType={ headerType }
favoriteEdit={ favoriteEdit }
key={ headerNavigationKey } key={ headerNavigationKey }
loginSuccess={ loginSuccess } loginSuccess={ loginSuccess }
mid={ mid } mid={ mid }
@@ -425,21 +419,16 @@ export const SubLayout = () => {
context={{ context={{
setOnBack, setOnBack,
setHeaderTitle, setHeaderTitle,
setIsPullToRefreshEnabled,
setMenuOn,
setHeaderType, setHeaderType,
setFooterMode, setFooterMode,
setFooterCurrentPage, setFooterCurrentPage,
setFavoriteEdit
}} }}
/> />
} }
{ {
footerMode && footerMode &&
<FooterNavigation <FooterNavigation
setMenuOn={ setMenuOn }
footerCurrentPage={ footerCurrentPage } footerCurrentPage={ footerCurrentPage }
setFavoriteEdit={ setFavoriteEdit }
></FooterNavigation> ></FooterNavigation>
} }
{ alarmRoutesOn && { alarmRoutesOn &&

View File

@@ -28,24 +28,6 @@ export const useSetHeaderTitle = (title: string) => {
return { setHeaderTitle }; return { setHeaderTitle };
}; };
export const useSetIsPullToRefreshEnabled = (enabled: boolean) => {
const { setIsPullToRefreshEnabled } = useSubLayoutContext();
useEffect(() => {
setIsPullToRefreshEnabled(enabled);
return () => setIsPullToRefreshEnabled(false);
}, [enabled, setIsPullToRefreshEnabled]);
return { setIsPullToRefreshEnabled };
};
export const useSetMenuOn = (menuOn: boolean) => {
const { setMenuOn } = useSubLayoutContext();
useEffect(() => {
setMenuOn(menuOn);
return () => setMenuOn(false);
}, [menuOn, setMenuOn]);
return { setMenuOn };
};
export const useSetHeaderType = (headerType: HeaderType) => { export const useSetHeaderType = (headerType: HeaderType) => {
const { setHeaderType } = useSubLayoutContext(); const { setHeaderType } = useSubLayoutContext();
useEffect(() => { useEffect(() => {
@@ -55,15 +37,6 @@ export const useSetHeaderType = (headerType: HeaderType) => {
return { setHeaderType }; return { setHeaderType };
}; };
export const useSetFavoriteEdit = (favoriteEdit: boolean) => {
const { setFavoriteEdit } = useSubLayoutContext();
useEffect(() => {
setFavoriteEdit(favoriteEdit);
return () => setFavoriteEdit(false);
}, [favoriteEdit, setFavoriteEdit]);
return { setFavoriteEdit }
};
export const useSetFooterMode = (footerMode: boolean) => { export const useSetFooterMode = (footerMode: boolean) => {
const { setFooterMode } = useSubLayoutContext(); const { setFooterMode } = useSubLayoutContext();
useEffect(() => { useEffect(() => {