Tablayout width 100% 이슈 및 Featured Brands 이미지 로드

This commit is contained in:
고동영
2024-02-01 13:04:12 +09:00
parent 2a1f97afb3
commit 8dcfc152ef
3 changed files with 29 additions and 7 deletions

View File

@@ -34,6 +34,7 @@ const TabItemBase = ({
subTitle, subTitle,
showSubTab = false, showSubTab = false,
onFocus, onFocus,
path,
...rest ...rest
}) => { }) => {
const [focused, setFocused] = useState(false); const [focused, setFocused] = useState(false);
@@ -149,7 +150,7 @@ const TabItemBase = ({
marqueeOn={"focus"} marqueeOn={"focus"}
className={classNames(css.text, isSubItem && css.subItem)} className={classNames(css.text, isSubItem && css.subItem)}
> >
{title} {path ? <img src={path} alt="" /> : title}
</Marquee> </Marquee>
)} )}
</div> </div>

View File

@@ -52,10 +52,11 @@ const CancelableDiv = Cancelable(
); );
class TabMenuItem { class TabMenuItem {
constructor(icons = "", title = "", id, target, children = []) { constructor(icons = "", title = "", id, path, target, children = []) {
this.icons = icons; this.icons = icons;
this.title = title; this.title = title;
this.id = id; this.id = id;
this.path = path;
this.target = target; this.target = target;
this.children = []; //TabMenuItem this.children = []; //TabMenuItem
if (children && children.length > 0) { if (children && children.length > 0) {
@@ -64,6 +65,7 @@ class TabMenuItem {
children[i].icons, children[i].icons,
children[i].title, children[i].title,
children[i].id, children[i].id,
children[i].path,
children[i].target, children[i].target,
children[i].children children[i].children
); );
@@ -112,6 +114,7 @@ export default function TabLayout({ topPanelName, onTabActivated }) {
const dispatch = useDispatch(); const dispatch = useDispatch();
const [mainExpanded, setMainExpanded] = useState(false); const [mainExpanded, setMainExpanded] = useState(false);
const [mainSelectedIndex, setMainSelectedIndex] = useState(-1); const [mainSelectedIndex, setMainSelectedIndex] = useState(-1);
const [secondDepthReduce, setSecondDepthReduce] = useState(false);
const [focused, setFocused] = useState(false); const [focused, setFocused] = useState(false);
const [tabs, setTabs] = useState([]); const [tabs, setTabs] = useState([]);
const [tabFocused, setTabFocused] = useState([false, false, false]); //COLLABSED_MAIN, ACTIVATED_MAIN, ACTIVATED_SUB const [tabFocused, setTabFocused] = useState([false, false, false]); //COLLABSED_MAIN, ACTIVATED_MAIN, ACTIVATED_SUB
@@ -176,7 +179,7 @@ export default function TabLayout({ topPanelName, onTabActivated }) {
case "Featured Brands": case "Featured Brands":
result = data?.shortFeaturedBrands.map((item) => ({ result = data?.shortFeaturedBrands.map((item) => ({
title: item.patncLogoPath, path: item.patncLogoPath,
})); }));
break; break;
case "My Page": case "My Page":
@@ -221,6 +224,7 @@ export default function TabLayout({ topPanelName, onTabActivated }) {
menuItems[i].children = subData.map((subItem) => ({ menuItems[i].children = subData.map((subItem) => ({
id: subItem.id, id: subItem.id,
title: subItem.title, title: subItem.title,
path: subItem.path,
})); }));
} }
} }
@@ -237,6 +241,7 @@ export default function TabLayout({ topPanelName, onTabActivated }) {
menuItems[i].icons, menuItems[i].icons,
menuItems[i].title, menuItems[i].title,
menuItems[i].id, menuItems[i].id,
menuItems[i].path,
menuItems[i].target, menuItems[i].target,
menuItems[i].children menuItems[i].children
); );
@@ -413,15 +418,27 @@ export default function TabLayout({ topPanelName, onTabActivated }) {
} }
}, [tabActivated, showTab]); }, [tabActivated, showTab]);
useEffect(() => {}, [showSubTab, mainSelectedIndex]); useEffect(() => {}, []);
useEffect(() => {
setSecondDepthReduce(false);
if (showSubTab) {
tabs[mainSelectedIndex]?.children.map((item) => {
if (item.path) {
console.log("#item.path", item.path);
setSecondDepthReduce(true);
}
});
}
}, [showSubTab, mainSelectedIndex, secondDepthReduce]);
if (!showTab) { if (!showTab) {
return null; return null;
} }
return ( return (
<div className={css.tabLayoutWrap}> <div className={classNames(css.tabLayoutWrap, !tabActivated && css.hide)}>
{/* collabsed Main */} {/* collabsed Main */}
<Container <Container
className={classNames(css.tabWrap, css.basicLayout)} className={classNames(css.tabWrap)}
onFocus={onTabHasFocus(COLLABSED_MAIN)} onFocus={onTabHasFocus(COLLABSED_MAIN)}
onMouseOver={onTabHasFocus(COLLABSED_MAIN)} onMouseOver={onTabHasFocus(COLLABSED_MAIN)}
onBlur={onTabBlur(COLLABSED_MAIN)} onBlur={onTabBlur(COLLABSED_MAIN)}
@@ -488,6 +505,7 @@ export default function TabLayout({ topPanelName, onTabActivated }) {
className={classNames( className={classNames(
css.tabWrap, css.tabWrap,
css.secondDepthLayout, css.secondDepthLayout,
// secondDepthReduce && css.
!showSubTab && css.hide !showSubTab && css.hide
)} )}
onFocus={onTabHasFocus(ACTIVATED_SUB)} onFocus={onTabHasFocus(ACTIVATED_SUB)}
@@ -508,6 +526,7 @@ export default function TabLayout({ topPanelName, onTabActivated }) {
deActivateTab={deActivateTab} deActivateTab={deActivateTab}
title={item.title} title={item.title}
lgCatCd={item.id} lgCatCd={item.id}
path={item.path}
/> />
); );
})} })}

View File

@@ -3,7 +3,9 @@ export const convertThemeColor = (iconType) => {
const theme = { const theme = {
light: { light: {
normal: "#353535", normal: "#353535",
expanded: "#FEFEFE", expanded: "#353535",
selected: "#FEFEFE",
focused: "#FEFEFE",
}, },
}; };