Skip to content
This repository was archived by the owner on Nov 6, 2025. It is now read-only.

Commit 1ff8f09

Browse files
committed
fallback to layout columns
1 parent c0a342b commit 1ff8f09

File tree

1 file changed

+15
-17
lines changed

1 file changed

+15
-17
lines changed

src/packages/block/block-grid/context/block-grid-entry.context.ts

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)