diff options
author | Andrew Cady <d@jerkface.net> | 2022-10-09 17:37:02 -0400 |
---|---|---|
committer | Andrew Cady <d@jerkface.net> | 2022-10-09 17:37:02 -0400 |
commit | 11cd6405359bb6a9010c75880c04359bbb54892d (patch) | |
tree | b831b342465ef3de06c44ddb7f0d8daab4e1aef7 | |
parent | ccaec90a45492a579159e92926bde2b1e3a91311 (diff) |
move lift targets into state
-rwxr-xr-x | repgoal.hs | 22 |
1 files changed, 13 insertions, 9 deletions
@@ -74,11 +74,13 @@ data LiftTarget = LiftTarget { | |||
74 | stats :: [Performance] | 74 | stats :: [Performance] |
75 | } | 75 | } |
76 | 76 | ||
77 | lifts :: [LiftTarget] | 77 | initial :: [LiftTarget] |
78 | lifts = | 78 | initial = |
79 | [ | 79 | [ |
80 | LiftTarget "Deadlift" 345 $ [Achieved 5 360, Achieved 9 315], | 80 | LiftTarget "Deadlift" 360 $ [Achieved 5 360, Achieved 9 315, Achieved 8 345], |
81 | LiftTarget "Press" 130 $ [Achieved 6 130, Achieved 9 120] | 81 | LiftTarget "Press" 135 $ [Achieved 6 130, Achieved 9 120], |
82 | LiftTarget "Squat" 285 $ [Achieved 6 270, Achieved 8 255, Achieved 5 285], | ||
83 | LiftTarget "Bench" 205 $ [Achieved 7 190, Achieved 9 180, Achieved 4 205] | ||
82 | ] | 84 | ] |
83 | 85 | ||
84 | computeRepGoal :: LiftTarget -> (Integer) | 86 | computeRepGoal :: LiftTarget -> (Integer) |
@@ -99,8 +101,8 @@ showRational n = printf format $ (realToFrac :: Rational -> Float) $ n | |||
99 | where | 101 | where |
100 | format = if floor (n * 10) `mod` 10 == (0 :: Integer) then "%.0f" else "%.2f" | 102 | format = if floor (n * 10) `mod` 10 == (0 :: Integer) then "%.0f" else "%.2f" |
101 | 103 | ||
102 | drawUI :: () -> [Widget ()] | 104 | drawUI :: St -> [Widget ()] |
103 | drawUI () = [a] | 105 | drawUI (St lifts) = [a] |
104 | where | 106 | where |
105 | a = vCenter $ hCenter $ renderTable $ table $ | 107 | a = vCenter $ hCenter $ renderTable $ table $ |
106 | map (padLeftRight 1 . str) ["Lift", "Achieved Best", "Computed 1RM", "Goal Reps", "Goal+1"] : map toRow lifts | 108 | map (padLeftRight 1 . str) ["Lift", "Achieved Best", "Computed 1RM", "Goal Reps", "Goal+1"] : map toRow lifts |
@@ -121,10 +123,12 @@ drawUI () = [a] | |||
121 | 123 | ||
122 | -- TODO: State contains chosen repmax formula | 124 | -- TODO: State contains chosen repmax formula |
123 | -- TODO: State contains performances | 125 | -- TODO: State contains performances |
124 | type St = () | 126 | data St = St { |
127 | lifts :: [LiftTarget] | ||
128 | } | ||
125 | 129 | ||
126 | -- TODO: Event for inotify on edited text file (as input interface) | 130 | -- TODO: Event for inotify on edited text file (as input interface) |
127 | type CustomEvent = () | 131 | data CustomEvent = CustomEvent |
128 | 132 | ||
129 | handleEvent :: St -> BrickEvent () CustomEvent -> EventM () (Next St) | 133 | handleEvent :: St -> BrickEvent () CustomEvent -> EventM () (Next St) |
130 | handleEvent st e = case e of | 134 | handleEvent st e = case e of |
@@ -147,4 +151,4 @@ main = do | |||
147 | let buildVty = V.mkVty V.defaultConfig | 151 | let buildVty = V.mkVty V.defaultConfig |
148 | initialVty <- buildVty | 152 | initialVty <- buildVty |
149 | chan <- newBChan 10 | 153 | chan <- newBChan 10 |
150 | void $ customMain initialVty buildVty (Just chan) (theApp) () | 154 | void $ customMain initialVty buildVty (Just chan) (theApp) (St initial) |