1
- export default function Grid ( { swiper, extendParams } ) {
1
+ export default function Grid ( { swiper, extendParams, on } ) {
2
2
extendParams ( {
3
3
grid : {
4
4
rows : 1 ,
@@ -9,6 +9,7 @@ export default function Grid({ swiper, extendParams }) {
9
9
let slidesNumberEvenToRows ;
10
10
let slidesPerRow ;
11
11
let numFullColumns ;
12
+ let wasMultiRow ;
12
13
13
14
const getSpaceBetween = ( ) => {
14
15
let spaceBetween = swiper . params . spaceBetween ;
@@ -96,6 +97,33 @@ export default function Grid({ swiper, extendParams }) {
96
97
snapGrid . push ( ...newSlidesGrid ) ;
97
98
}
98
99
} ;
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 ) ;
99
127
100
128
swiper . grid = {
101
129
initSlides,
0 commit comments