Skip to content

Commit 908becc

Browse files
committed
fix(core): remove grid class on rows change
fixes #7053
1 parent 5ca46b6 commit 908becc

File tree

1 file changed

+29
-1
lines changed

1 file changed

+29
-1
lines changed

src/modules/grid/grid.mjs

+29-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
export default function Grid({ swiper, extendParams }) {
1+
export default function Grid({ swiper, extendParams, on }) {
22
extendParams({
33
grid: {
44
rows: 1,
@@ -9,6 +9,7 @@ export default function Grid({ swiper, extendParams }) {
99
let slidesNumberEvenToRows;
1010
let slidesPerRow;
1111
let numFullColumns;
12+
let wasMultiRow;
1213

1314
const getSpaceBetween = () => {
1415
let spaceBetween = swiper.params.spaceBetween;
@@ -96,6 +97,33 @@ export default function Grid({ swiper, extendParams }) {
9697
snapGrid.push(...newSlidesGrid);
9798
}
9899
};
100+
const onInit = () => {
101+
wasMultiRow = swiper.params.grid && swiper.params.grid.rows > 1;
102+
};
103+
104+
const onUpdate = () => {
105+
const { params, el } = swiper;
106+
const isMultiRow = params.grid && params.grid.rows > 1;
107+
108+
if (wasMultiRow && !isMultiRow) {
109+
el.classList.remove(
110+
`${params.containerModifierClass}grid`,
111+
`${params.containerModifierClass}grid-column`,
112+
);
113+
numFullColumns = 1;
114+
swiper.emitContainerClasses();
115+
} else if (!wasMultiRow && isMultiRow) {
116+
el.classList.add(`${params.containerModifierClass}grid`);
117+
if (params.grid.fill === 'column') {
118+
el.classList.add(`${params.containerModifierClass}grid-column`);
119+
}
120+
swiper.emitContainerClasses();
121+
}
122+
wasMultiRow = isMultiRow;
123+
};
124+
125+
on('init', onInit);
126+
on('update', onUpdate);
99127

100128
swiper.grid = {
101129
initSlides,

0 commit comments

Comments
 (0)