Skip to content

Commit 19bac46

Browse files
authored
Merge pull request #2038 from umbraco/v14/bugfix/fallback-to-layout-columns
Block Grid: fallback to layout columns if no proper options
2 parents 4a1e4f8 + 5ca6ba1 commit 19bac46

File tree

2 files changed

+18
-19
lines changed

2 files changed

+18
-19
lines changed

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

Lines changed: 14 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,
@@ -230,16 +230,15 @@ export class UmbBlockGridEntryContext
230230
this.observe(
231231
observeMultiple([this.minMaxRowSpan, this.rowSpan]),
232232
([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-
}
233+
if (!minMax || rowSpan === undefined) return;
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+
});
243242
}
244243
},
245244
'observeRowSpanValidation',
@@ -259,10 +258,8 @@ export class UmbBlockGridEntryContext
259258
return newColumnSpan;
260259
}
261260
} else {
262-
// Reset to the layoutColumns.
263-
if (layoutColumns !== columnSpan) {
264-
return layoutColumns;
265-
}
261+
// Fallback to the layoutColumns.
262+
return layoutColumns;
266263
}
267264
return columnSpan;
268265
}

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -307,6 +307,9 @@ export abstract class UmbBlockEntryContext<
307307
},
308308
'observeContent',
309309
);
310+
/*
311+
312+
This two way binding does not work well, might need to further investigate what the exact problem is.
310313
this.observe(
311314
this.content,
312315
(content) => {
@@ -316,6 +319,7 @@ export abstract class UmbBlockEntryContext<
316319
},
317320
'observeInternalContent',
318321
);
322+
*/
319323

320324
// observe settings:
321325
const settingsUdi = this._layout.value?.settingsUdi;
@@ -351,8 +355,6 @@ export abstract class UmbBlockEntryContext<
351355
this.observe(
352356
this._manager.contentTypeOf(contentTypeKey),
353357
(contentType) => {
354-
//this.#contentElementTypeAlias.setValue(contentType?.alias);
355-
//this.#contentElementTypeName.setValue(contentType?.name);
356358
this.#contentElementType.setValue(contentType);
357359
this._gotContentType(contentType);
358360
},

0 commit comments

Comments
 (0)