fix: ui: fix state bugs from brick 1 migration (#1889)
This commit is contained in:
parent
67cd6be424
commit
b6353804b8
@ -371,21 +371,24 @@ asHandle ev = do
|
|||||||
list' <- nestEventM' _asList $ handleListEvent (normaliseMovementKeys ev)
|
list' <- nestEventM' _asList $ handleListEvent (normaliseMovementKeys ev)
|
||||||
put' $ ui{aScreen=scr & asList .~ list' & asSelectedAccount .~ selacct }
|
put' $ ui{aScreen=scr & asList .~ list' & asSelectedAccount .~ selacct }
|
||||||
|
|
||||||
MouseDown{} -> put ui
|
MouseDown{} -> return ()
|
||||||
MouseUp{} -> put ui
|
MouseUp{} -> return ()
|
||||||
AppEvent _ -> put ui
|
AppEvent _ -> return ()
|
||||||
|
|
||||||
_ -> dlogUiTraceM "asHandle 2" >> errorWrongScreenType "event handler"
|
_ -> dlogUiTraceM "asHandle 2" >> errorWrongScreenType "event handler"
|
||||||
|
|
||||||
|
asEnterRegister :: Day -> AccountName -> UIState -> EventM Name UIState ()
|
||||||
asEnterRegister d selacct ui = do
|
asEnterRegister d selacct ui = do
|
||||||
rsCenterAndContinue $
|
dlogUiTraceM "asEnterRegister"
|
||||||
-- flip rsHandle (VtyEvent (EvKey (KChar 'l') [MCtrl])) $
|
let
|
||||||
screenEnter d regscr ui
|
|
||||||
where
|
|
||||||
regscr = rsSetAccount selacct isdepthclipped registerScreen
|
regscr = rsSetAccount selacct isdepthclipped registerScreen
|
||||||
|
where
|
||||||
isdepthclipped = case getDepth ui of
|
isdepthclipped = case getDepth ui of
|
||||||
Just d -> accountNameLevel selacct >= d
|
Just d -> accountNameLevel selacct >= d
|
||||||
Nothing -> False
|
Nothing -> False
|
||||||
|
let ui' = screenEnter d regscr ui
|
||||||
|
put' ui'
|
||||||
|
rsCenterSelection ui'
|
||||||
|
|
||||||
asSetSelectedAccount a s@AccountsScreen{} = s & asSelectedAccount .~ a
|
asSetSelectedAccount a s@AccountsScreen{} = s & asSelectedAccount .~ a
|
||||||
asSetSelectedAccount _ s = s
|
asSetSelectedAccount _ s = s
|
||||||
|
|||||||
@ -166,8 +166,8 @@ runBrickUi uopts@UIOpts{uoCliOpts=copts@CliOpts{inputopts_=_iopts,reportspec_=rs
|
|||||||
appStartEvent = return ()
|
appStartEvent = return ()
|
||||||
, appAttrMap = const $ fromMaybe defaultTheme $ getTheme =<< uoTheme uopts'
|
, appAttrMap = const $ fromMaybe defaultTheme $ getTheme =<< uoTheme uopts'
|
||||||
, appChooseCursor = showFirstCursor
|
, appChooseCursor = showFirstCursor
|
||||||
, appHandleEvent = sHandle (aScreen ui)
|
, appHandleEvent = \ev -> do ui <- get; sHandle (aScreen ui) ev
|
||||||
, appDraw = sDraw (aScreen ui)
|
, appDraw = \ui -> sDraw (aScreen ui) ui
|
||||||
}
|
}
|
||||||
|
|
||||||
-- print (length (show ui)) >> exitSuccess -- show any debug output to this point & quit
|
-- print (length (show ui)) >> exitSuccess -- show any debug output to this point & quit
|
||||||
|
|||||||
@ -425,8 +425,7 @@ rsHandle ev = do
|
|||||||
|
|
||||||
isBlankElement mel = ((rsItemDate . snd) <$> mel) == Just ""
|
isBlankElement mel = ((rsItemDate . snd) <$> mel) == Just ""
|
||||||
|
|
||||||
rsCenterAndContinue ui = do
|
rsCenterSelection :: UIState -> EventM Name UIState ()
|
||||||
scrollSelectionToMiddle $ rsList $ aScreen ui
|
rsCenterSelection = scrollSelectionToMiddle . rsList . aScreen
|
||||||
put ui
|
|
||||||
|
|
||||||
rsListSize = V.length . V.takeWhile ((/="").rsItemDate) . listElements
|
rsListSize = V.length . V.takeWhile ((/="").rsItemDate) . listElements
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user