From dbbc1821bdefd118788767acfa1f8a3fc4ea783f Mon Sep 17 00:00:00 2001 From: ItsRiprod Date: Mon, 2 Sep 2024 21:49:57 -0700 Subject: [PATCH] v0.8.3 Minor changes - Added the ability to set the default view - Added the ability to set the default miniplayer behavior - Minor UI enhancements for the apps list - Minor UI enhancements for the downloads --- DeskThingServer/package-lock.json | 90 ++++++-- DeskThingServer/package.json | 3 +- .../src/main/handlers/deviceHandler.ts | 4 +- .../src/renderer/src/components/Apps/Apps.tsx | 210 +++++------------- .../src/renderer/src/components/Apps/Web.tsx | 52 +++-- .../renderer/src/components/Client/Client.tsx | 52 +++-- .../src/components/ClientSettings.tsx | 8 +- .../Overlays/AppSettingsOverlay.tsx | 4 +- .../Overlays/ClientSettingsOverlay.tsx | 82 ++++++- .../renderer/src/components/ReleaseList.tsx | 5 +- .../components/icons/icon/IconDownload.tsx | 15 ++ .../renderer/src/components/icons/index.ts | 1 + .../src/renderer/src/store/clientStore.ts | 2 + 13 files changed, 306 insertions(+), 222 deletions(-) create mode 100644 DeskThingServer/src/renderer/src/components/icons/icon/IconDownload.tsx diff --git a/DeskThingServer/package-lock.json b/DeskThingServer/package-lock.json index 55b2987..4f24000 100644 --- a/DeskThingServer/package-lock.json +++ b/DeskThingServer/package-lock.json @@ -1,12 +1,12 @@ { "name": "deskthing", - "version": "0.8.2", + "version": "0.8.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "deskthing", - "version": "0.8.2", + "version": "0.8.3", "hasInstallScript": true, "dependencies": { "@electron-toolkit/preload": "^3.0.0", @@ -31,7 +31,6 @@ "@types/react-dom": "^18.2.18", "@vitejs/plugin-react": "^4.2.1", "autoprefixer": "^10.4.19", - "electron": "^28.2.0", "electron-builder": "^24.9.1", "electron-vite": "^2.0.0", "eslint": "^8.56.0", @@ -593,6 +592,7 @@ "resolved": "https://registry.npmjs.org/@electron/get/-/get-2.0.3.tgz", "integrity": "sha512-Qkzpg2s9GnVV2I2BjRksUi43U5e6+zaQMcjoJy0C+C5oxaKl+fmckGDQFtRpZpZV0NQekuZZ+tGz7EA9TVnQtQ==", "license": "MIT", + "peer": true, "dependencies": { "debug": "^4.1.1", "env-paths": "^2.2.0", @@ -614,6 +614,7 @@ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" } @@ -1918,6 +1919,7 @@ "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz", "integrity": "sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -1930,6 +1932,7 @@ "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz", "integrity": "sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==", "license": "MIT", + "peer": true, "dependencies": { "defer-to-connect": "^2.0.0" }, @@ -1997,6 +2000,7 @@ "resolved": "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz", "integrity": "sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw==", "license": "MIT", + "peer": true, "dependencies": { "@types/http-cache-semantics": "*", "@types/keyv": "^3.1.4", @@ -2035,7 +2039,8 @@ "version": "4.0.4", "resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz", "integrity": "sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/json-schema": { "version": "7.0.15", @@ -2049,6 +2054,7 @@ "resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz", "integrity": "sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==", "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*" } @@ -2114,6 +2120,7 @@ "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", "integrity": "sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw==", "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*" } @@ -2139,6 +2146,7 @@ "integrity": "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "@types/node": "*" } @@ -2982,10 +2990,9 @@ } }, "node_modules/axios": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", - "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", - "license": "MIT", + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.5.tgz", + "integrity": "sha512-fZu86yCo+svH3uqJ/yTdQ0QHpQu5oL+/QE+QPSv6BZSkDAoky9vytxp7u5qk83OJFS3kEBcesWni9WTZAv3tSw==", "dependencies": { "follow-redirects": "^1.15.6", "form-data": "^4.0.0", @@ -3119,7 +3126,8 @@ "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.2.0.tgz", "integrity": "sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==", "license": "MIT", - "optional": true + "optional": true, + "peer": true }, "node_modules/brace-expansion": { "version": "2.0.1", @@ -3207,6 +3215,7 @@ "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", "license": "MIT", + "peer": true, "engines": { "node": "*" } @@ -3408,6 +3417,7 @@ "resolved": "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz", "integrity": "sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==", "license": "MIT", + "peer": true, "engines": { "node": ">=10.6.0" } @@ -3417,6 +3427,7 @@ "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz", "integrity": "sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg==", "license": "MIT", + "peer": true, "dependencies": { "clone-response": "^1.0.2", "get-stream": "^5.1.0", @@ -3614,6 +3625,7 @@ "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz", "integrity": "sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA==", "license": "MIT", + "peer": true, "dependencies": { "mimic-response": "^1.0.0" }, @@ -3998,6 +4010,7 @@ "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz", "integrity": "sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==", "license": "MIT", + "peer": true, "dependencies": { "mimic-response": "^3.1.0" }, @@ -4013,6 +4026,7 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz", "integrity": "sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -4032,6 +4046,7 @@ "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz", "integrity": "sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" } @@ -4104,7 +4119,8 @@ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "license": "MIT", - "optional": true + "optional": true, + "peer": true }, "node_modules/didyoumean": { "version": "1.2.2", @@ -4361,6 +4377,7 @@ "integrity": "sha512-ObKMLSPNhomtCOBAxFS8P2DW/4umkh72ouZUlUKzXGtYuPzgr1SYhskhFWgzAsPtUzhL2CzyV2sfbHcEW4CXqw==", "hasInstallScript": true, "license": "MIT", + "peer": true, "dependencies": { "@electron/get": "^2.0.0", "@types/node": "^18.11.18", @@ -4821,6 +4838,7 @@ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", "license": "MIT", + "peer": true, "dependencies": { "once": "^1.4.0" } @@ -5020,7 +5038,8 @@ "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", "license": "MIT", - "optional": true + "optional": true, + "peer": true }, "node_modules/esbuild": { "version": "0.21.5", @@ -5574,6 +5593,7 @@ "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", "license": "BSD-2-Clause", + "peer": true, "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", @@ -5673,6 +5693,7 @@ "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", "license": "MIT", + "peer": true, "dependencies": { "pend": "~1.2.0" } @@ -5904,6 +5925,7 @@ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", "license": "MIT", + "peer": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^4.0.0", @@ -6050,6 +6072,7 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "license": "MIT", + "peer": true, "dependencies": { "pump": "^3.0.0" }, @@ -6143,6 +6166,7 @@ "integrity": "sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==", "license": "BSD-3-Clause", "optional": true, + "peer": true, "dependencies": { "boolean": "^3.0.1", "es6-error": "^4.1.1", @@ -6220,6 +6244,7 @@ "resolved": "https://registry.npmjs.org/got/-/got-11.8.6.tgz", "integrity": "sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g==", "license": "MIT", + "peer": true, "dependencies": { "@sindresorhus/is": "^4.0.0", "@szmarczak/http-timer": "^4.0.5", @@ -6374,7 +6399,8 @@ "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", - "license": "BSD-2-Clause" + "license": "BSD-2-Clause", + "peer": true }, "node_modules/http-errors": { "version": "2.0.0", @@ -6412,6 +6438,7 @@ "resolved": "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz", "integrity": "sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==", "license": "MIT", + "peer": true, "dependencies": { "quick-lru": "^5.1.1", "resolve-alpn": "^1.0.0" @@ -7241,7 +7268,8 @@ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==", "license": "ISC", - "optional": true + "optional": true, + "peer": true }, "node_modules/json5": { "version": "2.2.3", @@ -7261,6 +7289,7 @@ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==", "license": "MIT", + "peer": true, "optionalDependencies": { "graceful-fs": "^4.1.6" } @@ -7541,6 +7570,7 @@ "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -7571,6 +7601,7 @@ "integrity": "sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "escape-string-regexp": "^4.0.0" }, @@ -7584,6 +7615,7 @@ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "license": "MIT", "optional": true, + "peer": true, "engines": { "node": ">=10" }, @@ -7626,11 +7658,10 @@ } }, "node_modules/micromatch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz", - "integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==", + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "dev": true, - "license": "MIT", "dependencies": { "braces": "^3.0.3", "picomatch": "^2.3.1" @@ -7678,6 +7709,7 @@ "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=4" } @@ -7864,6 +7896,7 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -8045,6 +8078,7 @@ "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz", "integrity": "sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==", "license": "MIT", + "peer": true, "engines": { "node": ">=8" } @@ -8216,7 +8250,8 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/picocolors": { "version": "1.0.1", @@ -8540,6 +8575,7 @@ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.4.0" } @@ -8594,6 +8630,7 @@ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", "license": "MIT", + "peer": true, "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" @@ -8650,6 +8687,7 @@ "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz", "integrity": "sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -8900,7 +8938,8 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz", "integrity": "sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/resolve-from": { "version": "4.0.0", @@ -8917,6 +8956,7 @@ "resolved": "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz", "integrity": "sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw==", "license": "MIT", + "peer": true, "dependencies": { "lowercase-keys": "^2.0.0" }, @@ -8968,6 +9008,7 @@ "integrity": "sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==", "license": "BSD-3-Clause", "optional": true, + "peer": true, "dependencies": { "boolean": "^3.0.1", "detect-node": "^2.0.4", @@ -9145,7 +9186,8 @@ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", "license": "MIT", - "optional": true + "optional": true, + "peer": true }, "node_modules/send": { "version": "0.18.0", @@ -9210,6 +9252,7 @@ "integrity": "sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "type-fest": "^0.13.1" }, @@ -9460,7 +9503,8 @@ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.3.tgz", "integrity": "sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==", "license": "BSD-3-Clause", - "optional": true + "optional": true, + "peer": true }, "node_modules/stat-mode": { "version": "1.0.0", @@ -9727,6 +9771,7 @@ "resolved": "https://registry.npmjs.org/sumchecker/-/sumchecker-3.0.1.tgz", "integrity": "sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==", "license": "Apache-2.0", + "peer": true, "dependencies": { "debug": "^4.1.0" }, @@ -10069,6 +10114,7 @@ "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", "license": "(MIT OR CC0-1.0)", "optional": true, + "peer": true, "engines": { "node": ">=10" }, @@ -10207,6 +10253,7 @@ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "license": "MIT", + "peer": true, "engines": { "node": ">= 4.0.0" } @@ -10750,6 +10797,7 @@ "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", "license": "MIT", + "peer": true, "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" diff --git a/DeskThingServer/package.json b/DeskThingServer/package.json index 422d184..a4a033f 100644 --- a/DeskThingServer/package.json +++ b/DeskThingServer/package.json @@ -1,6 +1,6 @@ { "name": "deskthing", - "version": "0.8.2", + "version": "0.8.3", "description": "A DeskThing server UI to interface with the DeskThing car thing app", "main": "./out/main/index.js", "author": "Riprod", @@ -40,7 +40,6 @@ "@types/react-dom": "^18.2.18", "@vitejs/plugin-react": "^4.2.1", "autoprefixer": "^10.4.19", - "electron": "^28.2.0", "electron-builder": "^24.9.1", "electron-vite": "^2.0.0", "eslint": "^8.56.0", diff --git a/DeskThingServer/src/main/handlers/deviceHandler.ts b/DeskThingServer/src/main/handlers/deviceHandler.ts index 5246e2a..e51d750 100644 --- a/DeskThingServer/src/main/handlers/deviceHandler.ts +++ b/DeskThingServer/src/main/handlers/deviceHandler.ts @@ -18,6 +18,8 @@ export interface ServerManifest { version: string port: number ip: string + default_view: string + miniplayer: string } export const HandleDeviceData = async (data: any): Promise => { @@ -245,7 +247,7 @@ export const getClientManifest = async ( }) dataListener.asyncEmit( MESSAGE_TYPES.ERROR, - 'DEVICE HANDLER: Client Manifest file not found! (Is it downloaded?)' + 'DEVICE HANDLER: Client Manifest file not found! (Is the client downloaded?)' ) return null } diff --git a/DeskThingServer/src/renderer/src/components/Apps/Apps.tsx b/DeskThingServer/src/renderer/src/components/Apps/Apps.tsx index e7cbf62..9a80308 100644 --- a/DeskThingServer/src/renderer/src/components/Apps/Apps.tsx +++ b/DeskThingServer/src/renderer/src/components/Apps/Apps.tsx @@ -10,7 +10,6 @@ export type View = 'apps' | 'local' | 'web' const Apps = (): JSX.Element => { const { appsList } = useAppStore() - const [tooltips, setTooltips] = useState([]) const [enabled, setEnabled] = useState(false) const [sEnabled, setSEnabled] = useState(false) const [appIndex, setAppIndex] = useState(-1) @@ -72,7 +71,7 @@ const Apps = (): JSX.Element => { } return ( -
+
{displayRequest && currentRequest[1] && currentRequest[0] && ( { )} {appsList?.apps?.length > 0 && Object.keys(appsList.apps).length > 0 ? ( -
+
{(appsList.apps as App[]).map((app, appIndex) => (
- {appsWithActiveRequests.includes(app.name) ? ( -
- {tooltips[appIndex] ? ( -

{tooltips[appIndex]}

+
+
+ {app.running ? ( +

Running

+ ) : app.enabled ? ( +

Stopped

) : ( -

Data Request

+

Disabled

)} - -
- ) : app.enabled ? ( -
-
- {tooltips[appIndex] ? ( -

{tooltips[appIndex]}

- ) : app.running ? ( -

Running

- ) : ( -

Stopped

- )} -
- {app.running ? ( + {appsWithActiveRequests.includes(app.name) && ( +
- ) : ( +
+ )} + {app.enabled ? ( + <> + {app.running ? ( + + ) : ( + + )} - )} + + ) : ( -
- ) : ( -
- {tooltips[appIndex] ? ( -

{tooltips[appIndex]}

- ) : ( -

Disabled

- )} - - -
- )} + )} +
))}
) : ( -
+
+

Are any downloaded?

)}
diff --git a/DeskThingServer/src/renderer/src/components/Apps/Web.tsx b/DeskThingServer/src/renderer/src/components/Apps/Web.tsx index ce763e6..d8917a8 100644 --- a/DeskThingServer/src/renderer/src/components/Apps/Web.tsx +++ b/DeskThingServer/src/renderer/src/components/Apps/Web.tsx @@ -180,26 +180,38 @@ const Web = (): JSX.Element => {
) : repoReleases.length > 0 ? ( - repoReleases.map((repo) => ( -
- - {openRepoUrl === repo.repoUrl && ( - - )} -
- )) + repoReleases.map((repo) => { + const repoName = new URL(repo.repoUrl).pathname.split('/').slice(-1)[0] + return ( +
+ + {openRepoUrl === repo.repoUrl && ( + + )} +
+ ) + }) ) : ( )} diff --git a/DeskThingServer/src/renderer/src/components/Client/Client.tsx b/DeskThingServer/src/renderer/src/components/Client/Client.tsx index 63b6d92..f9a53ba 100644 --- a/DeskThingServer/src/renderer/src/components/Client/Client.tsx +++ b/DeskThingServer/src/renderer/src/components/Client/Client.tsx @@ -112,26 +112,38 @@ const Client = (): JSX.Element => {
{repoReleases.length > 0 ? ( - repoReleases.map((repo) => ( -
- - {openRepoUrl === repo.repoUrl && ( - - )} -
- )) + repoReleases.map((repo) => { + const repoName = new URL(repo.repoUrl).pathname.split('/').slice(-1)[0] + return ( +
+ + {openRepoUrl === repo.repoUrl && ( + + )} +
+ ) + }) ) : ( )} diff --git a/DeskThingServer/src/renderer/src/components/ClientSettings.tsx b/DeskThingServer/src/renderer/src/components/ClientSettings.tsx index 5d54576..21fbd82 100644 --- a/DeskThingServer/src/renderer/src/components/ClientSettings.tsx +++ b/DeskThingServer/src/renderer/src/components/ClientSettings.tsx @@ -39,9 +39,9 @@ const ClientSettings: React.FC = () => { )} {clientManifest ? (
-
+

Staged:

-

{clientManifest.name}

+

{clientManifest.name}

{clientManifest.version} - {clientManifest.ip} @@ -49,8 +49,8 @@ const ClientSettings: React.FC = () => {

) : (
-

- Staged Client: None +

+ Staged Client:

None

Server Port: {port}

diff --git a/DeskThingServer/src/renderer/src/components/Overlays/AppSettingsOverlay.tsx b/DeskThingServer/src/renderer/src/components/Overlays/AppSettingsOverlay.tsx index 532bf37..ff83c63 100644 --- a/DeskThingServer/src/renderer/src/components/Overlays/AppSettingsOverlay.tsx +++ b/DeskThingServer/src/renderer/src/components/Overlays/AppSettingsOverlay.tsx @@ -71,7 +71,9 @@ const AppSettingsOverlay: React.FC = ({ appIndex, setEn
-

Client Settings

+

+ {data.apps[appIndex]?.manifest?.label || currentApp} Settings +

+
+ + setDefaultView(e.target.value)} + className="shadow appearance-none border rounded w-full py-2 px-3 text-gray-700 leading-tight focus:outline-none focus:shadow-outline" + /> +
+ + + {apps && + apps.map((app, index) => ( + + ))} +
+
+
+ + setMini(e.target.value)} + /> +
+ + + +
+
))} diff --git a/DeskThingServer/src/renderer/src/components/icons/icon/IconDownload.tsx b/DeskThingServer/src/renderer/src/components/icons/icon/IconDownload.tsx new file mode 100644 index 0000000..e0ddebf --- /dev/null +++ b/DeskThingServer/src/renderer/src/components/icons/icon/IconDownload.tsx @@ -0,0 +1,15 @@ +import { Icon } from '.' + +function IconDownload(props): JSX.Element { + return ( + + + + + + + + ) +} + +export default IconDownload diff --git a/DeskThingServer/src/renderer/src/components/icons/index.ts b/DeskThingServer/src/renderer/src/components/icons/index.ts index a8cce8c..ac3246f 100644 --- a/DeskThingServer/src/renderer/src/components/icons/index.ts +++ b/DeskThingServer/src/renderer/src/components/icons/index.ts @@ -12,6 +12,7 @@ export { default as IconCarThing } from './icon/IconCarThing' export { default as IconCoffee } from './icon/IconCoffee' export { default as IconConnecting } from './icon/IconConnecting' export { default as IconConnected } from './icon/IconConnected' +export { default as IconDownload } from './icon/IconDownload' export { default as IconHome } from './icon/IconHome' export { default as IconLoading } from './icon/IconLoading' export { default as IconLayoutgrid } from './icon/IconLayoutgrid' diff --git a/DeskThingServer/src/renderer/src/store/clientStore.ts b/DeskThingServer/src/renderer/src/store/clientStore.ts index d11e2d4..bac76b5 100644 --- a/DeskThingServer/src/renderer/src/store/clientStore.ts +++ b/DeskThingServer/src/renderer/src/store/clientStore.ts @@ -13,6 +13,8 @@ export interface ServerManifest { version: string port: number ip: string + default_view: string + miniplayer: string } type EVENTS = 'ADBDevices' | 'Connections' | 'numConnections' | string