Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -245,12 +245,12 @@ LayoutEvaluatorState state
),
};

if (context?.Component is null)
if (context is null)
{
throw new ArgumentException("The component expression requires a component context");
}

var targetContext = await state.GetComponentContext(context.Component.PageId, componentId, context.RowIndices);
var targetContext = await state.GetComponentContext(context.Component?.PageId, componentId, context.RowIndices);

if (targetContext is null)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ public void GetComponent(string pageName, string componentId)
/// Get a specific component context from the state
/// </summary>
public async Task<ComponentContext?> GetComponentContext(
string pageName,
string? pageName,
string componentId,
int[]? rowIndexes = null
)
Expand All @@ -142,7 +142,8 @@ public void GetComponent(string pageName, string componentId)
{
return filteredContexts[0];
}
if (filteredContexts.Count(c => c.Component?.PageId == pageName) == 1)

if (pageName is not null && filteredContexts.Count(c => c.Component?.PageId == pageName) == 1)
{
// look first at the current page in case of duplicate ids (for backwards compatibility).
return filteredContexts.First(c => c.Component?.PageId == pageName);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -176,8 +176,5 @@ public class ExpectedObject

[JsonPropertyName("field")]
public required string Field { get; set; }

[JsonPropertyName("componentId")]
public required string ComponentId { get; set; }
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
{
"name": "Should return null when looking up hidden component",
"expects": [
{
"message": "Navnet ditt kan ikke være feil.",
"severity": "error",
"field": "personer[0].navn",
"componentId": "person-navn"
}
],
"validationConfig": {
"$schema": "https://altinncdn.no/toolkits/altinn-app-frontend/4/schemas/json/validation/validation.schema.v1.json",
"validations": {
"personer.navn": [
{
"message": "Navnet ditt kan ikke være feil.",
"severity": "error",
"condition": ["equals", ["component", "person-navn"], "feil"]
}
]
}
},
"formData": {
"personer": [
{
"altinnRowId": "person0",
"navn": "feil",
"utenNavn": false
},
{
"altinnRowId": "person1",
"navn": "feil",
"utenNavn": true
},
{
"altinnRowId": "person2",
"navn": "riktig",
"utenNavn": false
}
]
},
"layouts": {
"Page": {
"$schema": "https://altinncdn.no/schemas/json/layout/layout.schema.v1.json",
"data": {
"layout": [
{
"id": "personer",
"type": "RepeatingGroup",
"dataModelBindings": {
"group": "personer"
},
"children": [
"person-navn",
"uten-navn"
]
},
{
"id": "person-navn",
"type": "Input",
"dataModelBindings": {
"simpleBinding": "personer.navn"
},
"hidden": ["equals", ["component", "uten-navn"], true]
},
{
"id": "uten-navn",
"type": "Checkboxes",
"dataModelBindings": {
"simpleBinding": "personer.utenNavn"
},
"options": [
{ "label": "Ja", "value": true },
{ "label": "Nei", "value": false }
]
}
]
}
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -3072,7 +3072,7 @@ namespace Altinn.App.Core.Internal.Expressions
public int CountDataElements(string dataTypeId) { }
[System.Obsolete("You need to get a context, not a component", true)]
public void GetComponent(string pageName, string componentId) { }
public System.Threading.Tasks.Task<Altinn.App.Core.Models.Expressions.ComponentContext?> GetComponentContext(string pageName, string componentId, int[]? rowIndexes = null) { }
public System.Threading.Tasks.Task<Altinn.App.Core.Models.Expressions.ComponentContext?> GetComponentContext(string? pageName, string componentId, int[]? rowIndexes = null) { }
public System.Threading.Tasks.Task<System.Collections.Generic.List<Altinn.App.Core.Models.Expressions.ComponentContext>> GetComponentContexts() { }
public string? GetFrontendSetting(string key) { }
public string? GetGatewayAction() { }
Expand Down
Loading