feat: panel增加自动埋点

This commit is contained in:
wuyue.xht 2020-06-11 10:53:07 +08:00
parent f915d19dba
commit afc775856c
3 changed files with 33 additions and 36 deletions

View File

@ -38,7 +38,7 @@ function HelpTip({ tip }: any) {
<Icon type="help" size="small" className="lc-help-tip" /> <Icon type="help" size="small" className="lc-help-tip" />
<Tip>{tip.content}</Tip> <Tip>{tip.content}</Tip>
</div> </div>
) );
} }
@observer @observer
@ -49,7 +49,7 @@ export class PanelDockView extends Component<DockProps & { dock: PanelDock }> {
componentDidUpdate() { componentDidUpdate() {
this.checkActived(); this.checkActived();
} }
private lastActived: boolean = false; private lastActived = false;
checkActived() { checkActived() {
const { dock } = this.props; const { dock } = this.props;
if (dock.actived !== this.lastActived) { if (dock.actived !== this.lastActived) {
@ -77,12 +77,10 @@ export class PanelDockView extends Component<DockProps & { dock: PanelDock }> {
} }
} }
export class DialogDockView extends Component { export class DialogDockView extends Component {}
}
@observer @observer
export class TitledPanelView extends Component<{ panel: Panel }> { export class TitledPanelView extends Component<{ panel: Panel; area?: string }> {
shouldComponentUpdate() { shouldComponentUpdate() {
return false; return false;
} }
@ -92,7 +90,7 @@ export class TitledPanelView extends Component<{ panel: Panel }> {
componentDidUpdate() { componentDidUpdate() {
this.checkVisible(); this.checkVisible();
} }
private lastVisible: boolean = false; private lastVisible = false;
checkVisible() { checkVisible() {
const { panel } = this.props; const { panel } = this.props;
const currentVisible = panel.inited && panel.visible; const currentVisible = panel.inited && panel.visible;
@ -106,14 +104,17 @@ export class TitledPanelView extends Component<{ panel: Panel }> {
} }
} }
render() { render() {
const { panel } = this.props; const { panel, area } = this.props;
if (!panel.inited) { if (!panel.inited) {
return null; return null;
} }
return ( return (
<div className={classNames('lc-titled-panel', { <div
className={classNames('lc-titled-panel', {
hidden: !panel.visible, hidden: !panel.visible,
})}> })}
id={`${area || ''}-${panel.name}`}
>
<PanelTitle panel={panel} /> <PanelTitle panel={panel} />
<div className="lc-panel-body">{panel.body}</div> <div className="lc-panel-body">{panel.body}</div>
</div> </div>
@ -122,7 +123,7 @@ export class TitledPanelView extends Component<{ panel: Panel }> {
} }
@observer @observer
export class PanelView extends Component<{ panel: Panel }> { export class PanelView extends Component<{ panel: Panel; area?: string }> {
shouldComponentUpdate() { shouldComponentUpdate() {
return false; return false;
} }
@ -132,7 +133,7 @@ export class PanelView extends Component<{ panel: Panel }> {
componentDidUpdate() { componentDidUpdate() {
this.checkVisible(); this.checkVisible();
} }
private lastVisible: boolean = false; private lastVisible = false;
checkVisible() { checkVisible() {
const { panel } = this.props; const { panel } = this.props;
const currentVisible = panel.inited && panel.visible; const currentVisible = panel.inited && panel.visible;
@ -150,7 +151,7 @@ export class PanelView extends Component<{ panel: Panel }> {
} }
} }
render() { render() {
const { panel } = this.props; const { panel, area } = this.props;
if (!panel.inited) { if (!panel.inited) {
return null; return null;
} }
@ -159,6 +160,7 @@ export class PanelView extends Component<{ panel: Panel }> {
className={classNames('lc-panel', { className={classNames('lc-panel', {
hidden: !panel.visible, hidden: !panel.visible,
})} })}
id={`${area || ''}-${panel.name}`}
> >
{panel.body} {panel.body}
</div> </div>
@ -233,7 +235,7 @@ export class WidgetView extends Component<{ widget: IWidget }> {
componentDidUpdate() { componentDidUpdate() {
this.checkVisible(); this.checkVisible();
} }
private lastVisible: boolean = false; private lastVisible = false;
checkVisible() { checkVisible() {
const { widget } = this.props; const { widget } = this.props;
const currentVisible = widget.visible; const currentVisible = widget.visible;

View File

@ -25,8 +25,7 @@ export default class LeftFixedPane extends Component<{ area: Area<PanelConfig, P
'lc-area-visible': area.visible, 'lc-area-visible': area.visible,
})} })}
> >
{ {!hideTitleBar && (
!hideTitleBar && (
<Button <Button
text text
className="lc-pane-close" className="lc-pane-close"
@ -36,8 +35,7 @@ export default class LeftFixedPane extends Component<{ area: Area<PanelConfig, P
> >
<Icon type="close" /> <Icon type="close" />
</Button> </Button>
) )}
}
<Contents area={area} /> <Contents area={area} />
</div> </div>
); );
@ -51,10 +49,6 @@ class Contents extends Component<{ area: Area<PanelConfig, Panel> }> {
} }
render() { render() {
const { area } = this.props; const { area } = this.props;
return ( return <Fragment>{area.container.items.map((panel) => panel.content)}</Fragment>;
<Fragment>
{area.container.items.map((panel) => panel.content)}
</Fragment>
);
} }
} }

View File

@ -57,9 +57,10 @@ export default class Panel implements IWidget {
return createElement(PanelView, { return createElement(PanelView, {
panel: this, panel: this,
key: this.id, key: this.id,
area: this.parent?.name,
}); });
} }
return createElement(TitledPanelView, { panel: this, key: this.id }); return createElement(TitledPanelView, { panel: this, key: this.id, area: this.parent?.name });
} }
readonly title: TitleContent; readonly title: TitleContent;