[TabLayout] 매직마우스일 경우 2초 후 메뉴 열리도록 처리
This commit is contained in:
@@ -139,7 +139,7 @@ const TabItemBase = ({
|
|||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}, [title, focused]);
|
}, [title, focused, expanded]);
|
||||||
|
|
||||||
delete rest.hasChildren;
|
delete rest.hasChildren;
|
||||||
delete rest.getChildren;
|
delete rest.getChildren;
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ const TabItemBase = ({
|
|||||||
const subtitle = title.split("-")[0];
|
const subtitle = title.split("-")[0];
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
{expanded && (
|
{subtitle && (
|
||||||
<Marquee
|
<Marquee
|
||||||
marqueeDisabled={!focused}
|
marqueeDisabled={!focused}
|
||||||
marqueeOn={"focus"}
|
marqueeOn={"focus"}
|
||||||
@@ -104,7 +104,7 @@ const TabItemBase = ({
|
|||||||
)}
|
)}
|
||||||
</>
|
</>
|
||||||
);
|
);
|
||||||
}, [title, focused]);
|
}, [title, focused, expanded]);
|
||||||
|
|
||||||
delete rest.hasChildren;
|
delete rest.hasChildren;
|
||||||
delete rest.getChildren;
|
delete rest.getChildren;
|
||||||
|
|||||||
@@ -136,6 +136,8 @@ export default function TabLayout({ topPanelName, onTabActivated }) {
|
|||||||
const { loginUserData } = useSelector((state) => state.common.appStatus);
|
const { loginUserData } = useSelector((state) => state.common.appStatus);
|
||||||
const menuItems = useSelector((state) => state.home.menuItems);
|
const menuItems = useSelector((state) => state.home.menuItems);
|
||||||
|
|
||||||
|
const mouseNavOpen = useRef(new Job((func) => func(), 1500));
|
||||||
|
const mouseMainEntered = useRef(false);
|
||||||
const { getScrollTo, scrollTop } = useScrollTo();
|
const { getScrollTo, scrollTop } = useScrollTo();
|
||||||
|
|
||||||
const getMenuData = (type) => {
|
const getMenuData = (type) => {
|
||||||
@@ -327,20 +329,25 @@ export default function TabLayout({ topPanelName, onTabActivated }) {
|
|||||||
|
|
||||||
const onTabHasFocus = useCallback(
|
const onTabHasFocus = useCallback(
|
||||||
(type) => (event) => {
|
(type) => (event) => {
|
||||||
|
console.log("yhcho onTabHasFocus ", cursorVisible);
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case COLLABSED_MAIN:
|
case COLLABSED_MAIN: {
|
||||||
|
if (cursorVisible) {
|
||||||
|
mouseNavOpen.current.start(() => {
|
||||||
|
setMainExpanded(true);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case ACTIVATED_MAIN: {
|
case ACTIVATED_MAIN: {
|
||||||
if (!cursorVisible) {
|
if (!cursorVisible) {
|
||||||
const parent = event.target.parentNode;
|
const parent = event.target.parentNode;
|
||||||
const children = parent.childNodes;
|
const children = parent.childNodes;
|
||||||
const index = Array.prototype.indexOf.call(children, event.target);
|
const index = Array.prototype.indexOf.call(children, event.target);
|
||||||
|
|
||||||
setMainExpanded(true);
|
setMainExpanded(true);
|
||||||
setMainSelectedIndex(index - 1);
|
setMainSelectedIndex(index - 1);
|
||||||
setSecondDepthReduce(false);
|
setSecondDepthReduce(false);
|
||||||
} else {
|
|
||||||
if (!panelSwitching.current) {
|
|
||||||
setMainExpanded(true);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
@@ -367,6 +374,12 @@ export default function TabLayout({ topPanelName, onTabActivated }) {
|
|||||||
const onTabBlur = useCallback(
|
const onTabBlur = useCallback(
|
||||||
(type) => (event) => {
|
(type) => (event) => {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
|
case COLLABSED_MAIN: {
|
||||||
|
if (cursorVisible) {
|
||||||
|
mouseNavOpen.current.stop();
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
case ACTIVATED_MAIN: {
|
case ACTIVATED_MAIN: {
|
||||||
if (!cursorVisible) {
|
if (!cursorVisible) {
|
||||||
}
|
}
|
||||||
@@ -550,9 +563,35 @@ export default function TabLayout({ topPanelName, onTabActivated }) {
|
|||||||
}
|
}
|
||||||
}, [secondDepthReduce, showSubTab, mainSelectedIndex]);
|
}, [secondDepthReduce, showSubTab, mainSelectedIndex]);
|
||||||
|
|
||||||
|
const onMainMouseEnter = useCallback(
|
||||||
|
(ev) => {
|
||||||
|
mouseMainEntered.current = true;
|
||||||
|
onTabHasFocus(COLLABSED_MAIN)(ev);
|
||||||
|
},
|
||||||
|
[onTabHasFocus]
|
||||||
|
);
|
||||||
|
|
||||||
|
const onMainMouseLeave = useCallback(
|
||||||
|
(ev) => {
|
||||||
|
mouseMainEntered.current = false;
|
||||||
|
onTabBlur(COLLABSED_MAIN)(ev);
|
||||||
|
},
|
||||||
|
[onTabBlur]
|
||||||
|
);
|
||||||
|
|
||||||
|
const onMainMouseMove = useCallback(
|
||||||
|
(ev) => {
|
||||||
|
if (!mouseMainEntered.current) {
|
||||||
|
onMainMouseEnter(ev);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
[onMainMouseEnter]
|
||||||
|
);
|
||||||
|
|
||||||
if (!showTab) {
|
if (!showTab) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={classNames(css.tabLayoutWrap, !tabActivated && css.hide)}>
|
<div className={classNames(css.tabLayoutWrap, !tabActivated && css.hide)}>
|
||||||
{data && (
|
{data && (
|
||||||
@@ -572,9 +611,10 @@ export default function TabLayout({ topPanelName, onTabActivated }) {
|
|||||||
mainExpanded && css.expanded
|
mainExpanded && css.expanded
|
||||||
)}
|
)}
|
||||||
onFocus={onTabHasFocus(ACTIVATED_MAIN)}
|
onFocus={onTabHasFocus(ACTIVATED_MAIN)}
|
||||||
onMouseOver={onTabHasFocus(COLLABSED_MAIN)}
|
|
||||||
onBlur={onTabBlur(ACTIVATED_MAIN)}
|
onBlur={onTabBlur(ACTIVATED_MAIN)}
|
||||||
onMouseLeave={onTabBlur(ACTIVATED_MAIN)}
|
onMouseMove={onMainMouseMove}
|
||||||
|
onMouseEnter={onMainMouseEnter}
|
||||||
|
onMouseLeave={onMainMouseLeave}
|
||||||
>
|
>
|
||||||
<h1 className={css.logo}>
|
<h1 className={css.logo}>
|
||||||
<img src={shoptimeFullIcon} alt="" />
|
<img src={shoptimeFullIcon} alt="" />
|
||||||
@@ -649,7 +689,6 @@ export default function TabLayout({ topPanelName, onTabActivated }) {
|
|||||||
isSubItem={true}
|
isSubItem={true}
|
||||||
deActivateTab={deActivateTab}
|
deActivateTab={deActivateTab}
|
||||||
title={item.title + "-sub"}
|
title={item.title + "-sub"}
|
||||||
F
|
|
||||||
lgCatCd={item.id}
|
lgCatCd={item.id}
|
||||||
path={item.path}
|
path={item.path}
|
||||||
showSubTab={showSubTab}
|
showSubTab={showSubTab}
|
||||||
|
|||||||
Reference in New Issue
Block a user