@@ -30,8 +30,8 @@ export class UmbBlockGridEntryContext
3030 implements UmbBlockGridScalableContext
3131{
3232 //
33- readonly columnSpan = this . _layout . asObservablePart ( ( x ) => x ? .columnSpan ) ;
34- readonly rowSpan = this . _layout . asObservablePart ( ( x ) => x ? .rowSpan ) ;
33+ readonly columnSpan = this . _layout . asObservablePart ( ( x ) => x ? x . columnSpan ?? null : undefined ) ;
34+ readonly rowSpan = this . _layout . asObservablePart ( ( x ) => x ? x . rowSpan ?? null : undefined ) ;
3535 readonly layoutAreas = this . _layout . asObservablePart ( ( x ) => x ?. areas ) ;
3636 readonly columnSpanOptions = this . _blockType . asObservablePart ( ( x ) => x ?. columnSpanOptions ?? [ ] ) ;
3737 readonly areaTypeGridColumns = this . _blockType . asObservablePart ( ( x ) => x ?. areaGridColumns ) ;
@@ -208,7 +208,7 @@ export class UmbBlockGridEntryContext
208208 this . observe (
209209 observeMultiple ( [ this . columnSpan , this . relevantColumnSpanOptions , this . _entries . layoutColumns ] ) ,
210210 ( [ columnSpan , relevantColumnSpanOptions , layoutColumns ] ) => {
211- if ( ! layoutColumns ) return ;
211+ if ( ! layoutColumns || columnSpan === undefined ) return ;
212212 const newColumnSpan = this . #calcColumnSpan(
213213 columnSpan ?? layoutColumns ,
214214 relevantColumnSpanOptions ,
@@ -217,6 +217,7 @@ export class UmbBlockGridEntryContext
217217 if ( newColumnSpan !== columnSpan ) {
218218 const layoutValue = this . _layout . getValue ( ) ;
219219 if ( ! layoutValue ) return ;
220+ console . log ( "newColumnSpan" , newColumnSpan )
220221 this . _layout . setValue ( {
221222 ...layoutValue ,
222223 columnSpan : newColumnSpan ,
@@ -230,16 +231,15 @@ export class UmbBlockGridEntryContext
230231 this . observe (
231232 observeMultiple ( [ this . minMaxRowSpan , this . rowSpan ] ) ,
232233 ( [ minMax , rowSpan ] ) => {
233- if ( minMax ) {
234- const newRowSpan = Math . max ( minMax [ 0 ] , Math . min ( rowSpan ?? 1 , minMax [ 1 ] ) ) ;
235- if ( newRowSpan !== rowSpan ) {
236- const layoutValue = this . _layout . getValue ( ) ;
237- if ( ! layoutValue ) return ;
238- this . _layout . setValue ( {
239- ...layoutValue ,
240- rowSpan : newRowSpan ,
241- } ) ;
242- }
234+ if ( ! minMax || rowSpan === undefined ) return ;
235+ const newRowSpan = Math . max ( minMax [ 0 ] , Math . min ( rowSpan ?? 1 , minMax [ 1 ] ) ) ;
236+ if ( newRowSpan !== rowSpan ) {
237+ const layoutValue = this . _layout . getValue ( ) ;
238+ if ( ! layoutValue ) return ;
239+ this . _layout . setValue ( {
240+ ...layoutValue ,
241+ rowSpan : newRowSpan ,
242+ } ) ;
243243 }
244244 } ,
245245 'observeRowSpanValidation' ,
@@ -259,10 +259,8 @@ export class UmbBlockGridEntryContext
259259 return newColumnSpan ;
260260 }
261261 } else {
262- // Reset to the layoutColumns.
263- if ( layoutColumns !== columnSpan ) {
264- return layoutColumns ;
265- }
262+ // Fallback to the layoutColumns.
263+ return layoutColumns ;
266264 }
267265 return columnSpan ;
268266 }
0 commit comments