Skip to content

Commit 33ac0de

Browse files
author
Ben Grynhaus
committed
Change ReactWrapperComponent's constructor API to prepare for breaking changes
2 parents 04f537d + 585a852 commit 33ac0de

File tree

9 files changed

+35
-16
lines changed

9 files changed

+35
-16
lines changed

libs/core/src/lib/components/wrapper-component.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,14 @@ export type JsxRenderFunc<TContext> = (context: TContext) => JSX.Element;
4848
export type ContentClassValue = string[] | Set<string> | { [klass: string]: any };
4949
export type ContentStyleValue = string | StyleObject;
5050

51+
export interface WrapperComponentOptions {
52+
readonly setHostDisplay?: boolean;
53+
}
54+
55+
const defaultWrapperComponentOptions: WrapperComponentOptions = {
56+
setHostDisplay: false,
57+
};
58+
5159
/**
5260
* Base class for Angular @Components wrapping React Components.
5361
* Simplifies some of the handling around passing down props and CSS styling on the host component.
@@ -57,6 +65,8 @@ export abstract class ReactWrapperComponent<TProps extends {}> implements AfterV
5765
private _contentClass: Many<ContentClassValue>;
5866
private _contentStyle: ContentStyleValue;
5967

68+
private _shouldSetHostDisplay: boolean;
69+
6070
protected abstract reactNodeRef: ElementRef<HTMLElement>;
6171

6272
/**
@@ -109,13 +119,15 @@ export abstract class ReactWrapperComponent<TProps extends {}> implements AfterV
109119
public readonly elementRef: ElementRef<HTMLElement>,
110120
private readonly changeDetectorRef: ChangeDetectorRef,
111121
private readonly renderer: Renderer2,
112-
private readonly setHostDisplay: boolean = false
113-
) {}
122+
{ setHostDisplay }: WrapperComponentOptions = defaultWrapperComponentOptions
123+
) {
124+
this._shouldSetHostDisplay = setHostDisplay;
125+
}
114126

115127
ngAfterViewInit() {
116128
this._passAttributesAsProps();
117129

118-
if (this.setHostDisplay) {
130+
if (this._shouldSetHostDisplay) {
119131
this._setHostDisplay();
120132
}
121133

libs/fabric/src/lib/components/breadcrumb/breadcrumb.component.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@ import { IBreadcrumbItem, IBreadcrumbProps } from 'office-ui-fabric-react/lib/Br
2222
[styles]="styles"
2323
[theme]="theme"
2424
[RenderItem]="renderItem && onRenderItem"
25-
[ReduceData]="onReduceData"
26-
>
25+
[ReduceData]="onReduceData">
2726
</Breadcrumb>
2827
`,
2928
styles: ['react-renderer'],

libs/fabric/src/lib/components/button/base-button.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ export abstract class FabBaseButtonComponent extends ReactWrapperComponent<IButt
9191
onRenderMenuIcon: (props?: IButtonProps, defaultRender?: JsxRenderFunc<IButtonProps>) => JSX.Element;
9292

9393
constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, renderer: Renderer2) {
94-
super(elementRef, changeDetectorRef, renderer, true);
94+
super(elementRef, changeDetectorRef, renderer, { setHostDisplay: true });
9595

9696
// coming from React context - we need to bind to this so we can access the Angular Component properties
9797
this.onMenuClickHandler = this.onMenuClickHandler.bind(this);

libs/fabric/src/lib/components/command-bar/command-bar.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -115,7 +115,7 @@ export class FabCommandBarComponent extends ReactWrapperComponent<ICommandBarPro
115115
private readonly _subscriptions: Subscription[] = [];
116116

117117
constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, renderer: Renderer2) {
118-
super(elementRef, changeDetectorRef, renderer, true);
118+
super(elementRef, changeDetectorRef, renderer, { setHostDisplay: true });
119119
}
120120

121121
ngOnChanges(changes: TypedChanges<this>) {

libs/fabric/src/lib/components/icon/icon.component.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,15 @@
22
// Licensed under the MIT License.
33

44
import { ReactWrapperComponent } from '@angular-react/core';
5-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Input, Renderer2, ViewChild } from '@angular/core';
5+
import {
6+
ChangeDetectionStrategy,
7+
ChangeDetectorRef,
8+
Component,
9+
ElementRef,
10+
Input,
11+
Renderer2,
12+
ViewChild,
13+
} from '@angular/core';
614
import { IIconProps } from 'office-ui-fabric-react/lib/Icon';
715

816
@Component({
@@ -43,6 +51,6 @@ export class FabIconComponent extends ReactWrapperComponent<IIconProps> {
4351
styles?: IIconProps['styles'];
4452

4553
constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, renderer: Renderer2) {
46-
super(elementRef, changeDetectorRef, renderer, true);
54+
super(elementRef, changeDetectorRef, renderer, { setHostDisplay: true });
4755
}
4856
}

libs/fabric/src/lib/components/pickers/base-picker/base-picker.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ export abstract class FabBasePickerComponent<T, TProps extends IBasePickerProps<
8888
private _pickerSuggestionsOptions: IBasePickerSuggestionsOptions;
8989

9090
constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, renderer: Renderer2) {
91-
super(elementRef, changeDetectorRef, true);
91+
super(elementRef, changeDetectorRef, renderer, { setHostDisplay: true });
9292

9393
this.onChangeHandler = this.onChangeHandler.bind(this);
9494
this.onFocusHandler = this.onFocusHandler.bind(this);

libs/fabric/src/lib/components/pivot/pivot.component.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,8 @@ export class FabPivotItemComponent extends ReactWrapperComponent<IPivotItemProps
6969

7070
onRenderItemLink: (props?: IPivotItemProps, defaultRender?: JsxRenderFunc<IPivotItemProps>) => JSX.Element;
7171

72-
constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, renderer: Renderer2) {
73-
super(elementRef, changeDetectorRef, renderer, true);
72+
constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, renderer: Renderer2, ngZone: NgZone) {
73+
super(elementRef, changeDetectorRef, renderer, { setHostDisplay: true });
7474
}
7575

7676
ngOnInit() {
@@ -145,7 +145,7 @@ export class FabPivotComponent extends ReactWrapperComponent<IPivotProps> {
145145
readonly onLinkClick = new EventEmitter<{ item?: PivotItem; ev?: MouseEvent }>();
146146

147147
constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, renderer: Renderer2) {
148-
super(elementRef, changeDetectorRef, renderer, true);
148+
super(elementRef, changeDetectorRef, renderer, { setHostDisplay: true });
149149

150150
this.onLinkClickHandler = this.onLinkClickHandler.bind(this);
151151
}

libs/fabric/src/lib/components/shimmer/shimmer.component.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ export class FabShimmerComponent extends ReactWrapperComponent<IShimmerProps> {
6666
private _renderCustomElementsGroup?: InputRendererOptions<{}>;
6767

6868
constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, renderer: Renderer2) {
69-
super(elementRef, changeDetectorRef, renderer, true);
69+
super(elementRef, changeDetectorRef, renderer, { setHostDisplay: true });
7070
}
7171
}
7272

@@ -109,6 +109,6 @@ export class FabShimmerElementsGroupComponent extends ReactWrapperComponent<IShi
109109
styles?: IShimmerElementsGroupProps['styles'];
110110

111111
constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, renderer: Renderer2) {
112-
super(elementRef, changeDetectorRef, renderer, true);
112+
super(elementRef, changeDetectorRef, renderer, { setHostDisplay: true });
113113
}
114114
}

libs/fabric/src/lib/components/tooltip/tooltip-host.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ export class FabTooltipHostComponent extends ReactWrapperComponent<ITooltipHostP
7575
private _tooltipOptions: ITooltipOptions;
7676

7777
constructor(elementRef: ElementRef, changeDetectorRef: ChangeDetectorRef, renderer: Renderer2) {
78-
super(elementRef, changeDetectorRef, renderer, true);
78+
super(elementRef, changeDetectorRef, renderer, { setHostDisplay: true });
7979

8080
this.onTooltipToggleHandler = this.onTooltipToggleHandler.bind(this);
8181
}

0 commit comments

Comments
 (0)