diff options
author | Yorhel <git@yorhel.nl> | 2020-04-17 12:08:21 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2020-04-17 12:08:21 +0200 |
commit | 755bbc8474e3ff8a26ac0d8a760b28d6560467e6 (patch) | |
tree | f806e42a82b69b20226dd76f580944228f8adbb7 /elm | |
parent | 6c4e13cc8112463bc715f5c60f7b392b40e0c745 (diff) |
imgflag: Add quick-and-dirty fullscreen mode
Diffstat (limited to 'elm')
-rw-r--r-- | elm/ImageFlagging.elm | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/elm/ImageFlagging.elm b/elm/ImageFlagging.elm index 67da2246..726467bc 100644 --- a/elm/ImageFlagging.elm +++ b/elm/ImageFlagging.elm @@ -35,6 +35,7 @@ port preload : String -> Cmd msg type alias Model = { warn : Bool , single : Bool + , fullscreen: Bool , showVotes : Bool , myVotes : Int , images : Array.Array GApi.ApiImageResult @@ -53,6 +54,7 @@ init : GI.Recv -> Model init d = { warn = d.warn , single = d.single + , fullscreen= False , showVotes = d.single , myVotes = d.my_votes , images = Array.fromList d.images @@ -98,6 +100,8 @@ keyup model = case k of "ArrowLeft" -> JD.succeed Prev "ArrowRight" -> JD.succeed Next + "v" -> JD.succeed (Fullscreen (not model.fullscreen)) + "Escape" -> JD.succeed (Fullscreen False) _ -> keyToVote model k |> Maybe.map (\(s,v) -> JD.succeed (Vote s v True)) |> Maybe.withDefault (JD.fail "") ) (JD.field "key" JD.string) @@ -105,6 +109,7 @@ keyup model = type Msg = SkipWarn | ShowVotes + | Fullscreen Bool | Desc (Maybe Int) (Maybe Int) | Load GApi.Response | Vote (Maybe Int) (Maybe Int) Bool @@ -141,6 +146,7 @@ update msg model = case msg of SkipWarn -> load ({ model | warn = False }, Cmd.none) ShowVotes -> ({ model | showVotes = not model.showVotes }, Cmd.none) + Fullscreen b -> ({ model | fullscreen = b }, Cmd.none) Desc s v -> ({ model | desc = (s,v) }, Cmd.none) Load (GApi.ImageResult l) -> @@ -309,6 +315,9 @@ view model = span [] [ text " (", a [ href <| Ffi.urlStatic ++ "/f/imgvote-keybindings.svg" ] [ text "keyboard shortcuts" ], text ")" ] ] , votestats i + , if model.fullscreen -- really lazy fullscreen mode + then div [ class "fullscreen", style "background-image" ("url("++i.url++")"), onClick (Fullscreen False) ] [ text "" ] + else text "" ] in div [ class "mainbox" ] |