created post-initialization state
This commit is contained in:
parent
233a559aaf
commit
b0487d4d03
|
@ -24,7 +24,7 @@ License along with this program. If not, see
|
||||||
|
|
||||||
module Password.App.Draw (drawFunc) where
|
module Password.App.Draw (drawFunc) where
|
||||||
|
|
||||||
import Brick (Widget, txt, vBox)
|
import Brick (Widget, emptyWidget, txt, vBox)
|
||||||
import Brick.Forms (renderForm)
|
import Brick.Forms (renderForm)
|
||||||
import Lens.Micro ((^.))
|
import Lens.Micro ((^.))
|
||||||
|
|
||||||
|
@ -34,6 +34,7 @@ import Password.App.Types
|
||||||
drawFunc :: AppState -> [Widget ResName]
|
drawFunc :: AppState -> [Widget ResName]
|
||||||
drawFunc s = case s^.appMode of
|
drawFunc s = case s^.appMode of
|
||||||
InitMode is -> drawPassForm is
|
InitMode is -> drawPassForm is
|
||||||
|
_ -> [emptyWidget]
|
||||||
|
|
||||||
drawPassForm :: InitState -> [Widget ResName]
|
drawPassForm :: InitState -> [Widget ResName]
|
||||||
drawPassForm is =
|
drawPassForm is =
|
||||||
|
|
|
@ -80,6 +80,7 @@ fallbackHandler :: BrickEvent ResName () -> EventM ResName AppState ()
|
||||||
fallbackHandler e = gets (^.appMode) >>= \case
|
fallbackHandler e = gets (^.appMode) >>= \case
|
||||||
InitMode _ -> zoom (appMode.initState.setPassForm) $
|
InitMode _ -> zoom (appMode.initState.setPassForm) $
|
||||||
handleFormEvent e
|
handleFormEvent e
|
||||||
|
_ -> return ()
|
||||||
|
|
||||||
getKeyDispatcher
|
getKeyDispatcher
|
||||||
:: AppState
|
:: AppState
|
||||||
|
|
|
@ -29,6 +29,7 @@ module Password.App.Types (
|
||||||
AppState (..),
|
AppState (..),
|
||||||
AppMode (..),
|
AppMode (..),
|
||||||
InitState (..),
|
InitState (..),
|
||||||
|
RunState (..),
|
||||||
ResName (..),
|
ResName (..),
|
||||||
-- * Lenses
|
-- * Lenses
|
||||||
-- ** AppState
|
-- ** AppState
|
||||||
|
@ -37,9 +38,12 @@ module Password.App.Types (
|
||||||
appMode,
|
appMode,
|
||||||
-- ** AppMode
|
-- ** AppMode
|
||||||
initState,
|
initState,
|
||||||
|
runState,
|
||||||
-- ** InitState
|
-- ** InitState
|
||||||
setPassForm,
|
setPassForm,
|
||||||
spfError,
|
spfError,
|
||||||
|
-- ** RunState
|
||||||
|
mainPass,
|
||||||
-- * Constructors
|
-- * Constructors
|
||||||
mkInitialState,
|
mkInitialState,
|
||||||
) where
|
) where
|
||||||
|
@ -65,10 +69,14 @@ data AppState = AppState
|
||||||
}
|
}
|
||||||
|
|
||||||
-- | The applicaiton's mode
|
-- | The applicaiton's mode
|
||||||
newtype AppMode = InitMode
|
data AppMode
|
||||||
|
= InitMode
|
||||||
{ _initState :: InitState
|
{ _initState :: InitState
|
||||||
-- ^ Initialization state
|
-- ^ Initialization state
|
||||||
}
|
} -- ^ initialization mode (master password form)
|
||||||
|
| RunMode
|
||||||
|
{ _runState :: RunState
|
||||||
|
} -- ^ Running mode
|
||||||
|
|
||||||
-- | Application initialization state
|
-- | Application initialization state
|
||||||
data InitState = InitState
|
data InitState = InitState
|
||||||
|
@ -78,6 +86,12 @@ data InitState = InitState
|
||||||
-- ^ error message
|
-- ^ error message
|
||||||
}
|
}
|
||||||
|
|
||||||
|
-- | State of the initialized application
|
||||||
|
newtype RunState = RunState
|
||||||
|
{ _mainPass :: String
|
||||||
|
-- ^ The main password
|
||||||
|
}
|
||||||
|
|
||||||
-- | Resource identifier
|
-- | Resource identifier
|
||||||
data ResName
|
data ResName
|
||||||
= PassField
|
= PassField
|
||||||
|
@ -88,6 +102,7 @@ concat <$> mapM makeLenses
|
||||||
[ ''AppState
|
[ ''AppState
|
||||||
, ''AppMode
|
, ''AppMode
|
||||||
, ''InitState
|
, ''InitState
|
||||||
|
, ''RunState
|
||||||
]
|
]
|
||||||
|
|
||||||
-- | Builds an initial state
|
-- | Builds an initial state
|
||||||
|
|
Loading…
Reference in New Issue
Block a user