Skip to content

Commit

Permalink
fix(components): fixed issue with keepAlive not working correctly for…
Browse files Browse the repository at this point in the history
… initial page routes
  • Loading branch information
nolimits4web committed Feb 22, 2021
1 parent f882766 commit 171ca2a
Show file tree
Hide file tree
Showing 6 changed files with 44 additions and 8 deletions.
11 changes: 10 additions & 1 deletion src/react/components/view.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -109,6 +109,7 @@ const View = forwardRef((props, ref) => {
const routerData = useRef(null);

let initialPage;
let initialRoute;

const onViewInit = (view) => {
emit(props, 'viewInit', view);
Expand All @@ -135,7 +136,9 @@ const View = forwardRef((props, ref) => {
};
f7routers.views.push(routerData.current);
if (f7View.current && f7View.current.router && (url || main)) {
initialPage = getRouterInitialComponent(f7View.current.router, initialPageComponent);
const initialData = getRouterInitialComponent(f7View.current.router, initialPageComponent);
initialPage = initialData.initialPage;
initialRoute = initialData.initialRoute;
}
}

Expand Down Expand Up @@ -184,13 +187,19 @@ const View = forwardRef((props, ref) => {
f7View.current.init(elRef.current);
if (initialPage) {
initialPage.el = f7View.current.router.currentPageEl;
if (initialRoute && initialRoute.route && initialRoute.route.keepAlive) {
initialRoute.route.keepAliveData = { pageEl: initialPage.el };
}
}
}, 100);
});
} else {
f7View.current.init(elRef.current);
if (initialPage) {
initialPage.el = f7View.current.router.currentPageEl;
if (initialRoute && initialRoute.route && initialRoute.route.keepAlive) {
initialRoute.route.keepAliveData = { pageEl: initialPage.el };
}
}
}
} else {
Expand Down
5 changes: 4 additions & 1 deletion src/react/shared/get-router-initial-component.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,8 @@ export const getRouterInitialComponent = (router, initialComponent) => {
},
};
}
return initialComponentData;
return {
initialPage: initialComponentData,
initialRoute,
};
};
15 changes: 12 additions & 3 deletions src/svelte/components/view.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
const { main, tab, tabActive, browserHistoryInitialMatch = true } = $$props;
let initialPage;
let initialRoute;
let el;
let routerData;
let f7View;
Expand Down Expand Up @@ -54,7 +55,9 @@
};
f7routers.views.push(routerData);
if (f7View && f7View.router && (url || main)) {
initialPage = getRouterInitialComponent(f7View.router);
const initialData = getRouterInitialComponent(f7View.router);
initialPage = initialData.initialPage;
initialRoute = initialData.initialRoute;
}
}
Expand Down Expand Up @@ -107,14 +110,20 @@
setTimeout(() => {
f7View.init(el);
if (initialPage) {
initialPage.el = f7View.routerPageEl;
initialPage.el = f7View.router.currentPageEl;
if (initialRoute && initialRoute.route && initialRoute.route.keepAlive) {
initialRoute.route.keepAliveData = { pageEl: initialPage.el };
}
}
}, 100);
});
} else {
f7View.init(el);
if (initialPage) {
initialPage.el = f7View.routerPageEl;
initialPage.el = f7View.router.currentPageEl;
if (initialRoute && initialRoute.route && initialRoute.route.keepAlive) {
initialRoute.route.keepAliveData = { pageEl: initialPage.el };
}
}
}
} else {
Expand Down
5 changes: 4 additions & 1 deletion src/svelte/shared/get-router-initial-component.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,8 @@ export const getRouterInitialComponent = (router, initialComponent) => {
},
};
}
return initialComponentData;
return {
initialPage: initialComponentData,
initialRoute,
};
};
11 changes: 10 additions & 1 deletion src/vue/components/view.vue
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,7 @@ export default {
let routerData = null;
let initialPage;
let initialRoute;
const onViewInit = (view) => {
emit('view:init', view);
Expand Down Expand Up @@ -238,7 +239,9 @@ export default {
};
f7routers.views.push(routerData);
if (f7View && f7View.router && (props.url || props.main)) {
initialPage = getRouterInitialComponent(f7View.router, initialPageComponent);
const initialData = getRouterInitialComponent(f7View.router, initialPageComponent);
initialPage = initialData.initialPage;
initialRoute = initialData.initialRoute;
}
}
Expand Down Expand Up @@ -289,13 +292,19 @@ export default {
f7View.init(elRef.value);
if (initialPage) {
initialPage.el = f7View.router.currentPageEl;
if (initialRoute && initialRoute.route && initialRoute.route.keepAlive) {
initialRoute.route.keepAliveData = { pageEl: initialPage.el };
}
}
}, 100);
});
} else {
f7View.init(elRef.value);
if (initialPage) {
initialPage.el = f7View.router.currentPageEl;
if (initialRoute && initialRoute.route && initialRoute.route.keepAlive) {
initialRoute.route.keepAliveData = { pageEl: initialPage.el };
}
}
}
} else {
Expand Down
5 changes: 4 additions & 1 deletion src/vue/shared/get-router-initial-component.js
Original file line number Diff line number Diff line change
Expand Up @@ -35,5 +35,8 @@ export const getRouterInitialComponent = (router, initialComponent) => {
},
};
}
return initialComponentData;
return {
initialPage: initialComponentData,
initialRoute,
};
};

0 comments on commit 171ca2a

Please sign in to comment.