Skip to content

Commit 6eaed91

Browse files
committed
Terminate early
1 parent ded4df2 commit 6eaed91

1 file changed

Lines changed: 23 additions & 25 deletions

File tree

src/native-ads/withNativeAd.tsx

Lines changed: 23 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,10 @@ interface AdWrapperProps {
4343
* returned;
4444
} instead; of; a; component; provided.
4545
*/
46-
// tslint:disable-next-line:variable-name
47-
export default <T extends HasNativeAd>(Component: React.ComponentType<T>) =>
46+
export default <T extends object & HasNativeAd>(
47+
// tslint:disable-next-line:variable-name
48+
Component: React.ComponentType<T>,
49+
) =>
4850
class NativeAdWrapper extends React.Component<
4951
AdWrapperProps & T,
5052
AdWrapperState
@@ -179,33 +181,29 @@ export default <T extends HasNativeAd>(Component: React.ComponentType<T>) =>
179181
}
180182

181183
private renderAdComponent(componentProps: T): ReactNode {
182-
if (this.state.ad) {
183-
return (
184-
<AdIconViewContext.Provider
185-
value={this.registerFunctionsForAdIconView}
186-
>
187-
<MediaViewContext.Provider
188-
value={this.registerFunctionsForMediaView}
184+
if (!this.state.ad) {
185+
return null;
186+
}
187+
return (
188+
<AdIconViewContext.Provider value={this.registerFunctionsForAdIconView}>
189+
<MediaViewContext.Provider value={this.registerFunctionsForMediaView}>
190+
<TriggerableContext.Provider
191+
value={this.registerFunctionsForTriggerables}
189192
>
190-
<TriggerableContext.Provider
191-
value={this.registerFunctionsForTriggerables}
193+
<AdChoicesViewContext.Provider
194+
value={this.props.adsManager.toJSON()}
192195
>
193-
<AdChoicesViewContext.Provider
194-
value={this.props.adsManager.toJSON()}
195-
>
196-
{/* Facebook's registerViewForInteraction requires both AdIconView and MediaView
196+
{/* Facebook's registerViewForInteraction requires both AdIconView and MediaView
197197
references to be set. We include both as a default */}
198198

199-
<AdIconView style={{ width: 0, height: 0 }} />
200-
<MediaView style={{ width: 0, height: 0 }} />
201-
<Component {...componentProps} nativeAd={this.state.ad} />
202-
</AdChoicesViewContext.Provider>
203-
</TriggerableContext.Provider>
204-
</MediaViewContext.Provider>
205-
</AdIconViewContext.Provider>
206-
);
207-
}
208-
return null;
199+
<AdIconView style={{ width: 0, height: 0 }} />
200+
<MediaView style={{ width: 0, height: 0 }} />
201+
<Component {...componentProps} nativeAd={this.state.ad} />
202+
</AdChoicesViewContext.Provider>
203+
</TriggerableContext.Provider>
204+
</MediaViewContext.Provider>
205+
</AdIconViewContext.Provider>
206+
);
209207
}
210208

211209
render() {

0 commit comments

Comments
 (0)