From a8be7c2966b81cdca6602993b1c8fcd53fb07db8 Mon Sep 17 00:00:00 2001 From: Anton Korzunov Date: Mon, 11 Mar 2019 19:08:44 +1100 Subject: [PATCH] fix: support old refs --- src/component.tsx | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/component.tsx b/src/component.tsx index 5680fb1..6ceaf06 100644 --- a/src/component.tsx +++ b/src/component.tsx @@ -13,7 +13,7 @@ export interface IRemoveScrollProps { className?: string; removeScrollBar?: boolean; - shards?: Array>; + shards?: Array | HTMLElement>; } const classNames = { @@ -21,6 +21,10 @@ const classNames = { zeroRight: zeroRightClassName, }; +const extractRef = (ref: React.RefObject | HTMLElement): HTMLElement => ( + (ref && 'current' in ref) ? ref.current : ref +); + export class RemoveScroll extends React.Component { public static classNames = classNames; @@ -45,7 +49,7 @@ export class RemoveScroll extends React.Component { this.disable() } - componentDidUpdate(oldProps: RemoveScrollProps) { + componentDidUpdate(oldProps: IRemoveScrollProps) { if (oldProps.enabled !== this.props.enabled) { if (this.props.enabled) { this.enable(); @@ -100,7 +104,7 @@ export class RemoveScroll extends React.Component { // outside or shard event if (!sourceEvent) { const shardNodes = (this.props.shards || []) - .map(({current}) => current) + .map(extractRef) .filter(Boolean) .filter(node => node.contains(event.target));