From 39b668d050b20c7f0ecca1ea8b83f519322d476b Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 25 Nov 2020 11:52:02 +0200 Subject: [PATCH] re-fix: put React.Children.only() validation inside try-catch to avoid crash as well Signed-off-by: Roman --- src/renderer/components/input/drop-file-input.tsx | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/renderer/components/input/drop-file-input.tsx b/src/renderer/components/input/drop-file-input.tsx index 9a0641baf6..70dd8ddf9c 100644 --- a/src/renderer/components/input/drop-file-input.tsx +++ b/src/renderer/components/input/drop-file-input.tsx @@ -51,13 +51,13 @@ export class DropFileInput extends React.Component< } render() { - const { disabled, className } = this.props; const { onDragEnter, onDragLeave, onDragOver, onDrop } = this; - const contentElem = React.Children.only(this.props.children) as React.ReactElement>; - if (disabled) { - return contentElem; - } + const { disabled, className } = this.props; try { + const contentElem = React.Children.only(this.props.children) as React.ReactElement>; + if (disabled) { + return contentElem; + } const isValidContentElem = React.isValidElement(contentElem); if (isValidContentElem) { const contentElemProps: React.HTMLProps = { @@ -72,8 +72,8 @@ export class DropFileInput extends React.Component< return React.cloneElement(contentElem, contentElemProps); } } catch (err) { - logger.error("Invalid root content-element for DropFileInput", { err: String(err) }); - return contentElem; + logger.error(`Error: must contain only single child element`); + return this.props.children; } } }