Skip to content

Commit f5eeae8

Browse files
committed
Layout Groups #6
- Refactor conditions and variables model for publishing.
1 parent 6e62f12 commit f5eeae8

File tree

3 files changed

+27
-19
lines changed

3 files changed

+27
-19
lines changed

lib/src/model/sdk_publish_model.dart

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -471,11 +471,12 @@ class SDKPublishUpdates with EquatableMixin {
471471
/// A model that defines variables for a layout.
472472
@JsonSerializable()
473473
class SDKLayoutVariables extends PrivacyBase {
474-
/// The id of the canvas. Can be layout id for backwards compatibility.
474+
/// The id of the layout.
475475
final String id;
476476

477477
/// The variables that are defined for this layout.
478-
final Map<String, VariableData> variables;
478+
/// CanvasID -> (VariableID -> VariableData)
479+
final Map<String, Map<String, VariableData>> variables;
479480

480481
/// Creates a new instance of [SDKLayoutVariables].
481482
const SDKLayoutVariables({
@@ -492,7 +493,7 @@ class SDKLayoutVariables extends PrivacyBase {
492493
/// copyWith
493494
SDKLayoutVariables copyWith({
494495
String? id,
495-
Map<String, VariableData>? variables,
496+
Map<String, Map<String, VariableData>>? variables,
496497
String? owner,
497498
Set<String>? editors,
498499
Set<String>? viewers,
@@ -524,11 +525,12 @@ class SDKLayoutVariables extends PrivacyBase {
524525
/// A model that defines variables for a layout.
525526
@JsonSerializable()
526527
class SDKLayoutConditions extends PrivacyBase {
527-
/// The id of the canvas. Can be layout id for backwards compatibility.
528+
/// The id of the layout.
528529
final String id;
529530

530531
/// The conditions that are defined for this layout.
531-
final Map<String, BaseCondition> conditions;
532+
/// CanvasID -> (ConditionID -> ConditionData)
533+
final Map<String, Map<String, BaseCondition>> conditions;
532534

533535
/// Creates a new instance of [SDKLayoutConditions].
534536
const SDKLayoutConditions({
@@ -545,7 +547,7 @@ class SDKLayoutConditions extends PrivacyBase {
545547
/// copyWith
546548
SDKLayoutConditions copyWith({
547549
String? id,
548-
Map<String, BaseCondition>? conditions,
550+
Map<String, Map<String, BaseCondition>>? conditions,
549551
String? owner,
550552
Set<String>? editors,
551553
Set<String>? viewers,

lib/src/model/sdk_publish_model.g.dart

Lines changed: 16 additions & 7 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/src/ui/layout_builder.dart

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -205,9 +205,7 @@ class _CodelesslyLayoutBuilderState extends State<CodelesslyLayoutBuilder> {
205205

206206
// Uses layout id for backwards compatibility.
207207
final Map<String, VariableData> variablesMap =
208-
(publishModel.variables[widget.canvasId] ??
209-
publishModel.variables[widget.layout.id])
210-
?.variables ??
208+
publishModel.variables[widget.layout.id]?.variables[widget.canvasId] ??
211209
{};
212210

213211
// Clear all the variables that are not api variables. We persist api
@@ -224,9 +222,8 @@ class _CodelesslyLayoutBuilderState extends State<CodelesslyLayoutBuilder> {
224222
}
225223

226224
// Uses layout id for backwards compatibility.
227-
final conditions = (publishModel.conditions[widget.canvasId] ??
228-
publishModel.conditions[widget.layout.id])
229-
?.conditions ??
225+
final conditions = publishModel
226+
.conditions[widget.layout.id]?.conditions[widget.canvasId] ??
230227
{};
231228
codelesslyContext.conditions.clear();
232229
codelesslyContext.conditions.addAll(conditions);

0 commit comments

Comments
 (0)