Initial experiments in hash routing.
[?]
Sep 3, 2020, 5:12 AM
SAESJLLYCQJUIHKFYFV53AWHFOSGI5SKLVS7DPTQO6BKGITPYPUQCDependencies
- [2]
OUR4PAOTUse local dates for display of intervals. - [3]
5R2Z7FSXInitial rendering for signup controls. - [4]
QMEYU4MWAdd display for prior intervals. - [5]
BFZN4SUAMake timeline component work. - [6]
QU5FW67RAdd project selection to time tracker. - [7]
ARX7SHY5Begin work on login UI. - [8]
TKGBRIQTLogin component now raises LoginComplete message. - [9]
TUA4HMUDUse real API capability for login. - [10]
PT4276XCAdd logout functionality. - [11]
QQXR7DTORework login component to use more appropriate Bootstrap theme. - [12]
JXG3FCXYUpgrade ps + halogen versions. - [13]
WRPIYG3EUse project listing functionality to check for whether we have a cookie. - [14]
EA5BFM5GSplit Login component into its own module. - [15]
3LMXT7Z6preventDefault on login form submission. - [16]
HO2PFRABClient login now handles response correctly. - [17]
NJNMO72SAdd zcash.com submodule and update client to modern halogen. - [*]
RB2ETNIFAdd skeletal PureScript client project. - [*]
5FLAK3MEFix nginx mime types.
Change contents
- replacement in client/dev/index.html at line 6
<link rel="stylesheet" type="text/css" href="./assets/css/theme.css" /><link rel="stylesheet" type="text/css" href="./assets/css/spinner.css" /><link rel="stylesheet" type="text/css" href="/assets/css/theme.css" /><link rel="stylesheet" type="text/css" href="/assets/css/spinner.css" /> - edit in client/spago.dhall at line 10
, "routing" - replacement in client/src/Aftok/Login.purs at line 51
newtype LoginComplete = LoginComplete { username :: String }data LoginResult= LoginComplete { username :: String } - replacement in client/src/Aftok/Login.purs at line 54
type Slot id = forall query. H.Slot query LoginComplete idtype Slot id = forall query. H.Slot query LoginResult id - replacement in client/src/Aftok/Login.purs at line 67
-> H.Component HH.HTML query input LoginComplete m-> H.Component HH.HTML query input LoginResult m - edit in client/src/Aftok/Login.purs at line 160
, HH.p[ P.classes (ClassName <$> ["mb-0", "font-size-sm", "text-center", "text-muted"]) ][ HH.text "Need an account? ", HH.a[ P.href "./#signup" ][ HH.text "Sign up" ]] - replacement in client/src/Aftok/Login.purs at line 170
eval :: LoginAction -> H.HalogenM LoginState LoginAction () LoginComplete m Uniteval :: LoginAction -> H.HalogenM LoginState LoginAction () LoginResult m Unit - replacement in client/src/Aftok/Signup.purs at line 17
-- import Halogen.HTML.CSS as CSSimport Halogen.HTML.CSS as CSS - edit in client/src/Aftok/Signup.purs at line 24
import CSS.Display (display, flex)import CSS.Flexbox (flexFlow, row, nowrap) - edit in client/src/Aftok/Signup.purs at line 61
| LoginSwitch - replacement in client/src/Aftok/Signup.purs at line 112
[ P.classes (ClassName <$> ["align-items-center", "justify-content-center", "no-gutters"]) ][ P.classes (ClassName <$> ["row", "align-items-center", "justify-content-center", "no-gutters"]) ] - edit in client/src/Aftok/Signup.purs at line 182
SetRecoveryType t -> H.modify_ (_ { recoveryType = t }) - replacement in client/src/Aftok/Signup.purs at line 195
[ P.classes (ClassName <$> ["form-group", "mb-3"]) ][ P.classes (ClassName <$> ["form-group", "mb-3"]), CSS.style dodisplay flexflexFlow row nowrap] - edit in client/src/Aftok/Signup.purs at line 211
, HH.label [ P.classes (ClassName <$> [ "custom-control-label" ]), P.for "recoverySwitch" ] [] - replacement in client/src/Aftok/Signup.purs at line 244
[ HH.img [ P.src "./assets/img/icons/duotone-icons/Code/Info-circle.svg" ][ HH.img [ P.src "/assets/img/icons/duotone-icons/Code/Info-circle.svg" ] - edit in client/src/Aftok/Signup.purs at line 257[3.8398]
mockCapability :: forall m. Applicative m => Capability mmockCapability ={ signup: \_ _ -> pure OK} - edit in client/src/Aftok/Types.purs at line 33
import Routing.Hash as H - edit in client/src/Aftok/Types.purs at line 39
, getHash :: m String - edit in client/src/Aftok/Types.purs at line 50
, getHash: liftEffect H.getHash - edit in client/src/Main.purs at line 24
import Aftok.Signup as Signup - edit in client/src/Main.purs at line 33
signup = Signup.mockCapability - replacement in client/src/Main.purs at line 36
mainComponent = component liveSystem login timeline projectmainComponent = component liveSystem login signup timeline project - edit in client/src/Main.purs at line 38
data MainView= VLoading| VSignup| VLogin| VTimeline - replacement in client/src/Main.purs at line 45[4.1487]→[4.308019:308035](∅→∅),[4.308035]→[4.1574:1586](∅→∅),[4.1586]→[4.308049:308063](∅→∅),[4.308049]→[4.308049:308063](∅→∅),[4.308063]→[4.1587:1601](∅→∅)
data MainState= Loading| LoggedOut| LoggedIntype MainState ={ view :: MainView, config :: Signup.Config} - replacement in client/src/Main.purs at line 52
| LoginComplete Login.LoginComplete| Logout| LoginAction Login.LoginResult| SignupAction Signup.SignupResult| LogoutAction - edit in client/src/Main.purs at line 58
, signup :: Signup.Slot Unit - edit in client/src/Main.purs at line 63
_signup = SProxy :: SProxy "signup" - edit in client/src/Main.purs at line 71
-> Signup.Capability m - replacement in client/src/Main.purs at line 75
component system loginCap tlCap pCap = H.mkComponentcomponent system loginCap signupCap tlCap pCap = H.mkComponent - replacement in client/src/Main.purs at line 84
initialState _ = LoadinginitialState _ = { view: VLoading, config: { recaptchaKey: "" } } - replacement in client/src/Main.purs at line 87
render = case _ ofLoading ->render st = case st.view ofVLoading -> - replacement in client/src/Main.purs at line 91
LoggedOut ->VSignup -> - replacement in client/src/Main.purs at line 93
[ HH.slot _login unit (Login.component system loginCap) unit (Just <<< LoginComplete) ][ HH.slot _signup unit (Signup.component system signupCap st.config) unit (Just <<< SignupAction) ] - replacement in client/src/Main.purs at line 95[4.377]→[4.308805:308824](∅→∅),[4.1813]→[4.308805:308824](∅→∅),[4.1929]→[4.308805:308824](∅→∅),[4.308805]→[4.308805:308824](∅→∅)
LoggedIn ->VLogin ->HH.div_[ HH.slot _login unit (Login.component system loginCap) unit (Just <<< LoginAction) ]VTimeline -> - replacement in client/src/Main.purs at line 104
eval = case _ ofeval action = case action of - replacement in client/src/Main.purs at line 106
result <- lift loginCap.checkLogincase result ofLogin.Forbidden -> H.put LoggedOut_ -> H.put LoggedInroute <- lift system.getHashnextView <- case route of"login" -> pure VLogin"signup" -> pure VSignupother -> doresult <- lift loginCap.checkLogincase result ofLogin.Forbidden -> pure VLogin_ -> pure VTimelineH.modify_ (_ { view = nextView }) - replacement in client/src/Main.purs at line 117
LoginComplete (Login.LoginComplete _) ->H.put LoggedInLoginAction (Login.LoginComplete _) ->H.modify_ (_ { view = VTimeline }) - replacement in client/src/Main.purs at line 120
Logout -> doSignupAction (Signup.SignupComplete _) ->H.modify_ (_ { view = VTimeline })LogoutAction -> do - replacement in client/src/Main.purs at line 125
H.put LoggedOutH.modify_ (_ { view = VLogin }) - replacement in client/src/Main.purs at line 151
,E.onClick \_ -> Just Logout,E.onClick \_ -> Just LogoutAction - edit in deploy/nginx/mime.types at line 11[20.434][20.434]
image/svg+xml svg;