From c1df14a5c4645c8585e0fec1d0816be57afd19bb Mon Sep 17 00:00:00 2001 From: glennsl Date: Mon, 20 Jan 2020 06:34:12 +0100 Subject: [PATCH 1/8] add MessageBox component --- src/Components/MessageBox.re | 77 ++++++++++++++++++++++++++++++++++++ 1 file changed, 77 insertions(+) create mode 100644 src/Components/MessageBox.re diff --git a/src/Components/MessageBox.re b/src/Components/MessageBox.re new file mode 100644 index 0000000000..8d13bd1522 --- /dev/null +++ b/src/Components/MessageBox.re @@ -0,0 +1,77 @@ +open Oni_Core; + +open Revery.UI; +open Revery.UI.Components; + +type action('msg) = { + label: string, + msg: 'msg, +}; + +module Styles = { + open Style; + + let container = (~theme: Theme.t) => [backgroundColor(theme.background)]; + + let message = [padding(10)]; + + let messageText = (~theme: Theme.t, ~font: UiFont.t) => [ + fontFamily(font.fontFile), + color(theme.foreground), + backgroundColor(theme.editorBackground), + fontSize(14), + ]; + + let actions = [flexDirection(`Row)]; + + let buttonOuter = (~isHovered, ~theme: Theme.t) => [ + isHovered + ? backgroundColor(theme.menuSelectionBackground) + : backgroundColor(theme.editorBackground), + flexGrow(1), + ]; + + let buttonInner = [padding(10)]; + + let buttonText = (~isHovered, ~theme: Theme.t, ~font: UiFont.t) => [ + fontFamily(font.fontFile), + color(theme.foreground), + isHovered + ? backgroundColor(theme.menuSelectionBackground) + : backgroundColor(theme.editorBackground), + fontSize(14), + alignSelf(`Center), + ]; +}; + +let%component button = (~text, ~onClick, ~theme, ~font, ()) => { + let%hook (isHovered, setHovered) = Hooks.state(false); + + + setHovered(_ => true)} + onMouseOut={_ => setHovered(_ => false)} + style=Styles.buttonInner> + + + ; +}; + +let make = (~message, ~theme, ~font, ~actions, ~onAction, ()) => + + + + + + {actions + |> List.map(action => +