@flighthq/tray 0.5.1-next.1069.554a2ac → 0.5.1-next.1201.9b49dee
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/dist/tray.d.ts +21 -21
- package/dist/tray.d.ts.map +1 -1
- package/dist/tray.js +50 -52
- package/dist/tray.js.map +1 -1
- package/package.json +6 -6
- package/src/enableTrayGuards.test.ts +7 -6
- package/src/tray.test.ts +76 -64
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# @flighthq/tray
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Tray icon Entities over explicitly injected operation providers
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -13,5 +13,5 @@ Import the supported application-facing API from `@flighthq/tray`. The `@flighth
|
|
|
13
13
|
This package is part of the locked-version Flight SDK graph. Applications may instead install and import `@flighthq/sdk` when package-level tree shaking is sufficient.
|
|
14
14
|
|
|
15
15
|
- [Flight project](https://github.com/flighthq/flight)
|
|
16
|
-
- [Source for @flighthq/tray@0.5.1-next.
|
|
17
|
-
- [License](https://github.com/flighthq/flight/blob/
|
|
16
|
+
- [Source for @flighthq/tray@0.5.1-next.1201.9b49dee](https://github.com/flighthq/flight/tree/9b49dee3f22f6b2838c3d237edcc77bca65734f2/packages/tray)
|
|
17
|
+
- [License](https://github.com/flighthq/flight/blob/9b49dee3f22f6b2838c3d237edcc77bca65734f2/LICENSE.md)
|
package/dist/tray.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import type { Entity, EntityConstruction,
|
|
2
|
-
export declare function createTrayIcon
|
|
1
|
+
import type { Entity, EntityConstruction, HostTrayBalloonEventsProvider, HostTrayBalloonProvider, HostTrayBoundsProvider, HostTrayDoubleClickPolicyProvider, HostTrayDropEventsProvider, HostTrayImageProvider, HostTrayInteractionEventsProvider, HostTrayLifecycleProvider, HostTrayMenuProvider, HostTrayMenuSelectionEventsProvider, HostTrayPopupMenuProvider, HostTrayPressedImageProvider, HostTrayTemplateImageProvider, HostTrayTitleProvider, HostTrayTooltipProvider, MenuItemTemplate, TrayAnimationStartResult, TrayAnimationStopResult, TrayBalloonDisplayResult, TrayBalloonEvent, TrayBalloonOptions, TrayBalloonRemoveResult, TrayBoundsResult, TrayCreateResult, TrayCreateProviderResult, TrayDestroyResult, TrayDoubleClickPolicyUpdateResult, TrayDropEvent, TrayEventAttachResult, TrayIcon, TrayIconOptions, TrayIconSource, TrayImageUpdateResult, TrayInteractionEvent, TrayMenuSelectionEvent, TrayMenuUpdateResult, TrayPopupMenuResult, TrayPressedImageUpdateResult, TrayTemplateImageUpdateResult, TrayTitleReadResult, TrayTitleUpdateResult, TrayTooltipReadResult, TrayTooltipUpdateResult, Vector2Like } from '@flighthq/types/contract';
|
|
2
|
+
export declare function createTrayIcon(hostTrayLifecycle: Readonly<HostTrayLifecycleProvider>, options?: Readonly<TrayIconOptions>): Promise<TrayCreateResult>;
|
|
3
3
|
export declare function destroyTrayIcon(tray: TrayIcon): Promise<TrayDestroyResult>;
|
|
4
|
-
export declare function displayTrayBalloon(tray:
|
|
5
|
-
export declare function getTrayIconBounds(tray:
|
|
6
|
-
export declare function getTrayIcons(
|
|
7
|
-
export declare function getTrayIconTitle(tray:
|
|
8
|
-
export declare function getTrayIconTooltip(tray:
|
|
4
|
+
export declare function displayTrayBalloon(hostTrayBalloon: Readonly<HostTrayBalloonProvider>, tray: TrayIcon, options: Readonly<TrayBalloonOptions>): Promise<TrayBalloonDisplayResult>;
|
|
5
|
+
export declare function getTrayIconBounds(hostTrayBounds: Readonly<HostTrayBoundsProvider>, tray: TrayIcon): Promise<TrayBoundsResult>;
|
|
6
|
+
export declare function getTrayIcons(hostTrayLifecycle: Readonly<HostTrayLifecycleProvider>): readonly TrayIcon[];
|
|
7
|
+
export declare function getTrayIconTitle(hostTrayTitle: Readonly<HostTrayTitleProvider>, tray: TrayIcon): Promise<TrayTitleReadResult>;
|
|
8
|
+
export declare function getTrayIconTooltip(hostTrayTooltip: Readonly<HostTrayTooltipProvider>, tray: TrayIcon): Promise<TrayTooltipReadResult>;
|
|
9
9
|
export declare function initializeTrayCreateFailedResult(out: EntityConstruction<Entity & {
|
|
10
10
|
error?: unknown;
|
|
11
11
|
outcome: 'tray-create-failed';
|
|
@@ -22,20 +22,20 @@ export declare function initializeTrayCreateSuccessResult<Tray extends TrayIcon>
|
|
|
22
22
|
}>, outcome: 'created', tray: Tray): void;
|
|
23
23
|
export declare function isTrayDestroyed(tray: Readonly<TrayIcon>): boolean;
|
|
24
24
|
export declare function isTrayIconAnimating(tray: Readonly<TrayIcon>): boolean;
|
|
25
|
-
export declare function onTrayBalloonEvent(tray:
|
|
26
|
-
export declare function onTrayDrop(tray:
|
|
27
|
-
export declare function onTrayInteraction(tray:
|
|
28
|
-
export declare function onTrayMenuSelection(tray:
|
|
29
|
-
export declare function popupTrayContextMenu(tray:
|
|
30
|
-
export declare function removeTrayBalloon(tray:
|
|
25
|
+
export declare function onTrayBalloonEvent(hostTrayBalloonEvents: Readonly<HostTrayBalloonEventsProvider>, tray: TrayIcon, listener: (event: Readonly<TrayBalloonEvent>) => void): TrayEventAttachResult;
|
|
26
|
+
export declare function onTrayDrop(hostTrayDropEvents: Readonly<HostTrayDropEventsProvider>, tray: TrayIcon, listener: (event: Readonly<TrayDropEvent>) => void): TrayEventAttachResult;
|
|
27
|
+
export declare function onTrayInteraction(hostTrayInteractionEvents: Readonly<HostTrayInteractionEventsProvider>, tray: TrayIcon, listener: (event: Readonly<TrayInteractionEvent>) => void): TrayEventAttachResult;
|
|
28
|
+
export declare function onTrayMenuSelection(hostTrayMenuSelectionEvents: Readonly<HostTrayMenuSelectionEventsProvider>, tray: TrayIcon, listener: (event: Readonly<TrayMenuSelectionEvent>) => void): TrayEventAttachResult;
|
|
29
|
+
export declare function popupTrayContextMenu(hostTrayPopupMenu: Readonly<HostTrayPopupMenuProvider>, tray: TrayIcon, position?: Readonly<Vector2Like>): Promise<TrayPopupMenuResult>;
|
|
30
|
+
export declare function removeTrayBalloon(hostTrayBalloon: Readonly<HostTrayBalloonProvider>, tray: TrayIcon): Promise<TrayBalloonRemoveResult>;
|
|
31
31
|
export declare function setTrayAnimationGuard(guard: ((tray: TrayIcon, frameCount: number, intervalMs: number) => void) | null): void;
|
|
32
|
-
export declare function setTrayIcon(tray:
|
|
33
|
-
export declare function setTrayIconContextMenu(tray:
|
|
34
|
-
export declare function setTrayIconTemplate(tray:
|
|
35
|
-
export declare function setTrayIconTitle(tray:
|
|
36
|
-
export declare function setTrayIconTooltip(tray:
|
|
37
|
-
export declare function setTrayIgnoreDoubleClickEvents(tray:
|
|
38
|
-
export declare function setTrayPressedIcon(tray:
|
|
39
|
-
export declare function startTrayIconAnimation(tray:
|
|
32
|
+
export declare function setTrayIcon(hostTrayImage: Readonly<HostTrayImageProvider>, tray: TrayIcon, icon: TrayIconSource): Promise<TrayImageUpdateResult>;
|
|
33
|
+
export declare function setTrayIconContextMenu(hostTrayMenu: Readonly<HostTrayMenuProvider>, tray: TrayIcon, items: readonly MenuItemTemplate[]): Promise<TrayMenuUpdateResult>;
|
|
34
|
+
export declare function setTrayIconTemplate(hostTrayTemplateImage: Readonly<HostTrayTemplateImageProvider>, tray: TrayIcon, isTemplate: boolean): Promise<TrayTemplateImageUpdateResult>;
|
|
35
|
+
export declare function setTrayIconTitle(hostTrayTitle: Readonly<HostTrayTitleProvider>, tray: TrayIcon, title: string): Promise<TrayTitleUpdateResult>;
|
|
36
|
+
export declare function setTrayIconTooltip(hostTrayTooltip: Readonly<HostTrayTooltipProvider>, tray: TrayIcon, tooltip: string): Promise<TrayTooltipUpdateResult>;
|
|
37
|
+
export declare function setTrayIgnoreDoubleClickEvents(hostTrayDoubleClickPolicy: Readonly<HostTrayDoubleClickPolicyProvider>, tray: TrayIcon, ignore: boolean): Promise<TrayDoubleClickPolicyUpdateResult>;
|
|
38
|
+
export declare function setTrayPressedIcon(hostTrayPressedImage: Readonly<HostTrayPressedImageProvider>, tray: TrayIcon, icon: TrayIconSource): Promise<TrayPressedImageUpdateResult>;
|
|
39
|
+
export declare function startTrayIconAnimation(hostTrayImage: Readonly<HostTrayImageProvider>, tray: TrayIcon, frames: readonly TrayIconSource[], intervalMs: number): Promise<TrayAnimationStartResult>;
|
|
40
40
|
export declare function stopTrayIconAnimation(tray: TrayIcon): TrayAnimationStopResult;
|
|
41
41
|
//# sourceMappingURL=tray.d.ts.map
|
package/dist/tray.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tray.d.ts","sourceRoot":"","sources":["../src/tray.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,MAAM,EACN,kBAAkB,EAClB,
|
|
1
|
+
{"version":3,"file":"tray.d.ts","sourceRoot":"","sources":["../src/tray.ts"],"names":[],"mappings":"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"}
|
package/dist/tray.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { allocateEntity, createEntityRuntime, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { connectSignal, disconnectSignal } from '@flighthq/signals/contract';
|
|
3
3
|
import { EntityRuntimeKey } from '@flighthq/types/contract';
|
|
4
|
-
export async function createTrayIcon(
|
|
4
|
+
export async function createTrayIcon(hostTrayLifecycle, options = {}) {
|
|
5
5
|
const tray = finishEntity(allocateEntity());
|
|
6
6
|
let result;
|
|
7
7
|
try {
|
|
8
|
-
result = await
|
|
8
|
+
result = await hostTrayLifecycle.create(tray, options);
|
|
9
9
|
}
|
|
10
10
|
catch (error) {
|
|
11
11
|
const out = allocateEntity();
|
|
@@ -21,9 +21,8 @@ export async function createTrayIcon(host, options = {}) {
|
|
|
21
21
|
runtime.animationGeneration = 0;
|
|
22
22
|
runtime.animationTimer = null;
|
|
23
23
|
runtime.animationWriteTail = Promise.resolve();
|
|
24
|
-
runtime.capabilities = { ...host.tray };
|
|
25
24
|
runtime.destroyPromise = null;
|
|
26
|
-
runtime.lifecycle =
|
|
25
|
+
runtime.lifecycle = hostTrayLifecycle;
|
|
27
26
|
runtime.releases = new Set();
|
|
28
27
|
runtime.state = 'active';
|
|
29
28
|
tray[EntityRuntimeKey] = runtime;
|
|
@@ -42,11 +41,11 @@ export function destroyTrayIcon(tray) {
|
|
|
42
41
|
});
|
|
43
42
|
return runtime.destroyPromise;
|
|
44
43
|
}
|
|
45
|
-
export function displayTrayBalloon(tray, options) {
|
|
46
|
-
return invokeUpdate(
|
|
44
|
+
export function displayTrayBalloon(hostTrayBalloon, tray, options) {
|
|
45
|
+
return invokeUpdate(hostTrayBalloon, tray, 'balloon-display-failed', (provider) => provider.display(tray, options));
|
|
47
46
|
}
|
|
48
|
-
export function getTrayIconBounds(tray) {
|
|
49
|
-
return invokeRead(
|
|
47
|
+
export function getTrayIconBounds(hostTrayBounds, tray) {
|
|
48
|
+
return invokeRead(hostTrayBounds, tray, 'bounds-read-failed', (provider) => provider.get(tray));
|
|
50
49
|
}
|
|
51
50
|
async function destroyTrayRuntime(tray, runtime) {
|
|
52
51
|
runtime.state = 'destroying';
|
|
@@ -67,14 +66,14 @@ async function destroyTrayRuntime(tray, runtime) {
|
|
|
67
66
|
runtime.state = 'partially-destroyed';
|
|
68
67
|
return result;
|
|
69
68
|
}
|
|
70
|
-
export function getTrayIcons(
|
|
71
|
-
return
|
|
69
|
+
export function getTrayIcons(hostTrayLifecycle) {
|
|
70
|
+
return hostTrayLifecycle.list();
|
|
72
71
|
}
|
|
73
|
-
export function getTrayIconTitle(tray) {
|
|
74
|
-
return invokeRead(
|
|
72
|
+
export function getTrayIconTitle(hostTrayTitle, tray) {
|
|
73
|
+
return invokeRead(hostTrayTitle, tray, 'title-read-failed', (provider) => provider.get(tray));
|
|
75
74
|
}
|
|
76
|
-
export function getTrayIconTooltip(tray) {
|
|
77
|
-
return invokeRead(
|
|
75
|
+
export function getTrayIconTooltip(hostTrayTooltip, tray) {
|
|
76
|
+
return invokeRead(hostTrayTooltip, tray, 'tooltip-read-failed', (provider) => provider.get(tray));
|
|
78
77
|
}
|
|
79
78
|
export function initializeTrayCreateFailedResult(out, error, outcome) {
|
|
80
79
|
out.error = error;
|
|
@@ -95,49 +94,48 @@ export function isTrayDestroyed(tray) {
|
|
|
95
94
|
export function isTrayIconAnimating(tray) {
|
|
96
95
|
return getTrayRuntime(tray)?.animationTimer !== null;
|
|
97
96
|
}
|
|
98
|
-
export function onTrayBalloonEvent(tray, listener) {
|
|
99
|
-
return attachTrayEvent(
|
|
97
|
+
export function onTrayBalloonEvent(hostTrayBalloonEvents, tray, listener) {
|
|
98
|
+
return attachTrayEvent(hostTrayBalloonEvents, tray, listener);
|
|
100
99
|
}
|
|
101
|
-
export function onTrayDrop(tray, listener) {
|
|
102
|
-
return attachTrayEvent(
|
|
100
|
+
export function onTrayDrop(hostTrayDropEvents, tray, listener) {
|
|
101
|
+
return attachTrayEvent(hostTrayDropEvents, tray, listener);
|
|
103
102
|
}
|
|
104
|
-
export function onTrayInteraction(tray, listener) {
|
|
105
|
-
return attachTrayEvent(
|
|
103
|
+
export function onTrayInteraction(hostTrayInteractionEvents, tray, listener) {
|
|
104
|
+
return attachTrayEvent(hostTrayInteractionEvents, tray, listener);
|
|
106
105
|
}
|
|
107
|
-
export function onTrayMenuSelection(tray, listener) {
|
|
108
|
-
return attachTrayEvent(
|
|
106
|
+
export function onTrayMenuSelection(hostTrayMenuSelectionEvents, tray, listener) {
|
|
107
|
+
return attachTrayEvent(hostTrayMenuSelectionEvents, tray, listener);
|
|
109
108
|
}
|
|
110
|
-
export function popupTrayContextMenu(tray, position) {
|
|
111
|
-
return invokeUpdate(
|
|
109
|
+
export function popupTrayContextMenu(hostTrayPopupMenu, tray, position) {
|
|
110
|
+
return invokeUpdate(hostTrayPopupMenu, tray, 'popup-failed', (provider) => provider.popup(tray, position));
|
|
112
111
|
}
|
|
113
|
-
export function removeTrayBalloon(tray) {
|
|
114
|
-
return invokeUpdate(
|
|
112
|
+
export function removeTrayBalloon(hostTrayBalloon, tray) {
|
|
113
|
+
return invokeUpdate(hostTrayBalloon, tray, 'balloon-remove-failed', (provider) => provider.remove(tray));
|
|
115
114
|
}
|
|
116
115
|
export function setTrayAnimationGuard(guard) {
|
|
117
116
|
_animationGuard = guard;
|
|
118
117
|
}
|
|
119
|
-
export function setTrayIcon(tray, icon) {
|
|
120
|
-
return invokeUpdate(
|
|
118
|
+
export function setTrayIcon(hostTrayImage, tray, icon) {
|
|
119
|
+
return invokeUpdate(hostTrayImage, tray, 'image-update-failed', (provider) => provider.set(tray, icon));
|
|
121
120
|
}
|
|
122
|
-
export function setTrayIconContextMenu(tray, items) {
|
|
123
|
-
return invokeUpdate(
|
|
121
|
+
export function setTrayIconContextMenu(hostTrayMenu, tray, items) {
|
|
122
|
+
return invokeUpdate(hostTrayMenu, tray, 'menu-install-failed', (provider) => provider.set(tray, items));
|
|
124
123
|
}
|
|
125
|
-
export function setTrayIconTemplate(tray, isTemplate) {
|
|
126
|
-
return invokeUpdate(
|
|
124
|
+
export function setTrayIconTemplate(hostTrayTemplateImage, tray, isTemplate) {
|
|
125
|
+
return invokeUpdate(hostTrayTemplateImage, tray, 'template-image-update-failed', (provider) => provider.set(tray, isTemplate));
|
|
127
126
|
}
|
|
128
|
-
export function setTrayIconTitle(tray, title) {
|
|
129
|
-
return invokeUpdate(
|
|
127
|
+
export function setTrayIconTitle(hostTrayTitle, tray, title) {
|
|
128
|
+
return invokeUpdate(hostTrayTitle, tray, 'title-update-failed', (provider) => provider.set(tray, title));
|
|
130
129
|
}
|
|
131
|
-
export function setTrayIconTooltip(tray, tooltip) {
|
|
132
|
-
return invokeUpdate(
|
|
130
|
+
export function setTrayIconTooltip(hostTrayTooltip, tray, tooltip) {
|
|
131
|
+
return invokeUpdate(hostTrayTooltip, tray, 'tooltip-update-failed', (provider) => provider.set(tray, tooltip));
|
|
133
132
|
}
|
|
134
|
-
function attachTrayEvent(
|
|
133
|
+
function attachTrayEvent(provider, tray, listener) {
|
|
135
134
|
const runtime = getActiveTrayRuntime(tray);
|
|
136
135
|
if (runtime === null)
|
|
137
136
|
return { outcome: 'tray-destroyed' };
|
|
138
137
|
try {
|
|
139
|
-
const
|
|
140
|
-
const signal = backend?.getSignal(tray) ?? null;
|
|
138
|
+
const signal = provider.getSignal(tray);
|
|
141
139
|
if (signal === null)
|
|
142
140
|
return { outcome: 'tray-destroyed' };
|
|
143
141
|
connectSignal(signal, listener);
|
|
@@ -164,13 +162,13 @@ function attachTrayEvent(tray, slot, listener) {
|
|
|
164
162
|
return { error, outcome: 'subscription-failed' };
|
|
165
163
|
}
|
|
166
164
|
}
|
|
167
|
-
export function setTrayIgnoreDoubleClickEvents(tray, ignore) {
|
|
168
|
-
return invokeUpdate(
|
|
165
|
+
export function setTrayIgnoreDoubleClickEvents(hostTrayDoubleClickPolicy, tray, ignore) {
|
|
166
|
+
return invokeUpdate(hostTrayDoubleClickPolicy, tray, 'double-click-policy-update-failed', (provider) => provider.setIgnore(tray, ignore));
|
|
169
167
|
}
|
|
170
|
-
export function setTrayPressedIcon(tray, icon) {
|
|
171
|
-
return invokeUpdate(
|
|
168
|
+
export function setTrayPressedIcon(hostTrayPressedImage, tray, icon) {
|
|
169
|
+
return invokeUpdate(hostTrayPressedImage, tray, 'pressed-image-update-failed', (provider) => provider.set(tray, icon));
|
|
172
170
|
}
|
|
173
|
-
export async function startTrayIconAnimation(tray, frames, intervalMs) {
|
|
171
|
+
export async function startTrayIconAnimation(hostTrayImage, tray, frames, intervalMs) {
|
|
174
172
|
if (frames.length === 0)
|
|
175
173
|
return { outcome: 'empty' };
|
|
176
174
|
const runtime = getActiveTrayRuntime(tray);
|
|
@@ -179,7 +177,7 @@ export async function startTrayIconAnimation(tray, frames, intervalMs) {
|
|
|
179
177
|
_animationGuard?.(tray, frames.length, intervalMs);
|
|
180
178
|
stopTrayAnimationRuntime(runtime);
|
|
181
179
|
const generation = runtime.animationGeneration;
|
|
182
|
-
const first = await queueAnimationWrite(tray, runtime, generation, frames[0]);
|
|
180
|
+
const first = await queueAnimationWrite(hostTrayImage, tray, runtime, generation, frames[0]);
|
|
183
181
|
if (first.outcome !== 'updated')
|
|
184
182
|
return first;
|
|
185
183
|
if (runtime.state !== 'active' || runtime.animationGeneration !== generation)
|
|
@@ -187,7 +185,7 @@ export async function startTrayIconAnimation(tray, frames, intervalMs) {
|
|
|
187
185
|
let index = 0;
|
|
188
186
|
runtime.animationTimer = setInterval(() => {
|
|
189
187
|
index = (index + 1) % frames.length;
|
|
190
|
-
void queueAnimationWrite(tray, runtime, generation, frames[index]);
|
|
188
|
+
void queueAnimationWrite(hostTrayImage, tray, runtime, generation, frames[index]);
|
|
191
189
|
}, intervalMs);
|
|
192
190
|
const release = {
|
|
193
191
|
released: false,
|
|
@@ -202,12 +200,12 @@ export async function startTrayIconAnimation(tray, frames, intervalMs) {
|
|
|
202
200
|
};
|
|
203
201
|
return { outcome: 'started', release };
|
|
204
202
|
}
|
|
205
|
-
async function queueAnimationWrite(tray, runtime, generation, frame) {
|
|
203
|
+
async function queueAnimationWrite(hostTrayImage, tray, runtime, generation, frame) {
|
|
206
204
|
let result = { outcome: 'tray-destroyed' };
|
|
207
205
|
runtime.animationWriteTail = runtime.animationWriteTail.then(async () => {
|
|
208
206
|
if (runtime.state !== 'active' || runtime.animationGeneration !== generation)
|
|
209
207
|
return;
|
|
210
|
-
result = await setTrayIcon(tray, frame);
|
|
208
|
+
result = await setTrayIcon(hostTrayImage, tray, frame);
|
|
211
209
|
});
|
|
212
210
|
await runtime.animationWriteTail;
|
|
213
211
|
return result;
|
|
@@ -233,18 +231,18 @@ function getActiveTrayRuntime(tray) {
|
|
|
233
231
|
const runtime = getTrayRuntime(tray);
|
|
234
232
|
return runtime?.state === 'active' ? runtime : null;
|
|
235
233
|
}
|
|
236
|
-
async function invokeUpdate(
|
|
234
|
+
async function invokeUpdate(provider, tray, failure, operation) {
|
|
237
235
|
const runtime = getActiveTrayRuntime(tray);
|
|
238
236
|
if (runtime === null)
|
|
239
237
|
return { outcome: 'tray-destroyed' };
|
|
240
238
|
try {
|
|
241
|
-
return await operation(
|
|
239
|
+
return await operation(provider);
|
|
242
240
|
}
|
|
243
241
|
catch (error) {
|
|
244
242
|
return { error, outcome: failure };
|
|
245
243
|
}
|
|
246
244
|
}
|
|
247
|
-
function invokeRead(
|
|
248
|
-
return invokeUpdate(
|
|
245
|
+
function invokeRead(provider, tray, failure, operation) {
|
|
246
|
+
return invokeUpdate(provider, tray, failure, operation);
|
|
249
247
|
}
|
|
250
248
|
//# sourceMappingURL=tray.js.map
|
package/dist/tray.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tray.js","sourceRoot":"","sources":["../src/tray.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tray.js","sourceRoot":"","sources":["../src/tray.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@flighthq/tray",
|
|
3
|
-
"version": "0.5.1-next.
|
|
3
|
+
"version": "0.5.1-next.1201.9b49dee",
|
|
4
4
|
"author": "Joshua Granick and other contributors",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|
|
@@ -38,14 +38,14 @@
|
|
|
38
38
|
"clean:dist": "tsx ../../scripts/clean-package-dist.ts"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@flighthq/entity": "0.5.1-next.
|
|
42
|
-
"@flighthq/log": "0.5.1-next.
|
|
43
|
-
"@flighthq/signals": "0.5.1-next.
|
|
44
|
-
"@flighthq/types": "0.5.1-next.
|
|
41
|
+
"@flighthq/entity": "0.5.1-next.1201.9b49dee",
|
|
42
|
+
"@flighthq/log": "0.5.1-next.1201.9b49dee",
|
|
43
|
+
"@flighthq/signals": "0.5.1-next.1201.9b49dee",
|
|
44
|
+
"@flighthq/types": "0.5.1-next.1201.9b49dee"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
47
|
"typescript": "^5.3.0"
|
|
48
48
|
},
|
|
49
|
-
"description": "
|
|
49
|
+
"description": "Tray icon Entities over explicitly injected operation providers",
|
|
50
50
|
"sideEffects": false
|
|
51
51
|
}
|
|
@@ -51,9 +51,10 @@ function host() {
|
|
|
51
51
|
}
|
|
52
52
|
|
|
53
53
|
async function tray() {
|
|
54
|
-
const
|
|
54
|
+
const providers = host();
|
|
55
|
+
const result = await createTrayIcon(providers.tray.lifecycle);
|
|
55
56
|
if (result.outcome !== 'created') throw new Error(result.outcome);
|
|
56
|
-
return result.tray;
|
|
57
|
+
return { icon: result.tray, image: providers.tray.image };
|
|
57
58
|
}
|
|
58
59
|
|
|
59
60
|
function messages(): string {
|
|
@@ -64,8 +65,8 @@ describe('disableTrayGuards', () => {
|
|
|
64
65
|
it('stops inspecting later animations', async () => {
|
|
65
66
|
enableTrayGuards();
|
|
66
67
|
disableTrayGuards();
|
|
67
|
-
const icon = await tray();
|
|
68
|
-
const started = await startTrayIconAnimation(icon, ['a'], 0);
|
|
68
|
+
const { icon, image } = await tray();
|
|
69
|
+
const started = await startTrayIconAnimation(image, icon, ['a'], 0);
|
|
69
70
|
if (started.outcome === 'started') await started.release.release();
|
|
70
71
|
await destroyTrayIcon(icon);
|
|
71
72
|
expect(messages()).toBe('');
|
|
@@ -75,8 +76,8 @@ describe('disableTrayGuards', () => {
|
|
|
75
76
|
describe('enableTrayGuards', () => {
|
|
76
77
|
it('warns without refusing a non-positive interval', async () => {
|
|
77
78
|
enableTrayGuards();
|
|
78
|
-
const icon = await tray();
|
|
79
|
-
const started = await startTrayIconAnimation(icon, ['a'], 0);
|
|
79
|
+
const { icon, image } = await tray();
|
|
80
|
+
const started = await startTrayIconAnimation(image, icon, ['a'], 0);
|
|
80
81
|
expect(started.outcome).toBe('started');
|
|
81
82
|
expect(messages()).toContain('intervalMs is 0');
|
|
82
83
|
if (started.outcome === 'started') await started.release.release();
|
package/src/tray.test.ts
CHANGED
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
import { allocateEntity, finishEntity } from '@flighthq/entity/contract';
|
|
2
2
|
import { createSignal } from '@flighthq/signals/contract';
|
|
3
3
|
import type {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
4
|
+
HostTrayBalloonProvider,
|
|
5
|
+
HostTrayBalloonEventsProvider,
|
|
6
|
+
HostTrayBoundsProvider,
|
|
7
|
+
HostTrayDoubleClickPolicyProvider,
|
|
8
|
+
HostTrayDropEventsProvider,
|
|
9
|
+
HostTrayImageProvider,
|
|
10
|
+
HostTrayInteractionEventsProvider,
|
|
11
|
+
HostTrayLifecycleProvider,
|
|
12
|
+
HostTrayMenuProvider,
|
|
13
|
+
HostTrayMenuSelectionEventsProvider,
|
|
14
|
+
HostTrayPopupMenuProvider,
|
|
15
|
+
HostTrayPressedImageProvider,
|
|
16
|
+
HostTrayTemplateImageProvider,
|
|
17
|
+
HostTrayTitleProvider,
|
|
18
|
+
HostTrayTooltipProvider,
|
|
19
19
|
RectangleLike,
|
|
20
20
|
Signal,
|
|
21
21
|
TrayBalloonEvent,
|
|
22
22
|
TrayDropEvent,
|
|
23
23
|
TrayIcon,
|
|
24
|
-
TrayIconForHost,
|
|
25
24
|
TrayInteractionEvent,
|
|
26
25
|
TrayMenuSelectionEvent,
|
|
27
26
|
} from '@flighthq/types/contract';
|
|
@@ -58,21 +57,25 @@ import {
|
|
|
58
57
|
stopTrayIconAnimation,
|
|
59
58
|
} from './tray';
|
|
60
59
|
|
|
61
|
-
type TestHost =
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
60
|
+
type TestHost = { readonly tray: { readonly lifecycle: HostTrayLifecycleProvider } } & {
|
|
61
|
+
readonly tray: { readonly image: HostTrayImageProvider };
|
|
62
|
+
} & { readonly tray: { readonly title: HostTrayTitleProvider } } & {
|
|
63
|
+
readonly tray: { readonly tooltip: HostTrayTooltipProvider };
|
|
64
|
+
} & { readonly tray: { readonly menu: HostTrayMenuProvider } } & {
|
|
65
|
+
readonly tray: { readonly templateImage: HostTrayTemplateImageProvider };
|
|
66
|
+
} & { readonly tray: { readonly bounds: HostTrayBoundsProvider } } & {
|
|
67
|
+
readonly tray: { readonly popupMenu: HostTrayPopupMenuProvider };
|
|
68
|
+
} & { readonly tray: { readonly doubleClickPolicy: HostTrayDoubleClickPolicyProvider } } & {
|
|
69
|
+
readonly tray: { readonly pressedImage: HostTrayPressedImageProvider };
|
|
70
|
+
} & { readonly tray: { readonly balloon: HostTrayBalloonProvider } } & {
|
|
71
|
+
readonly tray: { readonly interactionEvents: HostTrayInteractionEventsProvider };
|
|
72
|
+
} & {
|
|
73
|
+
readonly tray: {
|
|
74
|
+
readonly menuSelectionEvents: HostTrayMenuSelectionEventsProvider;
|
|
75
|
+
};
|
|
76
|
+
} & { readonly tray: { readonly balloonEvents: HostTrayBalloonEventsProvider } } & {
|
|
77
|
+
readonly tray: { readonly dropEvents: HostTrayDropEventsProvider };
|
|
78
|
+
};
|
|
76
79
|
|
|
77
80
|
interface TestState {
|
|
78
81
|
balloonEvents: WeakMap<TrayIcon, Signal<(event: Readonly<TrayBalloonEvent>) => void>>;
|
|
@@ -235,8 +238,8 @@ function testHost(): { host: TestHost; state: TestState } {
|
|
|
235
238
|
return { host: host as TestHost, state };
|
|
236
239
|
}
|
|
237
240
|
|
|
238
|
-
async function acquire(host: TestHost): Promise<
|
|
239
|
-
const result = await createTrayIcon(host);
|
|
241
|
+
async function acquire(host: TestHost): Promise<TrayIcon> {
|
|
242
|
+
const result = await createTrayIcon(host.tray.lifecycle);
|
|
240
243
|
if (result.outcome !== 'created') throw new Error(result.outcome);
|
|
241
244
|
return result.tray;
|
|
242
245
|
}
|
|
@@ -244,7 +247,7 @@ async function acquire(host: TestHost): Promise<TrayIconForHost<TestHost>> {
|
|
|
244
247
|
describe('createTrayIcon', () => {
|
|
245
248
|
it('publishes only after provider acquisition and exposes no public id', async () => {
|
|
246
249
|
const { host, state } = testHost();
|
|
247
|
-
const pending = createTrayIcon(host);
|
|
250
|
+
const pending = createTrayIcon(host.tray.lifecycle);
|
|
248
251
|
expect(state.live).toHaveLength(1);
|
|
249
252
|
const result = await pending;
|
|
250
253
|
expect(result.outcome).toBe('created');
|
|
@@ -267,14 +270,19 @@ describe('displayTrayBalloon', () => {
|
|
|
267
270
|
it('owns balloon display on the Tray entity', async () => {
|
|
268
271
|
const { host } = testHost();
|
|
269
272
|
const tray = await acquire(host);
|
|
270
|
-
expect((await displayTrayBalloon(tray, { text: 'Done', title: 'Flight' })).outcome).toBe(
|
|
273
|
+
expect((await displayTrayBalloon(host.tray.balloon, tray, { text: 'Done', title: 'Flight' })).outcome).toBe(
|
|
274
|
+
'displayed',
|
|
275
|
+
);
|
|
271
276
|
});
|
|
272
277
|
});
|
|
273
278
|
|
|
274
279
|
describe('getTrayIconBounds', () => {
|
|
275
280
|
it('returns provider bounds', async () => {
|
|
276
281
|
const { host } = testHost();
|
|
277
|
-
expect(await getTrayIconBounds(await acquire(host))).toMatchObject({
|
|
282
|
+
expect(await getTrayIconBounds(host.tray.bounds, await acquire(host))).toMatchObject({
|
|
283
|
+
outcome: 'available',
|
|
284
|
+
bounds: { width: 1 },
|
|
285
|
+
});
|
|
278
286
|
});
|
|
279
287
|
});
|
|
280
288
|
|
|
@@ -283,7 +291,7 @@ describe('getTrayIcons', () => {
|
|
|
283
291
|
const { host } = testHost();
|
|
284
292
|
const first = await acquire(host);
|
|
285
293
|
const second = await acquire(host);
|
|
286
|
-
expect(getTrayIcons(host)).toEqual([first, second]);
|
|
294
|
+
expect(getTrayIcons(host.tray.lifecycle)).toEqual([first, second]);
|
|
287
295
|
});
|
|
288
296
|
});
|
|
289
297
|
|
|
@@ -291,8 +299,8 @@ describe('getTrayIconTitle', () => {
|
|
|
291
299
|
it('reads the title', async () => {
|
|
292
300
|
const { host } = testHost();
|
|
293
301
|
const tray = await acquire(host);
|
|
294
|
-
await setTrayIconTitle(tray, 'Flight');
|
|
295
|
-
expect(await getTrayIconTitle(tray)).toEqual({ outcome: 'available', title: 'Flight' });
|
|
302
|
+
await setTrayIconTitle(host.tray.title, tray, 'Flight');
|
|
303
|
+
expect(await getTrayIconTitle(host.tray.title, tray)).toEqual({ outcome: 'available', title: 'Flight' });
|
|
296
304
|
});
|
|
297
305
|
});
|
|
298
306
|
|
|
@@ -300,8 +308,8 @@ describe('getTrayIconTooltip', () => {
|
|
|
300
308
|
it('reads the tooltip', async () => {
|
|
301
309
|
const { host } = testHost();
|
|
302
310
|
const tray = await acquire(host);
|
|
303
|
-
await setTrayIconTooltip(tray, 'Ready');
|
|
304
|
-
expect(await getTrayIconTooltip(tray)).toEqual({ outcome: 'available', tooltip: 'Ready' });
|
|
311
|
+
await setTrayIconTooltip(host.tray.tooltip, tray, 'Ready');
|
|
312
|
+
expect(await getTrayIconTooltip(host.tray.tooltip, tray)).toEqual({ outcome: 'available', tooltip: 'Ready' });
|
|
305
313
|
});
|
|
306
314
|
});
|
|
307
315
|
|
|
@@ -343,7 +351,7 @@ describe('isTrayIconAnimating', () => {
|
|
|
343
351
|
vi.useFakeTimers();
|
|
344
352
|
const { host } = testHost();
|
|
345
353
|
const tray = await acquire(host);
|
|
346
|
-
await startTrayIconAnimation(tray, ['a'], 10);
|
|
354
|
+
await startTrayIconAnimation(host.tray.image, tray, ['a'], 10);
|
|
347
355
|
expect(isTrayIconAnimating(tray)).toBe(true);
|
|
348
356
|
stopTrayIconAnimation(tray);
|
|
349
357
|
expect(isTrayIconAnimating(tray)).toBe(false);
|
|
@@ -356,7 +364,7 @@ describe('onTrayBalloonEvent', () => {
|
|
|
356
364
|
const { host, state } = testHost();
|
|
357
365
|
const tray = await acquire(host);
|
|
358
366
|
const listener = vi.fn();
|
|
359
|
-
expect(onTrayBalloonEvent(tray, listener).outcome).toBe('attached');
|
|
367
|
+
expect(onTrayBalloonEvent(host.tray.balloonEvents, tray, listener).outcome).toBe('attached');
|
|
360
368
|
state.balloonEvents.get(tray)!.emit({ type: 'show' });
|
|
361
369
|
expect(listener).toHaveBeenCalledWith({ type: 'show' });
|
|
362
370
|
});
|
|
@@ -367,7 +375,7 @@ describe('onTrayDrop', () => {
|
|
|
367
375
|
const { host, state } = testHost();
|
|
368
376
|
const tray = await acquire(host);
|
|
369
377
|
const listener = vi.fn();
|
|
370
|
-
expect(onTrayDrop(tray, listener).outcome).toBe('attached');
|
|
378
|
+
expect(onTrayDrop(host.tray.dropEvents, tray, listener).outcome).toBe('attached');
|
|
371
379
|
state.dropEvents.get(tray)!.emit({ files: ['a'], type: 'files' });
|
|
372
380
|
expect(listener).toHaveBeenCalledWith({ files: ['a'], type: 'files' });
|
|
373
381
|
});
|
|
@@ -378,7 +386,7 @@ describe('onTrayInteraction', () => {
|
|
|
378
386
|
const { host, state } = testHost();
|
|
379
387
|
const tray = await acquire(host);
|
|
380
388
|
const listener = vi.fn();
|
|
381
|
-
const attached = onTrayInteraction(tray, listener);
|
|
389
|
+
const attached = onTrayInteraction(host.tray.interactionEvents, tray, listener);
|
|
382
390
|
expect(attached.outcome).toBe('attached');
|
|
383
391
|
state.interactionEvents.get(tray)!.emit({
|
|
384
392
|
altKey: false,
|
|
@@ -395,7 +403,7 @@ describe('onTrayInteraction', () => {
|
|
|
395
403
|
expect((await attached.release.release()).outcome).toBe('already-released');
|
|
396
404
|
}
|
|
397
405
|
const destroyReleased = vi.fn();
|
|
398
|
-
onTrayInteraction(tray, destroyReleased);
|
|
406
|
+
onTrayInteraction(host.tray.interactionEvents, tray, destroyReleased);
|
|
399
407
|
await destroyTrayIcon(tray);
|
|
400
408
|
state.interactionEvents.get(tray)!.emit({
|
|
401
409
|
altKey: false,
|
|
@@ -415,7 +423,7 @@ describe('onTrayMenuSelection', () => {
|
|
|
415
423
|
const { host, state } = testHost();
|
|
416
424
|
const tray = await acquire(host);
|
|
417
425
|
const listener = vi.fn();
|
|
418
|
-
expect(onTrayMenuSelection(tray, listener).outcome).toBe('attached');
|
|
426
|
+
expect(onTrayMenuSelection(host.tray.menuSelectionEvents, tray, listener).outcome).toBe('attached');
|
|
419
427
|
state.menuSelectionEvents.get(tray)!.emit({ id: 'open' });
|
|
420
428
|
expect(listener).toHaveBeenCalledWith({ id: 'open' });
|
|
421
429
|
});
|
|
@@ -424,7 +432,9 @@ describe('onTrayMenuSelection', () => {
|
|
|
424
432
|
describe('popupTrayContextMenu', () => {
|
|
425
433
|
it('shows the installed menu', async () => {
|
|
426
434
|
const { host } = testHost();
|
|
427
|
-
expect((await popupTrayContextMenu(await acquire(host), { x: 1, y: 2 })).outcome).toBe(
|
|
435
|
+
expect((await popupTrayContextMenu(host.tray.popupMenu, await acquire(host), { x: 1, y: 2 })).outcome).toBe(
|
|
436
|
+
'shown',
|
|
437
|
+
);
|
|
428
438
|
});
|
|
429
439
|
});
|
|
430
440
|
|
|
@@ -432,8 +442,8 @@ describe('removeTrayBalloon', () => {
|
|
|
432
442
|
it('owns balloon removal on the Tray entity', async () => {
|
|
433
443
|
const { host } = testHost();
|
|
434
444
|
const tray = await acquire(host);
|
|
435
|
-
await displayTrayBalloon(tray, { text: 'Done', title: 'Flight' });
|
|
436
|
-
expect((await removeTrayBalloon(tray)).outcome).toBe('removed');
|
|
445
|
+
await displayTrayBalloon(host.tray.balloon, tray, { text: 'Done', title: 'Flight' });
|
|
446
|
+
expect((await removeTrayBalloon(host.tray.balloon, tray)).outcome).toBe('removed');
|
|
437
447
|
});
|
|
438
448
|
});
|
|
439
449
|
|
|
@@ -444,7 +454,7 @@ describe('setTrayAnimationGuard', () => {
|
|
|
444
454
|
setTrayAnimationGuard(guard);
|
|
445
455
|
const { host } = testHost();
|
|
446
456
|
const tray = await acquire(host);
|
|
447
|
-
const started = await startTrayIconAnimation(tray, ['a'], 12);
|
|
457
|
+
const started = await startTrayIconAnimation(host.tray.image, tray, ['a'], 12);
|
|
448
458
|
expect(guard).toHaveBeenCalledWith(tray, 1, 12);
|
|
449
459
|
if (started.outcome === 'started') await started.release.release();
|
|
450
460
|
setTrayAnimationGuard(null);
|
|
@@ -453,9 +463,9 @@ describe('setTrayAnimationGuard', () => {
|
|
|
453
463
|
});
|
|
454
464
|
|
|
455
465
|
describe('setTrayIcon', () => {
|
|
456
|
-
it('uses the
|
|
466
|
+
it('uses the direct image provider', async () => {
|
|
457
467
|
const { host, state } = testHost();
|
|
458
|
-
expect((await setTrayIcon(await acquire(host), 'icon')).outcome).toBe('updated');
|
|
468
|
+
expect((await setTrayIcon(host.tray.image, await acquire(host), 'icon')).outcome).toBe('updated');
|
|
459
469
|
expect(state.images).toEqual(['icon']);
|
|
460
470
|
});
|
|
461
471
|
});
|
|
@@ -463,16 +473,16 @@ describe('setTrayIcon', () => {
|
|
|
463
473
|
describe('setTrayIconContextMenu', () => {
|
|
464
474
|
it('installs a plain descriptor', async () => {
|
|
465
475
|
const { host } = testHost();
|
|
466
|
-
expect(
|
|
467
|
-
'
|
|
468
|
-
);
|
|
476
|
+
expect(
|
|
477
|
+
(await setTrayIconContextMenu(host.tray.menu, await acquire(host), [{ id: 'quit', label: 'Quit' }])).outcome,
|
|
478
|
+
).toBe('updated');
|
|
469
479
|
});
|
|
470
480
|
});
|
|
471
481
|
|
|
472
482
|
describe('setTrayIconTemplate', () => {
|
|
473
483
|
it('updates template treatment', async () => {
|
|
474
484
|
const { host } = testHost();
|
|
475
|
-
expect((await setTrayIconTemplate(await acquire(host), true)).outcome).toBe('updated');
|
|
485
|
+
expect((await setTrayIconTemplate(host.tray.templateImage, await acquire(host), true)).outcome).toBe('updated');
|
|
476
486
|
});
|
|
477
487
|
});
|
|
478
488
|
|
|
@@ -480,7 +490,7 @@ describe('setTrayIconTitle', () => {
|
|
|
480
490
|
it('updates the title', async () => {
|
|
481
491
|
const { host } = testHost();
|
|
482
492
|
const tray = await acquire(host);
|
|
483
|
-
expect((await setTrayIconTitle(tray, 'Flight')).outcome).toBe('updated');
|
|
493
|
+
expect((await setTrayIconTitle(host.tray.title, tray, 'Flight')).outcome).toBe('updated');
|
|
484
494
|
});
|
|
485
495
|
});
|
|
486
496
|
|
|
@@ -488,29 +498,31 @@ describe('setTrayIconTooltip', () => {
|
|
|
488
498
|
it('updates the tooltip', async () => {
|
|
489
499
|
const { host } = testHost();
|
|
490
500
|
const tray = await acquire(host);
|
|
491
|
-
expect((await setTrayIconTooltip(tray, 'Ready')).outcome).toBe('updated');
|
|
501
|
+
expect((await setTrayIconTooltip(host.tray.tooltip, tray, 'Ready')).outcome).toBe('updated');
|
|
492
502
|
});
|
|
493
503
|
});
|
|
494
504
|
|
|
495
505
|
describe('setTrayIgnoreDoubleClickEvents', () => {
|
|
496
506
|
it('updates the policy', async () => {
|
|
497
507
|
const { host } = testHost();
|
|
498
|
-
expect((await setTrayIgnoreDoubleClickEvents(await acquire(host), true)).outcome).toBe(
|
|
508
|
+
expect((await setTrayIgnoreDoubleClickEvents(host.tray.doubleClickPolicy, await acquire(host), true)).outcome).toBe(
|
|
509
|
+
'updated',
|
|
510
|
+
);
|
|
499
511
|
});
|
|
500
512
|
});
|
|
501
513
|
describe('setTrayPressedIcon', () => {
|
|
502
514
|
it('updates the pressed icon', async () => {
|
|
503
515
|
const { host } = testHost();
|
|
504
|
-
expect((await setTrayPressedIcon(await acquire(host), 'pressed')).outcome).toBe('updated');
|
|
516
|
+
expect((await setTrayPressedIcon(host.tray.pressedImage, await acquire(host), 'pressed')).outcome).toBe('updated');
|
|
505
517
|
});
|
|
506
518
|
});
|
|
507
519
|
|
|
508
520
|
describe('startTrayIconAnimation', () => {
|
|
509
|
-
it('writes through the
|
|
521
|
+
it('writes through the direct image provider', async () => {
|
|
510
522
|
vi.useFakeTimers();
|
|
511
523
|
const { host, state } = testHost();
|
|
512
524
|
const tray = await acquire(host);
|
|
513
|
-
const result = await startTrayIconAnimation(tray, ['a', 'b'], 10);
|
|
525
|
+
const result = await startTrayIconAnimation(host.tray.image, tray, ['a', 'b'], 10);
|
|
514
526
|
expect(result.outcome).toBe('started');
|
|
515
527
|
await vi.advanceTimersByTimeAsync(10);
|
|
516
528
|
expect(state.images).toEqual(['a', 'b']);
|
|
@@ -524,7 +536,7 @@ describe('stopTrayIconAnimation', () => {
|
|
|
524
536
|
vi.useFakeTimers();
|
|
525
537
|
const { host } = testHost();
|
|
526
538
|
const tray = await acquire(host);
|
|
527
|
-
await startTrayIconAnimation(tray, ['a'], 10);
|
|
539
|
+
await startTrayIconAnimation(host.tray.image, tray, ['a'], 10);
|
|
528
540
|
expect(stopTrayIconAnimation(tray).outcome).toBe('stopped');
|
|
529
541
|
expect(stopTrayIconAnimation(tray).outcome).toBe('already-stopped');
|
|
530
542
|
vi.useRealTimers();
|