blob: 46cc29bba6bae3ba5fe0de99cedbc6b2727cc01e [file] [log] [blame]
Devon Carew3798eaa2015-01-13 13:25:56 -08001// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2// for details. All rights reserved. Use of this source code is governed by a
3// BSD-style license that can be found in the LICENSE file.
4
Devon Carewc43617e2016-03-13 21:23:52 -07005/// A simple web app to hand-test the usage library.
Devon Carew3798eaa2015-01-13 13:25:56 -08006library usage_example;
7
8import 'dart:html';
9
Devon Carewb59f60b2016-10-16 13:23:46 -070010import 'package:usage/usage_html.dart';
Devon Carew3798eaa2015-01-13 13:25:56 -080011
Devon Carew62d73d92020-11-09 10:57:37 -080012Analytics? _analytics;
13String? _lastUa;
Devon Carew3798eaa2015-01-13 13:25:56 -080014int _count = 0;
15
16void main() {
Devon Carew62d73d92020-11-09 10:57:37 -080017 querySelector('#foo')!.onClick.listen((_) => _handleFoo());
18 querySelector('#bar')!.onClick.listen((_) => _handleBar());
19 querySelector('#page')!.onClick.listen((_) => _changePage());
Devon Carew3798eaa2015-01-13 13:25:56 -080020}
21
Devon Carew62d73d92020-11-09 10:57:37 -080022String _ua() => (querySelector('#ua') as InputElement).value!.trim();
Devon Carew3798eaa2015-01-13 13:25:56 -080023
Devon Carewb59f60b2016-10-16 13:23:46 -070024Analytics getAnalytics() {
Devon Carew3798eaa2015-01-13 13:25:56 -080025 if (_analytics == null || _lastUa != _ua()) {
26 _lastUa = _ua();
Devon Carew62d73d92020-11-09 10:57:37 -080027 _analytics = AnalyticsHtml(_lastUa!, 'Test app', '1.0');
28 _analytics!.sendScreenView(window.location.pathname!);
Devon Carew3798eaa2015-01-13 13:25:56 -080029 }
30
Devon Carew62d73d92020-11-09 10:57:37 -080031 return _analytics!;
Devon Carew3798eaa2015-01-13 13:25:56 -080032}
33
Devon Carewb59f60b2016-10-16 13:23:46 -070034void _handleFoo() {
Nate Boschc2051dd2020-01-13 13:15:22 -080035 var analytics = getAnalytics();
Devon Carew3798eaa2015-01-13 13:25:56 -080036 analytics.sendEvent('main', 'foo');
37}
38
Devon Carewb59f60b2016-10-16 13:23:46 -070039void _handleBar() {
Nate Boschc2051dd2020-01-13 13:15:22 -080040 var analytics = getAnalytics();
Devon Carew3798eaa2015-01-13 13:25:56 -080041 analytics.sendEvent('main', 'bar');
42}
43
Devon Carewb59f60b2016-10-16 13:23:46 -070044void _changePage() {
Nate Boschc2051dd2020-01-13 13:15:22 -080045 var analytics = getAnalytics();
Devon Carew3798eaa2015-01-13 13:25:56 -080046 window.history.pushState(null, 'new page', '${++_count}.html');
Devon Carew62d73d92020-11-09 10:57:37 -080047 analytics.sendScreenView(window.location.pathname!);
Devon Carew3798eaa2015-01-13 13:25:56 -080048}