Personalization of Carousel on AEM 6.3 - carousel

I have a requirement where we need to personalize the carousel in the home page, based on the location from where the website is accessed.
For this I have created required segments and activity and brand, and targeted to the carousel component. The issue I am facing here is that the /etc/cloudsettings/default/contexthub.kernel.js is loading after all the client libs in my project is loaded, so the carousel images are getting updated but not displayed in the form of slides, but one below the other.
Is there any event which can be captured by js and then reload the owl-carousel.js?
Could someone please suggest any fix for this?

Related

Images not being cached between navigations

I've got a project im working on https://github.com/Bijig0/liner_rn When I click on a 'Queue' button and it navigates to a details page, I want the image to be cached from the list page to the details page.
i.e
Currently it is like this https://youtube.com/shorts/L3hTAuyqxRM
I want it to be like this https://youtube.com/shorts/DCkFUixvAoU
(Associated Snack: https://snack.expo.dev/#meg_hidey/4b5ac4?platform=ios)
I'm not sure what is causing the issue in my actual project for images to not load like they are in the snack if someone could help point me in the right direction.
You can use react-native-fast-image, it is a performant React Native component for loading images. FastImage aggressively caches all loaded images.
https://www.npmjs.com/package/react-native-fast-image

The custom layout isn't loading automatically

I have created a custom layout in Layout.hs. This is applied to a reporting page that has a different styling (CSS) and JS from the rest of the application.
The report page is accessed via link in the application.
The problem is that when landing on the report page the custom layout (CSS and JS) isn't applied automatically. It only kicks in after a manual refresh.
Any ideas how to fix this?

Nested Routes in Gridsome?

In Gridsome, I am basically looking for Vue's nested route functionality (or Nuxt's child-view) to achieve something like this /:userId/profile and /:userId/posts for example. And since Gridsome uses Vue Router there should be a way to achieve this I believe
Let me try to explain what I am trying to build with Gridsome:
At mywebsite.com/ I want to show a Grid of images showing thumbnails of my video portfolio. When you then click on a thumbnail I want a modal to pop-up showing the video. The modal is semi transparent showing the portfolio in the background. So far so good.
But for people to be able to share the URL of the respective video, I need the path changing to mywebsite.com/video-1 and so on. When I then close the modal the path should be mywebsite.com/ again. This is something I already achieved within Nuxt with <child-view>.
Is there some similar functionality in Gridsome? I appreciate your help.
From the feedback you got here:
Gridsome doesn't support child routes yet. But you can kind of achieve what you want if you create a new content type called User and add each user as a node. Then generate pages for them with the Pages API. The pages you create can share a layout component.
In the same way, you can also generate pages for each video for having direct URLs to them. And use the $fetch() method to load a video in a pop-up. Or just query the videos in the front-page query instead of using $fetch().

Showing loading animation until content loaded

I have been using Nuxtjs for a while in many of my projects, but I can't seem to figure how to achieve this. I want to prevent the user from viewing a content web they load my website until everything is ready, like what happens in the Google Adsense website https://ads.google.com. I want to display an animation until everything is loaded before removing the animation

How can I disable the mobile theme for a single page?

I recently uploaded custom html and css for one page on my big commerce store.The page is responsive, and mobile optimized. It works on desktops, but is over ridden by the generic mobile theme that is installed when I view it on my phone. How can I stop this page from being over ridden by the mobile version, without disabling the mobile theme completely?
Thanks,
There are 2 methods off the top of my head.
First method
Any HTML file on BigCommerce, with a mobile/responsive theme, has 2 copies of some part of the HTML page. The mobile HTML/CSS is simply triggered by an HTML class mobile on the HTML copy that is there to be only seen on mobile, which contains one copy of relevant HTML (ie, menus, logo, shopping cart icon and link, etc).
Another HTML block has class desktop and is only triggered for certain screen sizes (similar to mobile), and only shows it's desktop version of the HTMl when the screen size conditions are met.
So if screen is small, in your responsive.css file, .mobile is display:none;, while desktop class has all the proper visible CSS.
On the reverse, on desktop-sized screens, the desktop HTML is properly styled, while the mobile class HTML block is display:none.
So, in this first solution, you would simply place a copy of your custom HTMl and style it properly for display on mobile screens. This way, the mobile-styled version will only show up on mobile devices, while the desktop properly-styled version will only show up on dektop size screens. As far as BC goes, I think this is the optimal method.
Second method
You can make a custom template for the page in question. So if it's product.html and you want it custom for some specific product(s), you would create a product-custom.html and place it in your WebDav "/template/Panels" folder.
Now, on your product(s) which must use the new custom HTML, go to their page and scroll to the bottom and you will see a template file selection box, which should say product.html. Change that to your new product-custom.html.
Now, as for the custom file, simply edit the HTML/CSS rules revolving around .desktop and .mobile class (possibly just removing them all together) so that when a page is loaded on a small screen, the CSS rule to hide the desktop version won't apply. At the same time, you should delete the duplicate .mobile class HTML as it will no longer be needed.
This second method is much more flexible but also takes more work and is generally much more messy and requires much more maintenance.
I strongly recommend method #1.
Let me know if this helps and if you have nay other questions.