summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2022-10-09 17:37:02 -0400
committerAndrew Cady <d@jerkface.net>2022-10-09 17:37:02 -0400
commit11cd6405359bb6a9010c75880c04359bbb54892d (patch)
treeb831b342465ef3de06c44ddb7f0d8daab4e1aef7
parentccaec90a45492a579159e92926bde2b1e3a91311 (diff)
move lift targets into state
-rwxr-xr-xrepgoal.hs22
1 files changed, 13 insertions, 9 deletions
diff --git a/repgoal.hs b/repgoal.hs
index 28e48a1..bd7f678 100755
--- a/repgoal.hs
+++ b/repgoal.hs
@@ -74,11 +74,13 @@ data LiftTarget = LiftTarget {
74 stats :: [Performance] 74 stats :: [Performance]
75} 75}
76 76
77lifts :: [LiftTarget] 77initial :: [LiftTarget]
78lifts = 78initial =
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
84computeRepGoal :: LiftTarget -> (Integer) 86computeRepGoal :: 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
102drawUI :: () -> [Widget ()] 104drawUI :: St -> [Widget ()]
103drawUI () = [a] 105drawUI (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
124type St = () 126data 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)
127type CustomEvent = () 131data CustomEvent = CustomEvent
128 132
129handleEvent :: St -> BrickEvent () CustomEvent -> EventM () (Next St) 133handleEvent :: St -> BrickEvent () CustomEvent -> EventM () (Next St)
130handleEvent st e = case e of 134handleEvent 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)