Skip to content

Commit 748ce28

Browse files
Use tracked properties for everything (#1711)
1 parent 6f8eb2d commit 748ce28

File tree

7 files changed

+408
-293
lines changed

7 files changed

+408
-293
lines changed

ember-shepherd/.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
# compiled output
55
/dist/
66
/declarations/
7+
/tmp/
78

89
# misc
910
/coverage/

ember-shepherd/package.json

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
"dist"
3030
],
3131
"scripts": {
32-
"build": "concurrently \"npm:build:*\" --names \"build:\"",
32+
"build": "concurrently \"pnpm:build:*\" --names \"build:\"",
3333
"build:js": "rollup --config",
3434
"build:types": "tsc",
3535
"lint": "concurrently 'pnpm:lint:*(!fix)' --names 'lint:'",
@@ -40,42 +40,42 @@
4040
"lint:js:fix": "eslint . --fix",
4141
"lint:types": "tsc --emitDeclarationOnly false --noEmit",
4242
"prepack": "pnpm run build",
43-
"start": "concurrently \"npm:start:*\" --names \"start:\"",
43+
"start": "concurrently \"pnpm:start:*\" --names \"start:\"",
4444
"start:js": "rollup --config --watch --no-watch.clearScreen",
4545
"start:types": "tsc --watch",
4646
"test": "echo 'A v2 addon does not have tests, run tests in test-app'",
4747
"prepare": "pnpm run build"
4848
},
4949
"dependencies": {
50-
"@embroider/addon-shim": "^1.8.7",
51-
"decorator-transforms": "^2.0.0",
5250
"@babel/core": "^7.26.0",
53-
"shepherd.js": "^14.1.0"
51+
"@embroider/addon-shim": "^1.9.0",
52+
"decorator-transforms": "^2.3.0",
53+
"shepherd.js": "^14.3.0"
5454
},
5555
"devDependencies": {
5656
"@babel/core": "^7.24.4",
57-
"@babel/eslint-parser": "^7.24.1",
58-
"@babel/runtime": "^7.24.4",
57+
"@babel/eslint-parser": "^7.25.9",
58+
"@babel/plugin-transform-typescript": "^7.25.9",
59+
"@babel/runtime": "^7.26.0",
5960
"@embroider/addon-dev": "^4.3.1",
6061
"@rollup/plugin-babel": "^6.0.4",
61-
"babel-plugin-ember-template-compilation": "^2.2.5",
62-
"@babel/plugin-transform-typescript": "^7.23.6",
63-
"@tsconfig/ember": "^3.0.5",
62+
"@tsconfig/ember": "^3.0.8",
63+
"babel-plugin-ember-template-compilation": "^2.3.0",
6464
"concurrently": "^8.2.2",
6565
"ember-source": "~5.12.0",
6666
"ember-template-lint": "^6.0.0",
67-
"eslint": "^8.56.0",
67+
"eslint": "^8.57.1",
6868
"eslint-config-prettier": "^9.1.0",
69-
"eslint-plugin-ember": "^12.0.2",
70-
"eslint-plugin-import": "^2.29.1",
71-
"eslint-plugin-n": "^17.3.1",
72-
"eslint-plugin-prettier": "^5.1.3",
73-
"prettier": "^3.2.5",
74-
"prettier-plugin-ember-template-tag": "^2.0.2",
75-
"rollup": "^4.16.4",
69+
"eslint-plugin-ember": "^12.3.3",
70+
"eslint-plugin-import": "^2.31.0",
71+
"eslint-plugin-n": "^17.14.0",
72+
"eslint-plugin-prettier": "^5.2.1",
73+
"prettier": "^3.4.1",
74+
"prettier-plugin-ember-template-tag": "^2.0.4",
75+
"rollup": "^4.27.4",
7676
"rollup-plugin-copy": "^3.5.0",
77-
"typescript": "^5.4.2",
78-
"webpack": "^5.95.0"
77+
"typescript": "^5.7.2",
78+
"webpack": "^5.96.1"
7979
},
8080
"peerDependencies": {
8181
"ember-source": "^3.28.0 || >= 4.0.0"

ember-shepherd/src/services/tour.ts

Lines changed: 17 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
/* eslint-disable ember/avoid-leaking-state-in-ember-objects */
2-
import { set } from '@ember/object';
31
import { isEmpty, isPresent } from '@ember/utils';
42
import Service from '@ember/service';
53
import Evented from '@ember/object/evented';
@@ -37,7 +35,6 @@ interface EmberShepherdStepOptions extends Omit<StepOptions, 'buttons'> {
3735
* @class Tour
3836
*/
3937
export default class TourService extends Service.extend(Evented) {
40-
declare tourObject: Tour;
4138
declare tourName?: string;
4239

4340
// Configuration Options
@@ -95,7 +92,7 @@ export default class TourService extends Service.extend(Evented) {
9592
* @property defaultStepOptions
9693
* @type StepOptions
9794
*/
98-
defaultStepOptions: StepOptions = {};
95+
@tracked defaultStepOptions: StepOptions = {};
9996

10097
/**
10198
* @default undefined
@@ -165,7 +162,7 @@ export default class TourService extends Service.extend(Evented) {
165162
*
166163
* _Example_
167164
* ```js
168-
* this.tour.set('requiredElements', [
165+
* this.tour.requiredElements = [
169166
* {
170167
* selector: '.search-result-element',
171168
* message: 'No search results found. Please execute another search, and try to start the tour again.',
@@ -176,7 +173,7 @@ export default class TourService extends Service.extend(Evented) {
176173
* message: 'User not logged in, please log in to start this tour.',
177174
* title: 'Please login'
178175
* },
179-
* ]);
176+
* ];
180177
* ```
181178
182179
* > **default value:** `[]`
@@ -185,8 +182,15 @@ export default class TourService extends Service.extend(Evented) {
185182
* @property requiredElements
186183
* @type Array
187184
*/
188-
requiredElements = [];
189-
steps = [];
185+
@tracked requiredElements = [];
186+
187+
/**
188+
* A reference to the Shepherd Tour instance.
189+
*
190+
* @property tourObject
191+
* @type Tour
192+
*/
193+
@tracked declare tourObject: Tour;
190194

191195
/**
192196
* Take a set of steps, create a tour object based on the current configuration and load the shepherd.js dependency.
@@ -366,7 +370,7 @@ export default class TourService extends Service.extend(Evented) {
366370
'the Promise from addSteps must be in a resolved state before the tour can be started',
367371
);
368372
}
369-
set(this, 'isActive', true);
373+
this.isActive = true;
370374
tourObject.start();
371375
}
372376

@@ -390,7 +394,7 @@ export default class TourService extends Service.extend(Evented) {
390394
*/
391395
_onTourFinish(completeOrCancel: 'complete' | 'cancel') {
392396
if (!this.isDestroyed) {
393-
set(this, 'isActive', false);
397+
this.isActive = false;
394398
}
395399
// @ts-expect-error TODO: refactor away from Evented mixin
396400
this.trigger(completeOrCancel);
@@ -437,7 +441,7 @@ export default class TourService extends Service.extend(Evented) {
437441
tourObject.on('complete', bind(this, '_onTourFinish', 'complete'));
438442
tourObject.on('cancel', bind(this, '_onTourFinish', 'cancel'));
439443

440-
set(this, 'tourObject', tourObject);
444+
this.tourObject = tourObject;
441445
});
442446
}
443447

@@ -465,8 +469,8 @@ export default class TourService extends Service.extend(Evented) {
465469
elementIsHidden(selectedElement as HTMLElement))
466470
) {
467471
allElementsPresent = false;
468-
set(this, 'errorTitle', element.title);
469-
set(this, 'messageForUser', element.message);
472+
this.errorTitle = element.title;
473+
this.messageForUser = element.message;
470474
}
471475
},
472476
);

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,10 @@
2121
"devDependencies": {
2222
"@release-it-plugins/lerna-changelog": "^6.1.0",
2323
"@release-it-plugins/workspaces": "^4.2.0",
24-
"concurrently": "^8.2.0",
25-
"prettier": "^3.0.3",
26-
"prettier-plugin-ember-template-tag": "^2.0.2",
27-
"release-it": "^17.1.1"
24+
"concurrently": "^8.2.2",
25+
"prettier": "^3.4.1",
26+
"prettier-plugin-ember-template-tag": "^2.0.4",
27+
"release-it": "^17.10.0"
2828
},
2929
"pnpm": {
3030
"overrides": {

0 commit comments

Comments
 (0)