From b74c0997738f0b9f11caa57e7e52cd2f40bcc886 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Thu, 6 Dec 2018 14:54:26 +0100 Subject: [PATCH] use render props instead of cloneElement --- .../ToggleButtonGroup/ToggleButtonGroup.tsx | 14 +++-------- public/app/features/explore/Logs.tsx | 25 +++++++++++++------ 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/public/app/core/components/ToggleButtonGroup/ToggleButtonGroup.tsx b/public/app/core/components/ToggleButtonGroup/ToggleButtonGroup.tsx index 91b7f1538c9..1e9ae4732df 100644 --- a/public/app/core/components/ToggleButtonGroup/ToggleButtonGroup.tsx +++ b/public/app/core/components/ToggleButtonGroup/ToggleButtonGroup.tsx @@ -4,6 +4,7 @@ interface ToggleButtonGroupProps { onChange: (value) => void; value?: any; label?: string; + render: (props) => void; } export default class ToggleButtonGroup extends PureComponent { @@ -26,25 +27,16 @@ export default class ToggleButtonGroup extends PureComponent) => { - const { value: buttonValue } = child.props; - - return React.cloneElement(child, { - selected: buttonValue === selectedValue, - onChange: this.handleToggle.bind(this), - }); - }); - return (
{label && } - {childClones} + {this.props.render({ selectedValue, onChange: this.handleToggle.bind(this) })}
); diff --git a/public/app/features/explore/Logs.tsx b/public/app/features/explore/Logs.tsx index f7704cf340a..cc4dcbdcc5c 100644 --- a/public/app/features/explore/Logs.tsx +++ b/public/app/features/explore/Logs.tsx @@ -305,13 +305,24 @@ export default class Logs extends PureComponent { - - {Object.keys(LogsDedupStrategy).map((dedupType, i) => ( - - {dedupType} - - ))} - + + Object.keys(LogsDedupStrategy).map((dedupType, i) => ( + + {dedupType} + + )) + } + /> {hasData && meta && (