all repos

onasty @ 327757c

a one-time notes service

onasty/web/src/Pages/Home_.elm (view raw)

Smirnov Oleksandr Smirnov Oleksandr
ss2316544@gmail.com
scaffold frontend app (#134)..., 11 months ago
1
module Pages.Home_ exposing (Model, Msg, page)
2
3
import Effect exposing (Effect)
4
import Html
5
import Html.Attributes as Attributes
6
import Html.Events
7
import Page exposing (Page)
8
import Route exposing (Route)
9
import Shared
10
import View exposing (View)
11
12
13
page : Shared.Model -> Route () -> Page Model Msg
14
page shared _ =
15
    Page.new
16
        { init = init shared
17
        , update = update
18
        , subscriptions = subscriptions
19
        , view = view shared
20
        }
21
22
23
24
-- INIT
25
26
27
type alias Model =
28
    {}
29
30
31
init : Shared.Model -> () -> ( Model, Effect Msg )
32
init _ () =
33
    ( {}, Effect.none )
34
35
36
37
-- UPDATE
38
39
40
type Msg
41
    = LogOut
42
43
44
update : Msg -> Model -> ( Model, Effect Msg )
45
update msg model =
46
    case msg of
47
        LogOut ->
48
            ( model, Effect.logout )
49
50
51
52
-- SUBSCRIPTIONS
53
54
55
subscriptions : Model -> Sub Msg
56
subscriptions _ =
57
    Sub.none
58
59
60
61
-- VIEW
62
63
64
view : Shared.Model -> Model -> View Msg
65
view _ _ =
66
    { title = "Homepage"
67
    , body =
68
        [ Html.div []
69
            [ Html.p [] [ Html.text "Hello, world!" ]
70
            , Html.p []
71
                [ Html.a
72
                    [ Attributes.href "/profile/me" ]
73
                    [ Html.text "/profile/me - fetches authorized data" ]
74
                ]
75
            , Html.p []
76
                [ Html.button
77
                    [ Html.Events.onClick LogOut ]
78
                    [ Html.text "Logout" ]
79
                ]
80
            ]
81
        ]
82
    }