okami.mom/albedo
git clone https://git.nkp.pet/okami.mom/albedo
61c43ca
main
1package tui 2 3import ( 4"fmt" 5 6 tea"charm.land/bubbletea/v2" 7) 8 9// Sign-in startup can finish after its screen closes. Cleanup must still run; 10// credential mutation outcomes remain visible without selecting a stale flow. 11func (m * AppModel )handleLoginOutcome (msg tea.Msg ) (bool , tea.Cmd ) { 12switch result := msg .(type ) { 13case signInStartedMsg ,signInStatusMsg ,signInPollMsg : 14var cmd tea.Cmd 15m .Login ,cmd = m .Login .Update (msg ) 16return true ,cmd 17case providerSavedMsg : 18if m .State == AppStateLogin && ! m .Login .closed && result .Gen == m .Login .Generation { 19return false ,nil 20 } 21if result .Err != nil { 22message := operationError (result .Err ,"Provider update failed: " ,"Provider update may have been accepted; check your accounts before trying again." ) 23m .AddError (message ) 24if m .State == AppStateLogin { 25m .Login .Error = message 26 } 27 }else { 28m .AddNotice (fmt .Sprintf ("Provider %s saved." ,result .Name )) 29 } 30return true ,nil 31case signInsLoadedMsg : 32if ! result .Mutation || m .State == AppStateLogin && ! m .Login .closed && result .Gen == m .Login .Generation { 33return false ,nil 34 } 35if result .Err != nil { 36message := operationError (result .Err ,"Account update failed: " ,"Account update may have been accepted; check your accounts before trying again." ) 37m .AddError (message ) 38if m .State == AppStateLogin { 39m .Login .Error = message 40 } 41 }else { 42m .AddNotice ("Account update saved." ) 43 } 44return true ,nil 45 } 46return false ,nil 47}