Skip to content

Commit 5f606b4

Browse files
authored
Merge pull request #97 from Stackla/add-get-instance-to-exposed-libs
feat: add getInstance function to swiper extension exports
2 parents 5263b53 + 7ed0555 commit 5f606b4

File tree

3 files changed

+24
-3
lines changed

3 files changed

+24
-3
lines changed

src/libs/extensions/swiper/index.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,6 @@ export {
33
isSwiperLoading,
44
updateSwiperInstance,
55
setSwiperLoadingStatus,
6-
refreshSwiper
6+
refreshSwiper,
7+
getInstance
78
} from "./swiper.extension"

src/libs/extensions/swiper/swiper.extension.ts

+15
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,21 @@ function addTilesUpdatedListener(id: string, getSlides?: (tiles: Record<string,
2626

2727
swiper?.update()
2828
})
29+
30+
if (!swiper) {
31+
console.warn("Swiper instance not found")
32+
return
33+
}
34+
35+
const observer = new MutationObserver(() => {
36+
swiper.update()
37+
sdk.querySelector(".tile-loading:not(.hidden)")?.classList.add("hidden")
38+
})
39+
40+
observer.observe(sdk.querySelector(".ugc-tiles")!, {
41+
childList: true,
42+
subtree: true
43+
})
2944
}
3045

3146
export function initializeSwiper({

src/widget-loader.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,15 @@ export interface EnforcedWidgetSettings<C> extends Required<MyWidgetSettings<C>>
126126
}
127127

128128
function loadMasonryCallbacks<C>(settings: EnforcedWidgetSettings<C>) {
129-
settings.callbacks.onTilesUpdated.push(() => {
129+
const tilesUpdatedObserver = new MutationObserver(() => {
130130
renderMasonryLayout()
131131
})
132132

133+
tilesUpdatedObserver.observe(sdk.querySelector(".ugc-tiles")!, {
134+
childList: true,
135+
subtree: true
136+
})
137+
133138
settings.callbacks.onTileBgImgRenderComplete.push(() => {
134139
handleAllTileImageRendered()
135140
setTimeout(handleAllTileImageRendered, 1000)
@@ -143,7 +148,7 @@ function loadMasonryCallbacks<C>(settings: EnforcedWidgetSettings<C>) {
143148

144149
const grid = sdk.querySelector(".grid")
145150
const observer = new ResizeObserver(() => {
146-
renderMasonryLayout(false, true)
151+
renderMasonryLayout()
147152
})
148153

149154
observer.observe(grid)

0 commit comments

Comments
 (0)