refactor(adminui): trim inline-script label + null-case test + helper-proxy note
Code-review nits: trim the seed name so the in-session dropdown label matches the server-trimmed persisted name; add a null-selectedId test for ResolveScriptLabel; and note in CreateNewScriptAsync that the ordering invariant is proxied by the pure helper (AdminUI has no bUnit).
This commit is contained in:
@@ -321,7 +321,10 @@
|
||||
_scriptCreateError = null;
|
||||
try
|
||||
{
|
||||
var seedName = string.IsNullOrWhiteSpace(_form.Name) ? "New script" : $"{_form.Name} script";
|
||||
// Trim so the local dropdown label matches what CreateScriptAsync persists (it Trim()s
|
||||
// the name server-side) — otherwise stray whitespace makes the in-session label drift
|
||||
// from every later modal open.
|
||||
var seedName = string.IsNullOrWhiteSpace(_form.Name) ? "New script" : $"{_form.Name.Trim()} script";
|
||||
var result = await Svc.CreateScriptAsync(seedName);
|
||||
if (!result.Ok || string.IsNullOrEmpty(result.CreatedId))
|
||||
{
|
||||
@@ -331,7 +334,9 @@
|
||||
|
||||
// Add the new script to the options list BEFORE setting the selected value so the
|
||||
// <InputSelect> can resolve the label on first render — if we set ScriptId first the
|
||||
// dropdown has no matching <option> yet and shows a blank/stale label.
|
||||
// dropdown has no matching <option> yet and shows a blank/stale label. This ordering
|
||||
// invariant is unit-tested via VirtualTagModalHelpers.ResolveScriptLabel (the AdminUI
|
||||
// has no bUnit harness, so the pure helper proxies the render-cycle contract).
|
||||
if (!_scripts.Any(s => s.Id == result.CreatedId))
|
||||
{
|
||||
_scripts.Add((result.CreatedId, $"{seedName} (CSharp)"));
|
||||
|
||||
Reference in New Issue
Block a user