|
|
@@ -27,12 +27,18 @@ import RowCard from "../../../rowCard";
|
|
|
|
|
|
const isPageActive = ((buttonItem: EmbeddedMenuButtonType, navigation: NCoreUIKit.Navigation) => {
|
|
|
const state = navigation.getState();
|
|
|
- const currentRoute = state?.routes?.[state.index];
|
|
|
+
|
|
|
+ if (!state || !state.routes) return false;
|
|
|
+
|
|
|
+ const activeIndex = state.index ?? 0;
|
|
|
+ const currentRoute = state?.routes?.[activeIndex];
|
|
|
|
|
|
if(!currentRoute) return false;
|
|
|
|
|
|
if(currentRoute.state) {
|
|
|
- const nestedRoute = currentRoute.state.routes?.[currentRoute.state.index];
|
|
|
+ const nestedIndex = currentRoute.state.index ?? 0;
|
|
|
+ const nestedRoute = currentRoute.state.routes?.[nestedIndex];
|
|
|
+
|
|
|
return nestedRoute?.name === (buttonItem.redirectSub ?? buttonItem.redirectMain);
|
|
|
} else if(currentRoute.name) {
|
|
|
return currentRoute.name === (buttonItem.redirectSub ?? buttonItem.redirectMain);
|
|
|
@@ -61,7 +67,7 @@ const EmbeddedMenuButton: FC<IEmbeddedMenuButton> = ({
|
|
|
] = useState<null | number>(null);
|
|
|
|
|
|
const [
|
|
|
- ,
|
|
|
+ navStateTracker,
|
|
|
setNavStateTracker
|
|
|
] = useState(Date.now());
|
|
|
|
|
|
@@ -84,11 +90,11 @@ const EmbeddedMenuButton: FC<IEmbeddedMenuButton> = ({
|
|
|
};
|
|
|
}, [navigation]);
|
|
|
|
|
|
- if(buttonItem.isCollabsable) {
|
|
|
+ if(buttonItem.isCollapsible) {
|
|
|
useLayoutEffect(() => {
|
|
|
if(measure === null) return;
|
|
|
|
|
|
- if(buttonItem.isCollabs) {
|
|
|
+ if(buttonItem.isCollapse) {
|
|
|
Animated.timing(animatedCollabs, {
|
|
|
useNativeDriver: Platform.OS !== "web",
|
|
|
toValue: Number(measure),
|
|
|
@@ -104,7 +110,7 @@ const EmbeddedMenuButton: FC<IEmbeddedMenuButton> = ({
|
|
|
}).start();
|
|
|
}
|
|
|
}, [
|
|
|
- buttonItem.isCollabs,
|
|
|
+ buttonItem.isCollapse,
|
|
|
measure
|
|
|
]);
|
|
|
}
|
|
|
@@ -120,15 +126,15 @@ const EmbeddedMenuButton: FC<IEmbeddedMenuButton> = ({
|
|
|
}
|
|
|
|
|
|
return <View
|
|
|
- key={`menu-button-${id}-${buttonIndex}`}
|
|
|
+ key={`menu-button-${id}-${buttonIndex}-${navStateTracker.toString()}`}
|
|
|
>
|
|
|
<RowCard
|
|
|
{...buttonItem.props}
|
|
|
rightIcon={
|
|
|
- isMenuCollabs && (buttonItem.isCollabsable || buttonItem.isShowRedirectIcon) ?
|
|
|
+ isMenuCollabs && (buttonItem.isCollapsible || buttonItem.isShowRedirectIcon) ?
|
|
|
() => {
|
|
|
- if(buttonItem.isCollabsable) {
|
|
|
- if(buttonItem.isCollabs) {
|
|
|
+ if(buttonItem.isCollapsible) {
|
|
|
+ if(buttonItem.isCollapse) {
|
|
|
return <ChevronDownIcon
|
|
|
color={isPActive ? colors.content.icon.onPrimary : colors.content.icon.low}
|
|
|
size={18}
|
|
|
@@ -155,9 +161,9 @@ const EmbeddedMenuButton: FC<IEmbeddedMenuButton> = ({
|
|
|
title={isMenuCollabs ? buttonItem.title : ""}
|
|
|
icon={buttonItem.icon}
|
|
|
onPress={() => {
|
|
|
- if(buttonItem.isCollabsable) {
|
|
|
+ if(buttonItem.isCollapsible) {
|
|
|
updateMenuButtonCollabs({
|
|
|
- status: !buttonItem.isCollabs,
|
|
|
+ status: !buttonItem.isCollapse,
|
|
|
buttonItem,
|
|
|
depthMap
|
|
|
});
|
|
|
@@ -175,13 +181,13 @@ const EmbeddedMenuButton: FC<IEmbeddedMenuButton> = ({
|
|
|
if(buttonItem.props?.onPress) buttonItem.props.onPress();
|
|
|
}
|
|
|
|
|
|
- if(closeAction && !buttonItem.isCollabsable) closeAction();
|
|
|
+ if(closeAction && !buttonItem.isCollapsible) closeAction();
|
|
|
}}
|
|
|
/>
|
|
|
{
|
|
|
buttonItem.subButtons && buttonItem.subButtons.length ?
|
|
|
<Animated.View
|
|
|
- onLayout={buttonItem.isCollabsable ? (event) => {
|
|
|
+ onLayout={buttonItem.isCollapsible ? (event) => {
|
|
|
const height = event.nativeEvent.layout.height;
|
|
|
|
|
|
if(height !== 0 && measure === null) setMeasure(height);
|