From 525dc79199186ac2f6786978af4a4c15d9063251 Mon Sep 17 00:00:00 2001 From: Andreas Kugel Date: Thu, 5 May 2022 11:47:23 +0200 Subject: [PATCH 1/2] Fix for issue #206, Carousel not closed properly after route change --- packages/coreui-vue/src/components/carousel/CCarousel.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/coreui-vue/src/components/carousel/CCarousel.ts b/packages/coreui-vue/src/components/carousel/CCarousel.ts index 3097fcb9..af41a572 100644 --- a/packages/coreui-vue/src/components/carousel/CCarousel.ts +++ b/packages/coreui-vue/src/components/carousel/CCarousel.ts @@ -12,6 +12,8 @@ import { } from 'vue' const isVisible = (element: HTMLDivElement) => { + // check e ei not null to prevent error when leaving page + if ((element || "") === "") return false const rect = element.getBoundingClientRect() return ( rect.top >= 0 && From 933e0b509bb43548943651671c0f1003209e2f1f Mon Sep 17 00:00:00 2001 From: Andreas Kugel Date: Thu, 5 May 2022 12:30:20 +0200 Subject: [PATCH 2/2] isVisble correction with try/catch --- .../src/components/carousel/CCarousel.ts | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/packages/coreui-vue/src/components/carousel/CCarousel.ts b/packages/coreui-vue/src/components/carousel/CCarousel.ts index af41a572..545e12af 100644 --- a/packages/coreui-vue/src/components/carousel/CCarousel.ts +++ b/packages/coreui-vue/src/components/carousel/CCarousel.ts @@ -13,14 +13,17 @@ import { const isVisible = (element: HTMLDivElement) => { // check e ei not null to prevent error when leaving page - if ((element || "") === "") return false - const rect = element.getBoundingClientRect() - return ( - rect.top >= 0 && - rect.left >= 0 && - rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && - rect.right <= (window.innerWidth || document.documentElement.clientWidth) - ) + try { + const rect = element.getBoundingClientRect() + return ( + rect.top >= 0 && + rect.left >= 0 && + rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && + rect.right <= (window.innerWidth || document.documentElement.clientWidth) + ) + } catch(e:any) { + return false + } } const CCarousel = defineComponent({