From c8d82d1a6f1b67e20bbf21b6fd737c689c8e46ac Mon Sep 17 00:00:00 2001 From: pzshine Date: Thu, 13 Aug 2020 22:58:51 +0700 Subject: [PATCH 1/3] :art: Implemented OWASM code tab for OC index page, improved some components --- scan/src/components/buttons/CopyButton.re | 2 +- .../components/data-source/DataSourceCode.re | 12 +- .../oracle-script/OracleScriptCode.re | 93 +++++++++---- scan/src/reusable/CTooltip.re | 130 +++++++++++++++++- 4 files changed, 201 insertions(+), 36 deletions(-) diff --git a/scan/src/components/buttons/CopyButton.re b/scan/src/components/buttons/CopyButton.re index f40062686e..b829a0e9bc 100644 --- a/scan/src/components/buttons/CopyButton.re +++ b/scan/src/components/buttons/CopyButton.re @@ -48,7 +48,7 @@ module Code = { CssHelper.flexBox(~align=`center, ~justify=`center, ()), ])} onClick={_ => { - Copy.copy(data |> JsBuffer.toUTF8); + Copy.copy(data); setCopy(_ => true); let _ = Js.Global.setTimeout(() => setCopy(_ => false), 700); (); diff --git a/scan/src/components/data-source/DataSourceCode.re b/scan/src/components/data-source/DataSourceCode.re index 0c046762d5..ead4184075 100644 --- a/scan/src/components/data-source/DataSourceCode.re +++ b/scan/src/components/data-source/DataSourceCode.re @@ -32,7 +32,12 @@ module Styles = { top(`px(30)), right(`px(30)), zIndex(9), - Media.mobile([right(`px(20))]), + Media.mobile([ + position(`static), + display(`flex), + justifyContent(`flexEnd), + marginBottom(`px(8)), + ]), ]); }; @@ -45,13 +50,10 @@ let renderCode = content => { [@react.component] let make = (~executable) => { let code = executable |> JsBuffer.toUTF8; - React.useMemo1( () =>
-
- -
+
{code |> renderCode}
, [||], diff --git a/scan/src/components/oracle-script/OracleScriptCode.re b/scan/src/components/oracle-script/OracleScriptCode.re index 3ba1a9087e..4609513e29 100644 --- a/scan/src/components/oracle-script/OracleScriptCode.re +++ b/scan/src/components/oracle-script/OracleScriptCode.re @@ -1,10 +1,10 @@ module Styles = { open Css; - let tableLowerContainer = style([padding(`px(8))]); - let tableWrapper = style([padding2(~v=`px(20), ~h=`px(15))]); + let tableLowerContainer = style([position(`relative)]); + let tableWrapper = + style([padding(`px(24)), Media.mobile([padding2(~v=`px(20), ~h=`zero)])]); let codeImage = style([width(`px(20)), marginRight(`px(10))]); - let vFlex = style([display(`flex), flexDirection(`row), alignItems(`center)]); let scriptContainer = style([ @@ -24,6 +24,16 @@ module Styles = { ]); let padding = style([padding(`px(20))]); + let copyContainer = + style([ + position(`absolute), + top(`px(10)), + right(`px(10)), + zIndex(9), + Media.mobile([right(`zero), top(`px(-38))]), + ]); + let infoIcon = style([width(`px(12)), height(`px(12)), display(`block)]); + let titleSpacing = style([marginBottom(`px(8))]); }; let renderCode = content => { @@ -38,32 +48,63 @@ let make = (~url: string) => let%Opt code = CodeHook.getCode(url); Some(
- <> - - - - -
- -
- - - -
- -
- -
- -
-
+ + +
+ + + + + +
+ +
+ +
+ + + + + +
+ +
+
+ + +
- + +
- - code->renderCode +
+
+
+
+
- + {code |> renderCode} +
, ); } diff --git a/scan/src/reusable/CTooltip.re b/scan/src/reusable/CTooltip.re index 7cd11d0bae..4bbcd19e11 100644 --- a/scan/src/reusable/CTooltip.re +++ b/scan/src/reusable/CTooltip.re @@ -2,7 +2,9 @@ type placement = | Left | Right | Top - | Bottom; + | Bottom + | BottomLeft + | BottomRight; module Styles = { open Css; @@ -11,7 +13,9 @@ module Styles = { cursor(`pointer), position(`relative), display(`block), - hover([selector("> div:nth-child(1)", [opacity(1.), pointerEvents(`unset)])]), + hover([ + selector("> div:nth-child(1)", [opacity(1.), zIndex(99), pointerEvents(`unset)]), + ]), ]); let tooltipItem = width_ => style([ @@ -32,6 +36,7 @@ module Styles = { position(`absolute), border(`px(5), `solid, Colors.transparent), ]), + Media.mobile([padding(`px(12)), fontSize(`px(12))]), ]); let placement = @@ -83,13 +88,130 @@ module Styles = { top(`px(-10)), borderBottomColor(Colors.gray7), ]), + ]) + | BottomLeft => + style([ + top(`percent(100.)), + left(`percent(50.)), + transform(`translateX(`percent(-30.))), + before([ + transform(`translateX(`percent(-50.))), + left(`percent(30.)), + top(`px(-10)), + borderBottomColor(Colors.gray7), + ]), + ]) + | BottomRight => + style([ + top(`percent(100.)), + left(`percent(50.)), + transform(`translateX(`percent(-70.))), + before([ + transform(`translateX(`percent(-70.))), + left(`percent(70.)), + top(`px(-10)), + borderBottomColor(Colors.gray7), + ]), + ]); + + let placementSm = + fun + | Left => + style([ + Media.mobile([ + top(`percent(50.)), + right(`percent(100.)), + transform(`translateY(`percent(-50.))), + before([ + top(`percent(50.)), + transform(`translateY(`percent(-50.))), + right(`px(-10)), + borderLeftColor(Colors.gray7), + ]), + ]), + ]) + | Right => + style([ + Media.mobile([ + top(`percent(50.)), + left(`percent(100.)), + transform(`translateY(`percent(-50.))), + before([ + top(`percent(50.)), + transform(`translateY(`percent(-50.))), + left(`px(-10)), + borderRightColor(Colors.gray7), + ]), + ]), + ]) + | Top => + style([ + Media.mobile([ + bottom(`percent(100.)), + left(`percent(50.)), + transform(`translateX(`percent(-50.))), + before([ + transform(`translateX(`percent(-50.))), + left(`percent(50.)), + bottom(`px(-10)), + borderTopColor(Colors.gray7), + ]), + ]), + ]) + | Bottom => + style([ + Media.mobile([ + top(`percent(100.)), + left(`percent(50.)), + transform(`translateX(`percent(-50.))), + before([ + transform(`translateX(`percent(-50.))), + left(`percent(50.)), + top(`px(-10)), + borderBottomColor(Colors.gray7), + ]), + ]), + ]) + | BottomLeft => + style([ + Media.mobile([ + top(`percent(100.)), + left(`percent(50.)), + transform(`translateX(`percent(-30.))), + before([ + transform(`translateX(`percent(-50.))), + left(`percent(30.)), + top(`px(-10)), + borderBottomColor(Colors.gray7), + ]), + ]), + ]) + | BottomRight => + style([ + Media.mobile([ + top(`percent(100.)), + left(`percent(50.)), + transform(`translateX(`percent(-70.))), + before([ + transform(`translateX(`percent(-50.))), + left(`percent(70.)), + top(`px(-10)), + borderBottomColor(Colors.gray7), + ]), + ]), ]); }; [@react.component] -let make = (~width=150, ~tooltipText="", ~tooltipPlacement=Bottom, ~children) => { +let make = + (~width=150, ~tooltipText="", ~tooltipPlacement=Bottom, ~tooltipPlacementSm=Bottom, ~children) => {
-
+
{tooltipText |> React.string}
children From 82df4a6f640e56a72bb4f6cac0e3aae6e0eb332b Mon Sep 17 00:00:00 2001 From: pzshine Date: Thu, 13 Aug 2020 23:06:34 +0700 Subject: [PATCH 2/3] :loud_sound: Updated CHANGELOG file --- CHANGELOG_UNRELEASED.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG_UNRELEASED.md b/CHANGELOG_UNRELEASED.md index 3e291cad0a..7bad2a893e 100644 --- a/CHANGELOG_UNRELEASED.md +++ b/CHANGELOG_UNRELEASED.md @@ -18,6 +18,8 @@ ### Scan + - (imprv) [\#2473](https://github.com/bandprotocol/bandchain/pull/2473) Implemented OWASM code tab for OC index page, improved some components + ### Bridges ### Runtime From 73fd02241c542309953c714ff9a0a4d4d7e5bb44 Mon Sep 17 00:00:00 2001 From: pzshine Date: Thu, 13 Aug 2020 23:58:06 +0700 Subject: [PATCH 3/3] :pencil: Add TODO comment for mock msg --- scan/src/components/oracle-script/OracleScriptCode.re | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scan/src/components/oracle-script/OracleScriptCode.re b/scan/src/components/oracle-script/OracleScriptCode.re index 4609513e29..f00a653e60 100644 --- a/scan/src/components/oracle-script/OracleScriptCode.re +++ b/scan/src/components/oracle-script/OracleScriptCode.re @@ -53,6 +53,7 @@ let make = (~url: string) =>
+ //TODO: remove mock message later @@ -71,6 +72,7 @@ let make = (~url: string) =>
+ //TODO: remove mock message later