Skip to content

Commit 5b7ec2a

Browse files
committed
feat(service): Add feature for disable service
1 parent edaaa52 commit 5b7ec2a

File tree

3 files changed

+34
-11
lines changed

3 files changed

+34
-11
lines changed

projects/ngx-metrika-app/src/app/app.component.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@ import {NgxMetrikaService} from '@kolkov/ngx-metrika';
77
styleUrls: ['./app.component.scss']
88
})
99
export class AppComponent {
10-
name = 'Angular 6 Yandex Metrika';
10+
name = 'Angular 6+ Yandex Metrika';
1111

1212
constructor(private ym: NgxMetrikaService) {
1313
ym.debug = true;
14+
ym.disable();
1415
}
1516
}

projects/ngx-metrika/README.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,15 @@ this.ym.hit.emit({url: '/custom',{
5656
}});
5757
```
5858

59+
## Disable service
60+
If we need to disable service for some reason, such as logged in into private area, we can disable it:
61+
```ts
62+
this.ym.disable();
63+
```
64+
If we need to re-enable service (when logoff from private area), then we can enable it:
65+
```ts
66+
this.ym.enable();
67+
```
5968
## ReachGoal
6069

6170
[ReachGoal](https://yandex.ru/support/metrika/objects/reachgoal.html) expect an action.

projects/ngx-metrika/src/lib/ngx-metrika.service.ts

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ export class NgxMetrikaService {
2121
config: NgxMetrikaConfig;
2222
debug = false;
2323
previousUrl: string;
24+
25+
private disabled: boolean;
2426
private renderer: Renderer2;
2527

2628
public hit = new EventEmitter<MetrikaHitEventOptions>();
@@ -73,7 +75,28 @@ export class NgxMetrikaService {
7375
}
7476
}
7577

78+
disable() {
79+
this.disabled = true;
80+
}
81+
82+
enable() {
83+
this.disabled = false;
84+
}
85+
86+
checkCounter(id: string | number): Promise<any> {
87+
const that = this;
88+
return new Promise((resolve) => {
89+
const counterName = `yacounter${id}inited`;
90+
that.renderer.listen('document', counterName, () => {
91+
resolve({});
92+
});
93+
});
94+
}
95+
7696
private onHit(url: string, options?: MetrikaHitOptions) {
97+
if (this.disabled) {
98+
return;
99+
}
77100
try {
78101
const defaults = {
79102
referer: this.previousUrl
@@ -134,14 +157,4 @@ export class NgxMetrikaService {
134157
}
135158
return name;
136159
}
137-
138-
checkCounter(id: string | number): Promise<any> {
139-
const that = this;
140-
return new Promise((resolve) => {
141-
const counterName = `yacounter${id}inited`;
142-
that.renderer.listen('document', counterName, () => {
143-
resolve({});
144-
});
145-
});
146-
}
147160
}

0 commit comments

Comments
 (0)