Make timeline component work.

[?]
Aug 17, 2020, 10:01 PM
BFZN4SUAGYNFFYVAP36BAX32DMO622PK4EPEVQQEAGC2IHTEAAPQC

Dependencies

  • [2] TUA4HMUD Use real API capability for login.
  • [3] 3LMXT7Z6 preventDefault on login form submission.
  • [4] ARX7SHY5 Begin work on login UI.
  • [5] JXG3FCXY Upgrade ps + halogen versions.
  • [6] TKGBRIQT Login component now raises LoginComplete message.
  • [7] NJNMO72S Add zcash.com submodule and update client to modern halogen.
  • [*] RB2ETNIF Add skeletal PureScript client project.

Change contents

  • edit in client/src/Aftok/Timeline.purs at line 7
    [4.301277]
    [4.2520]
    import Control.Monad.Trans.Class (lift)
  • edit in client/src/Aftok/Timeline.purs at line 14
    [4.2903]
    [4.301323]
    import Data.Unfoldable (fromMaybe)
  • edit in client/src/Aftok/Timeline.purs at line 32
    [4.301700]
    [4.3184]
    import Halogen.HTML.Events as E
  • replacement in client/src/Aftok/Timeline.purs at line 35
    [4.301702][4.301702:301777]()
    import CSS (backgroundColor, border, rgb, solid, borderRadius, marginLeft)
    [4.301702]
    [4.301777]
    import CSS (backgroundColor, border, rgb, solid, borderRadius, left)
  • replacement in client/src/Aftok/Timeline.purs at line 69
    [4.3688][4.302156:302289]()
    component :: forall query input output. TimelineConfig -> H.Component HH.HTML query input output Aff
    component conf = H.mkComponent
    [4.3688]
    [4.302289]
    type Capability m =
    { logStart :: m Instant
    , logEnd :: m Instant
    }
    component :: forall query input output. Capability Aff -> TimelineConfig -> H.Component HH.HTML query input output Aff
    component caps conf = H.mkComponent
  • replacement in client/src/Aftok/Timeline.purs at line 90
    [4.4430][4.302639:302724]()
    render :: forall action slots m. TimelineState -> H.ComponentHTML action slots m
    [4.4430]
    [4.302724]
    render :: forall slots m. TimelineState -> H.ComponentHTML TimelineAction slots m
  • replacement in client/src/Aftok/Timeline.purs at line 102
    [4.303205][4.303205:303270]()
    ,lineHtml (intervalHtml conf st.limits <$> st.history)
    [4.303205]
    [4.303270]
    ,lineHtml (intervalHtml conf st.limits <$> st.history <> fromMaybe st.active)
  • replacement in client/src/Aftok/Timeline.purs at line 105
    [4.303312][4.303312:303391]()
    [P.classes (ClassName <$> ["btn", "btn-primary", "float-left"])]
    [4.303312]
    [4.303391]
    [P.classes (ClassName <$> ["btn", "btn-primary", "float-left"])
    ,E.onClick \_ -> Just Start
    ]
  • replacement in client/src/Aftok/Timeline.purs at line 110
    [4.303451][4.303451:303531]()
    [P.classes (ClassName <$> ["btn", "btn-primary", "float-right"])]
    [4.303451]
    [4.303531]
    [P.classes (ClassName <$> ["btn", "btn-primary", "float-right"])
    ,E.onClick \_ -> Just Stop
    ]
  • edit in client/src/Aftok/Timeline.purs at line 130
    [4.304127]
    [4.304127]
    llen = ilen limits.start limits.end
    clen = ilen limits.start limits.current
  • edit in client/src/Aftok/Timeline.purs at line 136
    [4.304245]
    [4.5214]
    _ <- H.subscribe timer
    pure unit
  • replacement in client/src/Aftok/Timeline.purs at line 140
    [4.304266][4.304266:304294]()
    t <- liftEffect now
    [4.304266]
    [4.304294]
    t <- lift caps.logStart
  • replacement in client/src/Aftok/Timeline.purs at line 144
    [4.304343][4.304343:304371]()
    t <- liftEffect now
    [4.304343]
    [4.304371]
    t <- lift caps.logEnd
  • replacement in client/src/Aftok/Timeline.purs at line 173
    [4.305031][4.305031:305192]()
    let widthRatio = conf.width / ilen limits.start limits.end
    ileft = ilen limits.start i.start * widthRatio
    iwidth = ilen i.start i.end * widthRatio
    [4.305031]
    [4.305192]
    let maxWidth = ilen limits.start limits.end
    ileft = ilen limits.start i.start
    iwidth = ilen i.start i.end
  • edit in client/src/Aftok/Timeline.purs at line 177
    [4.305220]
    [4.305220]
    toPct n = pct (toNumber 100 * n / maxWidth)
  • replacement in client/src/Aftok/Timeline.purs at line 182
    [4.305325][4.305325:305417]()
    height (px $ toNumber 40)
    marginLeft (pct ileft)
    width (pct iwidth)
    [4.305325]
    [4.305417]
    height (px $ toNumber 44)
    left (toPct ileft)
    width (toPct iwidth)
  • replacement in client/src/Aftok/Timeline.purs at line 212
    [4.6654][4.305948:306012]()
    s { active = map (\a -> { start: a.start, end: t }) s.active
    [4.6654]
    [4.306012]
    s { limits = s.limits { current = t }
    , active = map (_ { end = t }) s.active
  • edit in client/src/Aftok/Timeline.purs at line 221
    [4.6890]
    mockCapability :: Capability Aff
    mockCapability =
    { logStart: liftEffect now
    , logEnd: liftEffect now
    }
  • replacement in client/src/Main.purs at line 24
    [4.307895][2.495:578]()
    --let c = component Login.mockCapability
    let c = component Login.apiCapability
    [4.307895]
    [4.307936]
    let --login = Login.mockCapability
    login = Login.apiCapability
    timeline = Timeline.mockCapability
    let c = component login timeline
  • replacement in client/src/Main.purs at line 38
    [4.308133][3.220:282]()
    ( login :: Login.Slot Int
    , timeline :: Timeline.Slot Int
    [4.308133]
    [4.308197]
    ( login :: Login.Slot Unit
    , timeline :: Timeline.Slot Unit
  • edit in client/src/Main.purs at line 48
    [4.308345]
    [4.308345]
    -> Timeline.Capability Aff
  • replacement in client/src/Main.purs at line 50
    [4.308393][4.308393:308429]()
    component loginCap = H.mkComponent
    [4.308393]
    [4.308429]
    component loginCap tlCap = H.mkComponent
  • replacement in client/src/Main.purs at line 62
    [4.308708][3.283:377]()
    HH.div_ [ HH.slot _login 0 (Login.component loginCap) unit (Just <<< LoginComplete) ]
    [4.308708]
    [4.308805]
    HH.div_ [ HH.slot _login unit (Login.component loginCap) unit (Just <<< LoginComplete) ]
  • replacement in client/src/Main.purs at line 64
    [4.308824][3.378:475]()
    HH.div_ [ HH.slot _timeline 1 (Timeline.component { width: toNumber 600 }) unit absurd ]
    [4.308824]
    [4.308924]
    HH.div_ [ HH.slot _timeline unit (Timeline.component tlCap { width: toNumber 600 }) unit absurd ]