ambient-display 1.1.0
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/.nvmrc +1 -0
- package/.prettierignore +4 -0
- package/.prettierrc +17 -0
- package/CHANGELOG.md +34 -0
- package/README.md +84 -0
- package/ambient.config.js.template +13 -0
- package/env.template +2 -0
- package/eslint.config.js +24 -0
- package/jsconfig.json +19 -0
- package/package.json +67 -0
- package/screenshot.png +0 -0
- package/server/api/index.js +213 -0
- package/server/api/interact.js +234 -0
- package/server/api/utils.js +284 -0
- package/server/comms.js +13 -0
- package/server/config.js +27 -0
- package/server/constants.js +52 -0
- package/server/events.js +41 -0
- package/server/history.js +47 -0
- package/server/index.js +155 -0
- package/server/logs.js +15 -0
- package/server/memo.js +63 -0
- package/server/run.js +5 -0
- package/server/spotify/auth.js +98 -0
- package/server/spotify/index.js +105 -0
- package/server/spotify/sdk.js +217 -0
- package/server/types/comms.js +7 -0
- package/server/types/data.js +94 -0
- package/server/types/index.js +16 -0
- package/server/types/options.js +72 -0
- package/server/utils.js +101 -0
- package/src/app.d.ts +13 -0
- package/src/app.html +12 -0
- package/src/lib/actions/qr.svelte.js +23 -0
- package/src/lib/comms.js +25 -0
- package/src/lib/components/AuthenticateTrigger.svelte +74 -0
- package/src/lib/components/Controls.svelte +91 -0
- package/src/lib/components/ImageLoad.svelte +79 -0
- package/src/lib/components/LoadingIndicator.svelte +75 -0
- package/src/lib/components/MediaItem.svelte +75 -0
- package/src/lib/components/PlayingTracker.svelte +94 -0
- package/src/lib/components/ResultsList.svelte +80 -0
- package/src/lib/components/Toast/Item.svelte +71 -0
- package/src/lib/components/Toast/Manager.svelte +34 -0
- package/src/lib/icons/disc.svg +1 -0
- package/src/lib/index.js +1 -0
- package/src/lib/store.js +146 -0
- package/src/lib/styles.scss +166 -0
- package/src/lib/toast.js +57 -0
- package/src/lib/utils.js +723 -0
- package/src/routes/+layout.server.js +25 -0
- package/src/routes/+layout.svelte +72 -0
- package/src/routes/+page.svelte +381 -0
- package/src/routes/player/+page.svelte +294 -0
- package/static/favicon.ico +0 -0
- package/static/favicon.png +0 -0
- package/static/icons/144.favicon.png +0 -0
- package/static/icons/168.favicon.png +0 -0
- package/static/icons/192.favicon.png +0 -0
- package/static/icons/48.favicon.png +0 -0
- package/static/icons/72.favicon.png +0 -0
- package/static/icons/96.favicon.png +0 -0
- package/static/manifest.json +40 -0
- package/svelte.config.js +19 -0
- package/tools/BuildManifest.js +87 -0
- package/vite.config.js +46 -0
package/src/lib/toast.js
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { writable } from 'svelte/store';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @typedef {object} ToastItem
|
|
5
|
+
* @property {string} message
|
|
6
|
+
* @property {number} [time]
|
|
7
|
+
* @property {'track' | 'info' | 'error'} [type]
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @typedef {ToastItem} ToastItemFull
|
|
12
|
+
* @property {number} id
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
/** @type {import("svelte/store").Writable<ToastItemFull[]>}} */
|
|
16
|
+
const toastItemsStore = writable([]);
|
|
17
|
+
|
|
18
|
+
let itemsLength = 0;
|
|
19
|
+
|
|
20
|
+
export const toastItems = {
|
|
21
|
+
...toastItemsStore,
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
* @param {ToastItem} item
|
|
26
|
+
*/
|
|
27
|
+
addItem(item) {
|
|
28
|
+
const id = itemsLength + 1;
|
|
29
|
+
toastItemsStore.update((items) => [
|
|
30
|
+
...items,
|
|
31
|
+
{
|
|
32
|
+
id,
|
|
33
|
+
...item
|
|
34
|
+
}
|
|
35
|
+
]);
|
|
36
|
+
itemsLength = id;
|
|
37
|
+
|
|
38
|
+
return () => toastItems.removeItem(id);
|
|
39
|
+
},
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
*
|
|
43
|
+
* @param {number} itemId
|
|
44
|
+
*/
|
|
45
|
+
removeItem(itemId) {
|
|
46
|
+
toastItemsStore.update((items) => {
|
|
47
|
+
const cacheItems = items.slice();
|
|
48
|
+
|
|
49
|
+
cacheItems.splice(
|
|
50
|
+
cacheItems.findIndex((item) => item.id === itemId),
|
|
51
|
+
1
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
return cacheItems;
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
};
|