ㅇ
This commit is contained in:
@@ -25,7 +25,7 @@ export const FavoriteWrapper = ({
|
|||||||
const { menuOn, setMenuOn } = useMenuOnStore();
|
const { menuOn, setMenuOn } = useMenuOnStore();
|
||||||
const { favoriteEditOn, setFavoriteEditOn } = useFavoriteEditOnStore();
|
const { favoriteEditOn, setFavoriteEditOn } = useFavoriteEditOnStore();
|
||||||
const { menuIds, setMenuIds, deleteMenuId} = useMenuIds();
|
const { menuIds, setMenuIds, deleteMenuId} = useMenuIds();
|
||||||
|
const [isFirst, setIsFirst] = useState<boolean>(true);
|
||||||
const [favoriteItems, setFavoriteItems] = useState<Array<UserFavorite>>([]);
|
const [favoriteItems, setFavoriteItems] = useState<Array<UserFavorite>>([]);
|
||||||
|
|
||||||
const itemAdd: UserFavorite = {
|
const itemAdd: UserFavorite = {
|
||||||
@@ -35,10 +35,18 @@ export const FavoriteWrapper = ({
|
|||||||
iconFilePath: IMAGE_ROOT + '/ico_menu_plus.svg',
|
iconFilePath: IMAGE_ROOT + '/ico_menu_plus.svg',
|
||||||
programPath: '',
|
programPath: '',
|
||||||
};
|
};
|
||||||
|
|
||||||
const goToLastSlide = () => {
|
const goToSlide = (key: number | 'first' | 'last') => {
|
||||||
if(swiperInstance){
|
if(swiperInstance){
|
||||||
swiperInstance.slideTo(swiperInstance.slides.length - 1);
|
if(key === 'first'){
|
||||||
|
swiperInstance.slideTo(0);
|
||||||
|
}
|
||||||
|
else if(key === 'last'){
|
||||||
|
swiperInstance.slideTo(swiperInstance.slides.length - 1);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
swiperInstance.slideTo(key);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -65,19 +73,35 @@ export const FavoriteWrapper = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
const onClickToRemoveItem = (item?: UserFavorite) => {
|
const onClickToRemoveItem = (item?: UserFavorite) => {
|
||||||
|
let idx = -1;
|
||||||
let newFavorite: Array<UserFavorite> = favoriteItems.filter((value, index) => {
|
let newFavorite: Array<UserFavorite> = favoriteItems.filter((value, index) => {
|
||||||
|
if(value.menuId === item?.menuId){
|
||||||
|
idx = index;
|
||||||
|
}
|
||||||
return value.menuId !== item?.menuId;
|
return value.menuId !== item?.menuId;
|
||||||
});
|
});
|
||||||
useStore.getState().UserStore.setUserFavorite(newFavorite);
|
useStore.getState().UserStore.setUserFavorite(newFavorite);
|
||||||
setFavoriteItems(newFavorite);
|
setFavoriteItems(newFavorite);
|
||||||
if(item?.menuId){
|
if(idx > -1){
|
||||||
deleteMenuId(item?.menuId);
|
goToSlide(idx);
|
||||||
|
}
|
||||||
|
if(menuIds.length <= 1){
|
||||||
|
showAlert('바로가기는 1개이상 설정 필요 합니다.') ;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
if(item?.menuId){
|
||||||
|
deleteMenuId(item?.menuId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const makeFavoriteItems = () => {
|
const makeFavoriteItems = () => {
|
||||||
let rs = [];
|
let rs = [];
|
||||||
for(let i=0;i<favoriteItems.length;i++){
|
let cnt = favoriteItems.length;
|
||||||
|
if(usingType === 'home'){
|
||||||
|
cnt = (cnt > 4)? 4: cnt;
|
||||||
|
}
|
||||||
|
for(let i=0;i<cnt;i++){
|
||||||
const displayName = i18n.language === 'en' && favoriteItems[i]?.menuNameEng
|
const displayName = i18n.language === 'en' && favoriteItems[i]?.menuNameEng
|
||||||
? favoriteItems[i]?.menuNameEng
|
? favoriteItems[i]?.menuNameEng
|
||||||
: favoriteItems[i]?.menuName;
|
: favoriteItems[i]?.menuName;
|
||||||
@@ -137,14 +161,18 @@ export const FavoriteWrapper = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
goToLastSlide();
|
|
||||||
getFavoriteList();
|
getFavoriteList();
|
||||||
|
if(usingType === 'home'){
|
||||||
|
goToSlide('first');
|
||||||
|
}
|
||||||
|
else if(usingType === 'menu' && !isFirst){
|
||||||
|
setTimeout(() => {
|
||||||
|
goToSlide('last');
|
||||||
|
}, 100);
|
||||||
|
}
|
||||||
|
setIsFirst(false);
|
||||||
}, [changeMenuId, favoriteEditOn]);
|
}, [changeMenuId, favoriteEditOn]);
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
goToLastSlide();
|
|
||||||
}, [menuIds]);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Swiper
|
<Swiper
|
||||||
|
|||||||
@@ -49,7 +49,6 @@ export const MenuCategory = ({
|
|||||||
else{
|
else{
|
||||||
showAlert(t('common.nopermission'));
|
showAlert(t('common.nopermission'));
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const favoriteSetting = (
|
const favoriteSetting = (
|
||||||
@@ -61,12 +60,14 @@ export const MenuCategory = ({
|
|||||||
programPath?: string,
|
programPath?: string,
|
||||||
) => {
|
) => {
|
||||||
let userFavorite = useStore.getState().UserStore.userFavorite;
|
let userFavorite = useStore.getState().UserStore.userFavorite;
|
||||||
if(checked){
|
if(userFavorite.length >= 10){
|
||||||
// 즐겨찾기가 4개 이상일 경우 마지막 항목 제거
|
showAlert('즐겨찾기는 10개까지만 추가 할수 있습니다.');
|
||||||
if(userFavorite.length >= 10){
|
}
|
||||||
showAlert('즐겨찾기는 10개까지만 추가 할수 있습니다.');
|
else if(userFavorite.length <= 1){
|
||||||
}
|
showAlert('바로가기는 1개이상 설정 필요 합니다.');
|
||||||
else{
|
}
|
||||||
|
else{
|
||||||
|
if(checked){
|
||||||
userFavorite = [
|
userFavorite = [
|
||||||
...userFavorite,
|
...userFavorite,
|
||||||
{
|
{
|
||||||
@@ -78,21 +79,15 @@ export const MenuCategory = ({
|
|||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
}
|
else{
|
||||||
else{
|
userFavorite = userFavorite.filter((value, _) => {
|
||||||
// 즐겨찾기가 1개 남았을 때는 해제하지 않음
|
return value.menuId !== menuId
|
||||||
if(userFavorite.length <= 1){
|
});
|
||||||
callFavoiteItems();
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
userFavorite = userFavorite.filter((value, _) => {
|
useStore.getState().UserStore.setUserFavorite(userFavorite);
|
||||||
return value.menuId !== menuId
|
setChangeMenuId(`${menuId}-${checked}`);
|
||||||
});
|
callFavoiteItems();
|
||||||
}
|
}
|
||||||
useStore.getState().UserStore.setUserFavorite(userFavorite);
|
|
||||||
setChangeMenuId(`${menuId}-${checked}`);
|
|
||||||
callFavoiteItems();
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
const callFavoiteItems = () => {
|
const callFavoiteItems = () => {
|
||||||
@@ -103,11 +98,7 @@ export const MenuCategory = ({
|
|||||||
});
|
});
|
||||||
setMenuIds(newArr);
|
setMenuIds(newArr);
|
||||||
};
|
};
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
callFavoiteItems();
|
|
||||||
}, [changeMenuId]);
|
|
||||||
|
|
||||||
const getMenuItems = () => {
|
const getMenuItems = () => {
|
||||||
let rs = [];
|
let rs = [];
|
||||||
if(subMenu){
|
if(subMenu){
|
||||||
@@ -165,6 +156,10 @@ export const MenuCategory = ({
|
|||||||
? MenuItems.find(item => item.menuId === menuId)?.menuNameEng || menuName
|
? MenuItems.find(item => item.menuId === menuId)?.menuNameEng || menuName
|
||||||
: menuName;
|
: menuName;
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
callFavoiteItems();
|
||||||
|
}, [changeMenuId]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div
|
<div
|
||||||
|
|||||||
Reference in New Issue
Block a user