From aef8e1607066b19af3fd669b171e0bbf9462d554 Mon Sep 17 00:00:00 2001 From: Nicholas Skotny Date: Tue, 13 Sep 2022 09:45:10 -0400 Subject: [PATCH 1/2] adding usememo for context value --- src/Frame.jsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Frame.jsx b/src/Frame.jsx index 767362a..d9a865e 100644 --- a/src/Frame.jsx +++ b/src/Frame.jsx @@ -1,4 +1,4 @@ -import React, { Component } from 'react'; +import React, { Component, useMemo } from 'react'; import ReactDOM from 'react-dom'; import PropTypes from 'prop-types'; import { FrameContextProvider } from './Context'; @@ -99,12 +99,15 @@ export class Frame extends Component { const contentDidUpdate = this.props.contentDidUpdate; const win = doc.defaultView || doc.parentView; + + const value = useMemo(() => ({ document: doc, window: win }), [doc, win]) + const contents = ( - +
{this.props.children}
From 7d8eeb757d0485bbee40100eae75459a708e9201 Mon Sep 17 00:00:00 2001 From: Nicholas Skotny Date: Tue, 13 Sep 2022 17:34:45 -0400 Subject: [PATCH 2/2] updating Frame --- src/Frame.jsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/Frame.jsx b/src/Frame.jsx index d9a865e..2c82d77 100644 --- a/src/Frame.jsx +++ b/src/Frame.jsx @@ -1,4 +1,4 @@ -import React, { Component, useMemo } from 'react'; +import React, { Component } from 'react'; import ReactDOM from 'react-dom'; import PropTypes from 'prop-types'; import { FrameContextProvider } from './Context'; @@ -38,6 +38,7 @@ export class Frame extends Component { this._isMounted = false; this.nodeRef = React.createRef(); this.state = { iframeLoaded: false }; + this.contextValue = null; } componentDidMount() { @@ -100,14 +101,20 @@ export class Frame extends Component { const win = doc.defaultView || doc.parentView; - const value = useMemo(() => ({ document: doc, window: win }), [doc, win]) + const contextValue = { document: doc, window: win }; + + const prevContextValue = this.contextValue + + if (!prevContextValue || prevContextValue.document !== contextValue.document || prevContextValue.window !== contextValue.window){ + this.contextValue = contextValue + } const contents = ( - +
{this.props.children}