// txtName.Default
If(IsBlank(locDraft), locSelected.Name, Text(locDraft.name))

// txtCity.Default
If(IsBlank(locDraft), locSelected.City, Text(locDraft.city))

// cmbState.DefaultSelectedItems: store ids, look the record up again
If(
    IsBlank(locDraft),
    [locSelected.State],
    [LookUp(States, State = IfError(GUID(Text(locDraft.stateId)), Blank()))]
)

// Any in-screen selection change (gallery OnSelect, Back) clears the draft for this screen
UpdateContext({locDraft: Blank()})

// btnSave.DisplayMode: require an explicit review/discard when the record changed.
If(locRecoveryConflict, DisplayMode.Disabled, DisplayMode.Edit)
