Fix: use Value/ValueChanged callback pattern for MultiLangInput binding instead of inline lambda

This commit is contained in:
Saidamin Kattan
2026-08-08 18:52:40 +03:00
parent ed47a77b73
commit a9c8dfe24a
13 changed files with 16 additions and 10 deletions
+5 -2
View File
@@ -103,7 +103,7 @@
<div class="badge badge-primary badge-sm">@(_languages[_activeLang])</div>
</h4>
</div>
<MultiLangInput @bind-Value="_names" ActiveCulture="@_activeLang" HideTabs="true"
<MultiLangInput Value="_names" ValueChanged="OnNamesChanged" ActiveCulture="@_activeLang" HideTabs="true"
Placeholder="Enter product name in the selected language..." />
<ValidationMessage For="@(() => _names)" class="text-error text-sm mt-1" />
</div>
@@ -114,7 +114,7 @@
Description
<div class="badge badge-secondary badge-sm">@(_languages[_activeLang])</div>
</h4>
<MultiLangInput @bind-Value="_descriptions" ActiveCulture="@_activeLang" HideTabs="true"
<MultiLangInput Value="_descriptions" ValueChanged="OnDescriptionsChanged" ActiveCulture="@_activeLang" HideTabs="true"
IsTextArea="true" Placeholder="Write a compelling product description..." />
<ValidationMessage For="@(() => _descriptions)" class="text-error text-sm mt-1" />
</div>
@@ -422,6 +422,9 @@
_editContext = new EditContext(product);
}
private void OnNamesChanged(Dictionary<string, string> val) => _names = val;
private void OnDescriptionsChanged(Dictionary<string, string> val) => _descriptions = val;
void SyncTranslations()
{
product.Translations = _languages.Keys.Select(lang => new ProductTranslationVM