From ca5b2101c219cbd04df85561569d1bef776577e0 Mon Sep 17 00:00:00 2001 From: John Haley Date: Thu, 16 Nov 2023 09:33:15 -0700 Subject: [PATCH 1/2] add payload to events --- src/Bar.re | 38 ++++++++++++++++++++++++++++++-------- src/Pie.re | 44 ++++++++++++++++++++++++++++++++++++-------- 2 files changed, 66 insertions(+), 16 deletions(-) diff --git a/src/Bar.re b/src/Bar.re index 03489dd..585f377 100644 --- a/src/Bar.re +++ b/src/Bar.re @@ -29,14 +29,36 @@ external make: ~maxBarSize: int=?, ~minPointSize: int=?, ~name: string=?, - ~onClick: (Js.Nullable.t(Js.t({..})), ReactEvent.Mouse.t) => unit=?, - ~onMouseDown: (Js.Nullable.t(Js.t({..})), ReactEvent.Mouse.t) => unit=?, - ~onMouseEnter: (Js.Nullable.t(Js.t({..})), ReactEvent.Mouse.t) => unit=?, - ~onMouseLeave: (Js.t({..}), ReactEvent.Mouse.t) => unit=?, - ~onMouseMove: (Js.Nullable.t(Js.t({..})), ReactEvent.Mouse.t) => unit=?, - ~onMouseOut: (Js.Nullable.t(Js.t({..})), ReactEvent.Mouse.t) => unit=?, - ~onMouseOver: (Js.Nullable.t(Js.t({..})), ReactEvent.Mouse.t) => unit=?, - ~onMouseUp: (Js.Nullable.t(Js.t({..})), ReactEvent.Mouse.t) => unit=?, + ~onClick: (Js.t({.. "payload": 'dataItem}), int, ReactEvent.Mouse.t) => + unit + =?, + ~onMouseDown: (Js.t({.. "payload": 'dataItem}), ReactEvent.Mouse.t) => + unit + =?, + ~onMouseEnter: ( + Js.t({.. "payload": 'dataItem}), + int, + ReactEvent.Mouse.t + ) => + unit + =?, + ~onMouseLeave: ( + Js.t({.. "payload": 'dataItem}), + int, + ReactEvent.Mouse.t + ) => + unit + =?, + ~onMouseMove: (Js.t({.. "payload": 'dataItem}), ReactEvent.Mouse.t) => + unit + =?, + ~onMouseOut: (Js.t({.. "payload": 'dataItem}), ReactEvent.Mouse.t) => unit + =?, + ~onMouseOver: (Js.t({.. "payload": 'dataItem}), ReactEvent.Mouse.t) => + unit + =?, + ~onMouseUp: (Js.t({.. "payload": 'dataItem}), ReactEvent.Mouse.t) => unit + =?, ~radius: array(int)=?, ~shape: 'shape=?, ~stackId: string=?, diff --git a/src/Pie.re b/src/Pie.re index 1a4a9ee..c2c288b 100644 --- a/src/Pie.re +++ b/src/Pie.re @@ -31,14 +31,42 @@ external make: ~legendType: legendType=?, ~minAngle: int=?, ~nameKey: string=?, - ~onClick: (Js.Nullable.t(Js.t({..})), ReactEvent.Mouse.t) => unit=?, - ~onMouseDown: (Js.Nullable.t(Js.t({..})), ReactEvent.Mouse.t) => unit=?, - ~onMouseEnter: (Js.Nullable.t(Js.t({..})), ReactEvent.Mouse.t) => unit=?, - ~onMouseLeave: (Js.t({..}), ReactEvent.Mouse.t) => unit=?, - ~onMouseMove: (Js.Nullable.t(Js.t({..})), ReactEvent.Mouse.t) => unit=?, - ~onMouseOut: (Js.Nullable.t(Js.t({..})), ReactEvent.Mouse.t) => unit=?, - ~onMouseOver: (Js.Nullable.t(Js.t({..})), ReactEvent.Mouse.t) => unit=?, - ~onMouseUp: (Js.Nullable.t(Js.t({..})), ReactEvent.Mouse.t) => unit=?, + // Pulled from: + // https://github.com/recharts/recharts/blob/7fb227dae542c3d3093506e6d80a2c2c366f9a26/src/polar/Pie.tsx#L107-L109 + ~onClick: ( + Js.Nullable.t(Js.t({.. "payload": 'dataItem})), + int, + ReactEvent.Mouse.t + ) => + unit + =?, + ~onMouseDown: (Js.t({.. "payload": 'dataItem}), ReactEvent.Mouse.t) => + unit + =?, + ~onMouseEnter: ( + Js.Nullable.t(Js.t({.. "payload": 'dataItem})), + int, + ReactEvent.Mouse.t + ) => + unit + =?, + ~onMouseLeave: ( + Js.Nullable.t(Js.t({.. "payload": 'dataItem})), + int, + ReactEvent.Mouse.t + ) => + unit + =?, + ~onMouseMove: (Js.t({.. "payload": 'dataItem}), ReactEvent.Mouse.t) => + unit + =?, + ~onMouseOut: (Js.t({.. "payload": 'dataItem}), ReactEvent.Mouse.t) => unit + =?, + ~onMouseOver: (Js.t({.. "payload": 'dataItem}), ReactEvent.Mouse.t) => + unit + =?, + ~onMouseUp: (Js.t({.. "payload": 'dataItem}), ReactEvent.Mouse.t) => unit + =?, ~outerRadius: PxOrPrc.t=?, ~paddingAngle: int=?, ~startAngle: int=?, From e058ba94448d106c18c651be4bb334d7d010382c Mon Sep 17 00:00:00 2001 From: John Haley Date: Thu, 16 Nov 2023 09:33:24 -0700 Subject: [PATCH 2/2] add style to x/y axis elements --- src/XAxis.re | 4 +++- src/YAxis.re | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/XAxis.re b/src/XAxis.re index 99d6632..e7364db 100644 --- a/src/XAxis.re +++ b/src/XAxis.re @@ -31,6 +31,7 @@ external make: ~padding: paddingHorizontal=?, ~reversed: bool=?, ~scale: scale=?, + ~style: ReactDOMStyle.t=?, ~tick: 'tick=?, ~tickCount: int=?, ~tickFormatter: 'tickFormatter=?, @@ -45,4 +46,5 @@ external make: React.element = "XAxis"; -let makeProps = (~interval=?) => makeProps(~interval=?interval->AxisInterval.encodeOpt); +let makeProps = (~interval=?) => + makeProps(~interval=?interval->AxisInterval.encodeOpt); diff --git a/src/YAxis.re b/src/YAxis.re index 02e8104..d1ff383 100644 --- a/src/YAxis.re +++ b/src/YAxis.re @@ -31,6 +31,7 @@ external make: ~padding: paddingVertical=?, ~reversed: bool=?, ~scale: scale=?, + ~style: ReactDOMStyle.t=?, ~tick: 'tick=?, ~tickCount: int=?, ~tickFormatter: 'tickFormatter=?, @@ -45,4 +46,5 @@ external make: React.element = "YAxis"; -let makeProps = (~interval=?) => makeProps(~interval=?interval->AxisInterval.encodeOpt); +let makeProps = (~interval=?) => + makeProps(~interval=?interval->AxisInterval.encodeOpt);