Merge branch 'master' into allow-to-import-app-as-lib

Signed-off-by: Jari Kolehmainen <jari.kolehmainen@gmail.com>
This commit is contained in:
Jari Kolehmainen committed 2022-12-19 07:51:16 +02:00
commit 1d14289b96
511 files changed
+12013 -7005

No files matched your search

@@ -164,7 +164,23 @@ exports[`extension special characters in page registrations renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -231,7 +247,7 @@ exports[`extension special characters in page registrations renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -352,7 +368,23 @@ exports[`extension special characters in page registrations when navigating to r
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -419,7 +451,7 @@ exports[`extension special characters in page registrations when navigating to r
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -164,7 +164,23 @@ exports[`navigate to extension page renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -231,7 +247,7 @@ exports[`navigate to extension page renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -352,7 +368,23 @@ exports[`navigate to extension page when extension navigates to child route rend
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -419,7 +451,7 @@ exports[`navigate to extension page when extension navigates to child route rend
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -556,7 +588,23 @@ exports[`navigate to extension page when extension navigates to route with param
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -623,7 +671,7 @@ exports[`navigate to extension page when extension navigates to route with param
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -760,7 +808,23 @@ exports[`navigate to extension page when extension navigates to route without pa
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -827,7 +891,7 @@ exports[`navigate to extension page when extension navigates to route without pa
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -964,7 +1028,23 @@ exports[`navigate to extension page when extension navigates to route without pa
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1031,7 +1111,7 @@ exports[`navigate to extension page when extension navigates to route without pa
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -88,7 +88,23 @@ exports[`navigating between routes given route with optional path parameters whe
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -155,7 +171,7 @@ exports[`navigating between routes given route with optional path parameters whe
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -276,7 +292,23 @@ exports[`navigating between routes given route without path parameters when navi
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -343,7 +375,7 @@ exports[`navigating between routes given route without path parameters when navi
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -164,7 +164,23 @@ exports[`add-cluster - navigation using application menu renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -231,7 +247,7 @@ exports[`add-cluster - navigation using application menu renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -436,7 +452,23 @@ exports[`add-cluster - navigation using application menu when navigating to add
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -503,7 +535,7 @@ exports[`add-cluster - navigation using application menu when navigating to add
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -16,8 +16,8 @@ const startApplicationMenuInjectable = getInjectable({
return {
id: "start-application-menu",
run: async () => {
await applicationMenu.start();
run: () => {
applicationMenu.start();
},
};
},
@@ -165,7 +165,23 @@ exports[`installing update when started renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -232,7 +248,7 @@ exports[`installing update when started renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -434,7 +450,23 @@ exports[`installing update when started when user checks for updates renders 1`]
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -501,7 +533,7 @@ exports[`installing update when started when user checks for updates renders 1`]
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -703,7 +735,23 @@ exports[`installing update when started when user checks for updates when new up
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -770,7 +818,7 @@ exports[`installing update when started when user checks for updates when new up
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -997,7 +1045,23 @@ exports[`installing update when started when user checks for updates when new up
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1064,7 +1128,7 @@ exports[`installing update when started when user checks for updates when new up
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1291,7 +1355,23 @@ exports[`installing update when started when user checks for updates when new up
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1358,7 +1438,7 @@ exports[`installing update when started when user checks for updates when new up
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1560,7 +1640,23 @@ exports[`installing update when started when user checks for updates when no new
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1627,7 +1723,7 @@ exports[`installing update when started when user checks for updates when no new
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -190,7 +190,23 @@ exports[`encourage user to update when sufficient time passed since update was d
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -257,7 +273,7 @@ exports[`encourage user to update when sufficient time passed since update was d
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -459,7 +475,23 @@ exports[`encourage user to update when sufficient time passed since update was d
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -526,7 +558,7 @@ exports[`encourage user to update when sufficient time passed since update was d
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -33,7 +33,6 @@
height: 100%;
left: 0;
opacity: 0.15;
z-index: -1;
transition: opacity 0.1s;
}
}
@@ -165,7 +165,23 @@ exports[`installing update using tray when started renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -232,7 +248,7 @@ exports[`installing update using tray when started renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -434,7 +450,23 @@ exports[`installing update using tray when started when user checks for updates
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -501,7 +533,7 @@ exports[`installing update using tray when started when user checks for updates
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -703,7 +735,23 @@ exports[`installing update using tray when started when user checks for updates
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -770,7 +818,7 @@ exports[`installing update using tray when started when user checks for updates
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -997,7 +1045,23 @@ exports[`installing update using tray when started when user checks for updates
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1064,7 +1128,7 @@ exports[`installing update using tray when started when user checks for updates
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1291,7 +1355,23 @@ exports[`installing update using tray when started when user checks for updates
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1358,7 +1438,7 @@ exports[`installing update using tray when started when user checks for updates
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1560,7 +1640,23 @@ exports[`installing update using tray when started when user checks for updates
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1627,7 +1723,7 @@ exports[`installing update using tray when started when user checks for updates
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -190,7 +190,23 @@ exports[`force user to update when too long since update was downloaded when app
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -257,7 +273,7 @@ exports[`force user to update when too long since update was downloaded when app
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -484,7 +500,23 @@ exports[`force user to update when too long since update was downloaded when app
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -551,7 +583,7 @@ exports[`force user to update when too long since update was downloaded when app
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -825,7 +857,23 @@ exports[`force user to update when too long since update was downloaded when app
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -892,7 +940,7 @@ exports[`force user to update when too long since update was downloaded when app
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -165,7 +165,23 @@ exports[`periodical checking of updates given updater is enabled and configurati
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -232,7 +248,7 @@ exports[`periodical checking of updates given updater is enabled and configurati
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -7,7 +7,7 @@ import periodicalCheckForUpdatesInjectable from "./periodical-check-for-updates.
import { getGlobalOverride } from "../../../../../common/test-utils/get-global-override";
export default getGlobalOverride(periodicalCheckForUpdatesInjectable, () => ({
start: async () => {},
stop: async () => {},
start: () => {},
stop: () => {},
started: false,
}));
@@ -16,9 +16,9 @@ const startCheckingForUpdatesInjectable = getInjectable({
return {
id: "start-checking-for-updates",
run: async () => {
run: () => {
if (updatingIsEnabled && !periodicalCheckForUpdates.started) {
await periodicalCheckForUpdates.start();
periodicalCheckForUpdates.start();
}
},
};
@@ -165,7 +165,23 @@ exports[`selection of update stability when started renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -232,7 +248,7 @@ exports[`selection of update stability when started renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -12,7 +12,7 @@ import checkForPlatformUpdatesInjectable from "./check-for-platform-updates.inje
import type { UpdateChannel, ReleaseChannel } from "../../../common/update-channels";
import { getPromiseStatus } from "../../../../../common/test-utils/get-promise-status";
import loggerInjectable from "../../../../../common/logger.injectable";
import type { Logger } from "../../../../../common/logger";
import { noop } from "../../../../../common/utils";
describe("check-for-platform-updates", () => {
let checkForPlatformUpdates: CheckForPlatformUpdates;
@@ -37,7 +37,13 @@ describe("check-for-platform-updates", () => {
logErrorMock = jest.fn();
di.override(loggerInjectable, () => ({ error: logErrorMock }) as unknown as Logger);
di.override(loggerInjectable, () => ({
error: logErrorMock,
debug: noop,
info: noop,
silly: noop,
warn: noop,
}));
checkForPlatformUpdates = di.inject(checkForPlatformUpdatesInjectable);
});
@@ -12,7 +12,7 @@ import asyncFn from "@async-fn/jest";
import { getPromiseStatus } from "../../../../../common/test-utils/get-promise-status";
import type { DiContainer } from "@ogre-tools/injectable";
import loggerInjectable from "../../../../../common/logger.injectable";
import type { Logger } from "../../../../../common/logger";
import { noop } from "../../../../../common/utils";
describe("download-platform-update", () => {
let downloadPlatformUpdate: DownloadPlatformUpdate;
@@ -43,7 +43,13 @@ describe("download-platform-update", () => {
di.override(electronUpdaterInjectable, () => electronUpdaterFake);
logErrorMock = jest.fn();
di.override(loggerInjectable, () => ({ error: logErrorMock }) as unknown as Logger);
di.override(loggerInjectable, () => ({
error: logErrorMock,
debug: noop,
info: noop,
silly: noop,
warn: noop,
}));
downloadPlatformUpdate = di.inject(downloadPlatformUpdateInjectable);
});
@@ -165,7 +165,23 @@ exports[`opening catalog entity details panel renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -232,7 +248,7 @@ exports[`opening catalog entity details panel renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -970,7 +986,23 @@ exports[`opening catalog entity details panel when navigated to the catalog rend
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1037,7 +1069,7 @@ exports[`opening catalog entity details panel when navigated to the catalog rend
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1775,7 +1807,23 @@ exports[`opening catalog entity details panel when navigated to the catalog when
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1842,7 +1890,7 @@ exports[`opening catalog entity details panel when navigated to the catalog when
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -2612,7 +2660,23 @@ exports[`opening catalog entity details panel when navigated to the catalog when
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2679,7 +2743,7 @@ exports[`opening catalog entity details panel when navigated to the catalog when
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -3449,7 +3513,23 @@ exports[`opening catalog entity details panel when navigated to the catalog when
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -3516,7 +3596,7 @@ exports[`opening catalog entity details panel when navigated to the catalog when
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -4551,7 +4631,23 @@ exports[`opening catalog entity details panel when navigated to the catalog when
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -4618,7 +4714,7 @@ exports[`opening catalog entity details panel when navigated to the catalog when
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -5376,7 +5472,23 @@ exports[`opening catalog entity details panel when navigated to the catalog when
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -5443,7 +5555,7 @@ exports[`opening catalog entity details panel when navigated to the catalog when
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -6201,7 +6313,23 @@ exports[`opening catalog entity details panel when navigated to the catalog when
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -6268,7 +6396,7 @@ exports[`opening catalog entity details panel when navigated to the catalog when
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -476,7 +476,23 @@ exports[`Deleting a cluster when an internal kubeconfig cluster is used when the
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -543,7 +559,7 @@ exports[`Deleting a cluster when an internal kubeconfig cluster is used when the
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1112,7 +1128,23 @@ exports[`Deleting a cluster when the kubeconfig has multiple clusters when the d
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1179,7 +1211,7 @@ exports[`Deleting a cluster when the kubeconfig has multiple clusters when the d
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1781,7 +1813,23 @@ exports[`Deleting a cluster when the kubeconfig has multiple clusters when the d
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1848,7 +1896,7 @@ exports[`Deleting a cluster when the kubeconfig has multiple clusters when the d
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -2529,7 +2577,23 @@ exports[`Deleting a cluster when the kubeconfig has multiple clusters when the d
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2596,7 +2660,7 @@ exports[`Deleting a cluster when the kubeconfig has multiple clusters when the d
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -3277,7 +3341,23 @@ exports[`Deleting a cluster when the kubeconfig has only one cluster when the di
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -3344,7 +3424,7 @@ exports[`Deleting a cluster when the kubeconfig has only one cluster when the di
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -6,7 +6,7 @@ import emitAppEventInjectable from "../../../../common/app-event-bus/emit-event.
import clusterFramesInjectable from "../../../../common/cluster-frames.injectable";
import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable";
import directoryForLensLocalStorageInjectable from "../../../../common/directory-for-lens-local-storage/directory-for-lens-local-storage.injectable";
import deleteFileInjectable from "../../../../common/fs/delete-file.injectable";
import removePathInjectable from "../../../../common/fs/remove.injectable";
import joinPathsInjectable from "../../../../common/path/join-paths.injectable";
import { noop } from "../../../../common/utils";
import { getRequestChannelListenerInjectable } from "../../../../main/utils/channel/channel-listeners/listener-tokens";
@@ -20,7 +20,7 @@ const deleteClusterChannelListenerInjectable = getRequestChannelListenerInjectab
const clusterFrames = di.inject(clusterFramesInjectable);
const joinPaths = di.inject(joinPathsInjectable);
const directoryForLensLocalStorage = di.inject(directoryForLensLocalStorageInjectable);
const deleteFile = di.inject(deleteFileInjectable);
const deleteFile = di.inject(removePathInjectable);
return async (clusterId) => {
emitAppEvent({ name: "cluster", action: "remove" });
@@ -302,11 +302,63 @@ exports[`disable kube object detail items when cluster is not relevant given ext
<div
class="drawer-content flex column box grow"
>
<div
class="DrawerItem"
>
<span
class="name"
>
Created
</span>
<span
class="value"
>
&lt;unknown&gt;
ago
</span>
</div>
<div
class="DrawerItem"
>
<span
class="name"
>
Name
</span>
<span
class="value"
>
some-name
</span>
</div>
<div
class="DrawerItem"
>
<span
class="name"
>
Namespace
</span>
<span
class="value"
>
some-namespace
</span>
</div>
<div
data-testid="some-kube-object-detail-item"
>
Some detail
</div>
<div>
<div
class="DrawerTitle flex gaps align-center title"
>
<span>
Events
</span>
</div>
</div>
</div>
</div>
<div
@@ -792,6 +844,15 @@ exports[`disable kube object detail items when cluster is not relevant given ext
some-namespace
</span>
</div>
<div>
<div
class="DrawerTitle flex gaps align-center title"
>
<span>
Events
</span>
</div>
</div>
</div>
</div>
<div
@@ -1277,6 +1338,15 @@ exports[`disable kube object detail items when cluster is not relevant given not
some-namespace
</span>
</div>
<div>
<div
class="DrawerTitle flex gaps align-center title"
>
<span>
Events
</span>
</div>
</div>
</div>
</div>
<div
@@ -19,6 +19,7 @@ import extensionShouldBeEnabledForClusterFrameInjectable from "../../../../rende
import apiManagerInjectable from "../../../../common/k8s-api/api-manager/manager.injectable";
import { KubeObjectDetails } from "../../../../renderer/components/kube-object-details";
import type { ApiManager } from "../../../../common/k8s-api/api-manager";
import type { KubeObjectStore } from "../../../../common/k8s-api/kube-object.store";
describe("disable kube object detail items when cluster is not relevant", () => {
let builder: ApplicationBuilder;
@@ -32,16 +33,11 @@ describe("disable kube object detail items when cluster is not relevant", () =>
builder.setEnvironmentToClusterFrame();
builder.beforeWindowStart((windowDi) => {
windowDi.override(
apiManagerInjectable,
() =>
({
getStore: () => ({
getByPath: () =>
getKubeObjectStub("some-kind", "some-api-version"),
}),
} as unknown as ApiManager),
);
windowDi.override(apiManagerInjectable, () => ({
getStore: () => ({
loadFromPath: async () => getKubeObjectStub("some-kind", "some-api-version"),
}) as Partial<KubeObjectStore> as KubeObjectStore,
}) as Partial<ApiManager> as ApiManager);
windowDi.unoverride(extensionShouldBeEnabledForClusterFrameInjectable);
@@ -16,6 +16,7 @@ import { KubeObject } from "../../../../common/k8s-api/kube-object";
import apiManagerInjectable from "../../../../common/k8s-api/api-manager/manager.injectable";
import { KubeObjectDetails } from "../../../../renderer/components/kube-object-details";
import type { ApiManager } from "../../../../common/k8s-api/api-manager";
import type { KubeObjectStore } from "../../../../common/k8s-api/kube-object.store";
describe("reactively hide kube object detail item", () => {
let builder: ApplicationBuilder;
@@ -28,16 +29,11 @@ describe("reactively hide kube object detail item", () => {
builder.setEnvironmentToClusterFrame();
builder.beforeWindowStart((windowDi) => {
windowDi.override(
apiManagerInjectable,
() =>
({
getStore: () => ({
getByPath: () =>
getKubeObjectStub("some-kind", "some-api-version"),
}),
} as unknown as ApiManager),
);
windowDi.override(apiManagerInjectable, () => ({
getStore: () => ({
loadFromPath: async () => getKubeObjectStub("some-kind", "some-api-version"),
}) as Partial<KubeObjectStore> as KubeObjectStore,
}) as Partial<ApiManager> as ApiManager);
runInAction(() => {
windowDi.register(testRouteInjectable, testRouteComponentInjectable);
@@ -24,6 +24,7 @@ import { navigateToRouteInjectionToken } from "../../common/front-end-routing/na
import sidebarStorageInjectable from "../../renderer/components/layout/sidebar-storage/sidebar-storage.injectable";
import { advanceFakeTime, useFakeTime } from "../../common/test-utils/use-fake-time";
import storageSaveDelayInjectable from "../../renderer/utils/create-storage/storage-save-delay.injectable";
import { flushPromises } from "../../common/test-utils/flush-promises";
describe("cluster - sidebar and tab navigation for core", () => {
let builder: ApplicationBuilder;
@@ -283,6 +284,8 @@ describe("cluster - sidebar and tab navigation for core", () => {
const readJsonFileFake = windowDi.inject(readJsonFileInjectable);
await flushPromises();
const actual = await readJsonFileFake(
"/some-directory-for-lens-local-storage/some-cluster-id.json",
);
@@ -20,6 +20,7 @@ import type { IObservableValue } from "mobx";
import { runInAction, computed, observable } from "mobx";
import storageSaveDelayInjectable from "../../renderer/utils/create-storage/storage-save-delay.injectable";
import type { DiContainer } from "@ogre-tools/injectable";
import { flushPromises } from "../../common/test-utils/flush-promises";
describe("cluster - sidebar and tab navigation for extensions", () => {
let applicationBuilder: ApplicationBuilder;
@@ -399,6 +400,8 @@ describe("cluster - sidebar and tab navigation for extensions", () => {
const readJsonFileFake = windowDi.inject(readJsonFileInjectable);
await flushPromises(); // Needed because of several async calls
const actual = await readJsonFileFake(
"/some-directory-for-lens-local-storage/some-cluster-id.json",
);
@@ -0,0 +1,21 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import type { ClusterId, ClusterState } from "../../../../common/cluster-types";
import type { MessageChannel } from "../../../../common/utils/channel/message-channel-listener-injection-token";
import type { RequestChannel } from "../../../../common/utils/channel/request-channel-listener-injection-token";
export interface ClusterStateSync {
clusterId: ClusterId;
state: ClusterState;
}
export const clusterStateSyncChannel: MessageChannel<ClusterStateSync> = {
id: "cluster-state-sync",
};
export const initialClusterStatesChannel: RequestChannel<void, ClusterStateSync[]> = {
id: "initial-cluster-state-sync",
};
@@ -0,0 +1,21 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import type { MessageChannelHandler } from "../../../../common/utils/channel/message-channel-listener-injection-token";
import { sendMessageToChannelInjectionToken } from "../../../../common/utils/channel/message-to-channel-injection-token";
import { clusterStateSyncChannel } from "../common/channels";
export type EmitClusterStateUpdate = MessageChannelHandler<typeof clusterStateSyncChannel>;
const emitClusterStateUpdateInjectable = getInjectable({
id: "emit-cluster-state-update",
instantiate: (di): EmitClusterStateUpdate => {
const sendMessageToChannel = di.inject(sendMessageToChannelInjectionToken);
return (message) => sendMessageToChannel(clusterStateSyncChannel, message);
},
});
export default emitClusterStateUpdateInjectable;
@@ -0,0 +1,21 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable";
import { getRequestChannelListenerInjectable } from "../../../../main/utils/channel/channel-listeners/listener-tokens";
import { initialClusterStatesChannel } from "../common/channels";
const handleInitialClusterStateSyncInjectable = getRequestChannelListenerInjectable({
channel: initialClusterStatesChannel,
handler: (di) => {
const clusterStore = di.inject(clusterStoreInjectable);
return () => clusterStore.clustersList.map(cluster => ({
clusterId: cluster.id,
state: cluster.getState(),
}));
},
});
export default handleInitialClusterStateSyncInjectable;
@@ -0,0 +1,44 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { isEqual } from "lodash";
import { autorun } from "mobx";
import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable";
import type { ClusterId, ClusterState } from "../../../../common/cluster-types";
import { beforeApplicationIsLoadingInjectionToken } from "../../../../main/start-main-application/runnable-tokens/before-application-is-loading-injection-token";
import initClusterStoreInjectable from "../../store/main/init.injectable";
import emitClusterStateUpdateInjectable from "./emit-update.injectable";
const setupClusterStateBroadcastingInjectable = getInjectable({
id: "setup-cluster-state-broadcasting",
instantiate: (di) => ({
id: "setup-cluster-state-broadcasting",
run: () => {
const emitClusterStateUpdate = di.inject(emitClusterStateUpdateInjectable);
const clusterStore = di.inject(clusterStoreInjectable);
const prevStates = new Map<ClusterId, ClusterState>();
autorun(() => {
for (const cluster of clusterStore.clusters.values()) {
const prevState = prevStates.get(cluster.id);
const curState = cluster.getState();
if (!prevState || !isEqual(prevState, curState)) {
prevStates.set(cluster.id, curState);
emitClusterStateUpdate({
clusterId: cluster.id,
state: cluster.getState(),
});
}
}
});
},
runAfter: di.inject(initClusterStoreInjectable),
}),
injectionToken: beforeApplicationIsLoadingInjectionToken,
});
export default setupClusterStateBroadcastingInjectable;
@@ -0,0 +1,19 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import getClusterByIdInjectable from "../../../../common/cluster-store/get-by-id.injectable";
import { getMessageChannelListenerInjectable } from "../../../../common/utils/channel/message-channel-listener-injection-token";
import { clusterStateSyncChannel } from "../common/channels";
const clusterStateListenerInjectable = getMessageChannelListenerInjectable({
channel: clusterStateSyncChannel,
id: "main",
handler: (di) => {
const getClusterById = di.inject(getClusterByIdInjectable);
return ({ clusterId, state }) => getClusterById(clusterId)?.setState(state);
},
});
export default clusterStateListenerInjectable;
@@ -0,0 +1,21 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import type { RequestChannelHandler } from "../../../../main/utils/channel/channel-listeners/listener-tokens";
import requestFromChannelInjectable from "../../../../renderer/utils/channel/request-from-channel.injectable";
import { initialClusterStatesChannel } from "../common/channels";
export type RequestInitialClusterStates = RequestChannelHandler<typeof initialClusterStatesChannel>;
const requestInitialClusterStatesInjectable = getInjectable({
id: "request-initial-cluster-states",
instantiate: (di): RequestInitialClusterStates => {
const requestFromChannel = di.inject(requestFromChannelInjectable);
return () => requestFromChannel(initialClusterStatesChannel);
},
});
export default requestInitialClusterStatesInjectable;
@@ -0,0 +1,29 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import getClusterByIdInjectable from "../../../../common/cluster-store/get-by-id.injectable";
import { beforeFrameStartsInjectionToken } from "../../../../renderer/before-frame-starts/tokens";
import initClusterStoreInjectable from "../../store/renderer/init.injectable";
import requestInitialClusterStatesInjectable from "./request-initial.injectable";
const setupClusterStateSyncInjectable = getInjectable({
id: "setup-cluster-state-sync",
instantiate: (di) => ({
id: "setup-cluster-state-sync",
run: async () => {
const requestInitialClusterStates = di.inject(requestInitialClusterStatesInjectable);
const getClusterById = di.inject(getClusterByIdInjectable);
const initalStates = await requestInitialClusterStates();
for (const { clusterId, state } of initalStates) {
getClusterById(clusterId)?.setState(state);
}
},
runAfter: di.inject(initClusterStoreInjectable),
}),
injectionToken: beforeFrameStartsInjectionToken,
});
export default setupClusterStateSyncInjectable;
@@ -0,0 +1,26 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable";
import { beforeApplicationIsLoadingInjectionToken } from "../../../../main/start-main-application/runnable-tokens/before-application-is-loading-injection-token";
import initUserStoreInjectable from "../../../../main/stores/init-user-store.injectable";
const initClusterStoreInjectable = getInjectable({
id: "init-cluster-store",
instantiate: (di) => {
const clusterStore = di.inject(clusterStoreInjectable);
return {
id: "init-cluster-store",
run: () => {
clusterStore.load();
},
runAfter: di.inject(initUserStoreInjectable),
};
},
injectionToken: beforeApplicationIsLoadingInjectionToken,
});
export default initClusterStoreInjectable;
@@ -0,0 +1,24 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import clusterStoreInjectable from "../../../../common/cluster-store/cluster-store.injectable";
import { beforeFrameStartsInjectionToken } from "../../../../renderer/before-frame-starts/tokens";
import initUserStoreInjectable from "../../../../renderer/stores/init-user-store.injectable";
const initClusterStoreInjectable = getInjectable({
id: "init-cluster-store",
instantiate: (di) => ({
id: "init-cluster-store",
run: () => {
const clusterStore = di.inject(clusterStoreInjectable);
clusterStore.load();
},
runAfter: di.inject(initUserStoreInjectable),
}),
injectionToken: beforeFrameStartsInjectionToken,
});
export default initClusterStoreInjectable;
@@ -256,7 +256,23 @@ exports[`Command Pallet: keyboard shortcut tests when on linux renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -323,7 +339,7 @@ exports[`Command Pallet: keyboard shortcut tests when on linux renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -616,7 +632,23 @@ exports[`Command Pallet: keyboard shortcut tests when on linux when pressing ESC
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -683,7 +715,7 @@ exports[`Command Pallet: keyboard shortcut tests when on linux when pressing ESC
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -976,7 +1008,23 @@ exports[`Command Pallet: keyboard shortcut tests when on linux when pressing SHI
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1043,7 +1091,7 @@ exports[`Command Pallet: keyboard shortcut tests when on linux when pressing SHI
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1348,7 +1396,23 @@ exports[`Command Pallet: keyboard shortcut tests when on linux when pressing SHI
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1415,7 +1479,7 @@ exports[`Command Pallet: keyboard shortcut tests when on linux when pressing SHI
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1617,7 +1681,23 @@ exports[`Command Pallet: keyboard shortcut tests when on macOS renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1684,7 +1764,7 @@ exports[`Command Pallet: keyboard shortcut tests when on macOS renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1886,7 +1966,23 @@ exports[`Command Pallet: keyboard shortcut tests when on macOS when pressing ESC
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1953,7 +2049,7 @@ exports[`Command Pallet: keyboard shortcut tests when on macOS when pressing ESC
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -2155,7 +2251,23 @@ exports[`Command Pallet: keyboard shortcut tests when on macOS when pressing SHI
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2222,7 +2334,7 @@ exports[`Command Pallet: keyboard shortcut tests when on macOS when pressing SHI
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -2436,7 +2548,23 @@ exports[`Command Pallet: keyboard shortcut tests when on macOS when pressing SHI
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2503,7 +2631,7 @@ exports[`Command Pallet: keyboard shortcut tests when on macOS when pressing SHI
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -165,7 +165,23 @@ exports[`Showing correct entity settings renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -232,7 +248,7 @@ exports[`Showing correct entity settings renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -511,7 +527,23 @@ exports[`Showing correct entity settings when navigating to local cluster entity
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -578,7 +610,7 @@ exports[`Showing correct entity settings when navigating to local cluster entity
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -798,40 +830,7 @@ exports[`Showing correct entity settings when navigating to non-local cluster en
>
Proxy
</h2>
<section>
<section>
<div
class="SubTitle"
id="http-proxy"
>
HTTP Proxy
</div>
<div
class="Input theme round black"
>
<label
class="input-area flex gaps align-center"
id=""
>
<input
class="input box grow"
placeholder="http://<address>:<port>"
spellcheck="false"
value=""
/>
</label>
<div
class="input-info flex gaps"
/>
</div>
<small
class="hint"
>
HTTP Proxy server. Used for communicating with Kubernetes API.
</small>
</section>
</section>
<section />
</section>
</div>
<div
@@ -878,7 +877,23 @@ exports[`Showing correct entity settings when navigating to non-local cluster en
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -945,7 +960,7 @@ exports[`Showing correct entity settings when navigating to non-local cluster en
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1147,7 +1162,23 @@ exports[`Showing correct entity settings when navigating to weblink entity setti
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1214,7 +1245,7 @@ exports[`Showing correct entity settings when navigating to weblink entity setti
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -164,7 +164,23 @@ exports[`extensions - navigation using application menu renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -231,7 +247,7 @@ exports[`extensions - navigation using application menu renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -458,7 +474,23 @@ exports[`extensions - navigation using application menu when navigating to exten
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -525,7 +557,7 @@ exports[`extensions - navigation using application menu when navigating to exten
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -0,0 +1,16 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import type { MessageChannel } from "../../../../common/utils/channel/message-channel-listener-injection-token";
export interface NavigateForExtensionArgs {
extId: string;
pageId: string | undefined;
params: Record<string, any> | undefined;
}
export const navigateForExtensionChannel: MessageChannel<NavigateForExtensionArgs> = {
id: "navigate-for-extension",
};
@@ -0,0 +1,26 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getMessageChannelListenerInjectable } from "../../../../common/utils/channel/message-channel-listener-injection-token";
import extensionLoaderInjectable from "../../../../extensions/extension-loader/extension-loader.injectable";
import type { LensRendererExtension } from "../../../../extensions/lens-renderer-extension";
import { navigateForExtensionChannel } from "../common/channel";
const navigateForExtensionListenerInjectable = getMessageChannelListenerInjectable({
channel: navigateForExtensionChannel,
id: "main",
handler: (di) => {
const extensionLoader = di.inject(extensionLoaderInjectable);
return ({ extId, pageId, params }) => {
const extension = extensionLoader.getInstanceById(extId) as LensRendererExtension | undefined;
if (extension) {
extension.navigate(pageId, params);
}
};
},
});
export default navigateForExtensionListenerInjectable;
@@ -0,0 +1,22 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import fileSystemProvisionerStoreInjectable from "../../../extensions/extension-loader/file-system-provisioner-store/file-system-provisioner-store.injectable";
import { onLoadOfApplicationInjectionToken } from "../../../main/start-main-application/runnable-tokens/on-load-of-application-injection-token";
const initFileSystemProvisionerStoreInjectable = getInjectable({
id: "init-file-system-provisioner-store",
instantiate: (di) => ({
id: "init-file-system-provisioner-store",
run: () => {
const store = di.inject(fileSystemProvisionerStoreInjectable);
store.load();
},
}),
injectionToken: onLoadOfApplicationInjectionToken,
});
export default initFileSystemProvisionerStoreInjectable;
@@ -0,0 +1,22 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import fileSystemProvisionerStoreInjectable from "../../../extensions/extension-loader/file-system-provisioner-store/file-system-provisioner-store.injectable";
import { beforeFrameStartsInjectionToken } from "../../../renderer/before-frame-starts/tokens";
const initFileSystemProvisionerStoreInjectable = getInjectable({
id: "init-file-system-provisioner-store",
instantiate: (di) => ({
id: "init-file-system-provisioner-store",
run: () => {
const store = di.inject(fileSystemProvisionerStoreInjectable);
store.load();
},
}),
injectionToken: beforeFrameStartsInjectionToken,
});
export default initFileSystemProvisionerStoreInjectable;
@@ -195,6 +195,7 @@ exports[`remove helm repository from list of active repositories in preferences
>
Download kubectl binaries matching the Kubernetes cluster version
<input
checked=""
role="switch"
type="checkbox"
/>
@@ -215,7 +216,7 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="Select theme-lens Select--is-disabled css-3iigni-container"
class="Select theme-lens css-b62m3t-container"
>
<span
class="css-1f43avz-a11yText-A11yText"
@@ -228,31 +229,28 @@ exports[`remove helm repository from list of active repositories in preferences
class="css-1f43avz-a11yText-A11yText"
/>
<div
class="Select__control Select__control--is-disabled css-16xfy0z-control"
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-download-mirror-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Download mirror for kubectl
Default (Google)
</div>
<div
class="Select__input-container css-1h01tm3-Input"
class="Select__input-container css-qbdosj-Input"
data-value=""
>
<input
aria-autocomplete="list"
aria-describedby="react-select-download-mirror-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
autocomplete="off"
autocorrect="off"
class="Select__input"
disabled=""
id="download-mirror-input"
role="combobox"
spellcheck="false"
@@ -267,7 +265,7 @@ exports[`remove helm repository from list of active repositories in preferences
class="Select__indicators css-1hb7zxy-IndicatorsContainer"
>
<span
class="Select__indicator-separator css-894a34-indicatorSeparator"
class="Select__indicator-separator css-1u9des2-indicatorSeparator"
/>
<div
aria-hidden="true"
@@ -305,7 +303,7 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="Input theme round black disabled"
class="Input theme round black"
>
<label
class="input-area flex gaps align-center"
@@ -313,7 +311,6 @@ exports[`remove helm repository from list of active repositories in preferences
>
<input
class="input box grow"
disabled=""
placeholder="/some-electron-app-path-for-user-data/binaries"
spellcheck="false"
value=""
@@ -344,7 +341,7 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="Input theme round black"
class="Input theme round black disabled"
>
<label
class="input-area flex gaps align-center"
@@ -352,6 +349,7 @@ exports[`remove helm repository from list of active repositories in preferences
>
<input
class="input box grow"
disabled=""
placeholder="/some-electron-app-path-for-user-data/binaries/kubectl"
spellcheck="false"
value=""
@@ -396,13 +394,11 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="notice mt-3"
class="loading-spinner"
>
<div
class="flex-grow text-center"
>
No files and folders have been synced yet
</div>
class="Spinner singleColor"
/>
</div>
</section>
</div>
@@ -587,7 +583,23 @@ exports[`remove helm repository from list of active repositories in preferences
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -654,7 +666,7 @@ exports[`remove helm repository from list of active repositories in preferences
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -886,6 +898,7 @@ exports[`remove helm repository from list of active repositories in preferences
>
Download kubectl binaries matching the Kubernetes cluster version
<input
checked=""
role="switch"
type="checkbox"
/>
@@ -906,7 +919,7 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="Select theme-lens Select--is-disabled css-3iigni-container"
class="Select theme-lens css-b62m3t-container"
>
<span
class="css-1f43avz-a11yText-A11yText"
@@ -919,31 +932,28 @@ exports[`remove helm repository from list of active repositories in preferences
class="css-1f43avz-a11yText-A11yText"
/>
<div
class="Select__control Select__control--is-disabled css-16xfy0z-control"
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-download-mirror-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Download mirror for kubectl
Default (Google)
</div>
<div
class="Select__input-container css-1h01tm3-Input"
class="Select__input-container css-qbdosj-Input"
data-value=""
>
<input
aria-autocomplete="list"
aria-describedby="react-select-download-mirror-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
autocomplete="off"
autocorrect="off"
class="Select__input"
disabled=""
id="download-mirror-input"
role="combobox"
spellcheck="false"
@@ -958,7 +968,7 @@ exports[`remove helm repository from list of active repositories in preferences
class="Select__indicators css-1hb7zxy-IndicatorsContainer"
>
<span
class="Select__indicator-separator css-894a34-indicatorSeparator"
class="Select__indicator-separator css-1u9des2-indicatorSeparator"
/>
<div
aria-hidden="true"
@@ -996,7 +1006,7 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="Input theme round black disabled"
class="Input theme round black"
>
<label
class="input-area flex gaps align-center"
@@ -1004,7 +1014,6 @@ exports[`remove helm repository from list of active repositories in preferences
>
<input
class="input box grow"
disabled=""
placeholder="/some-electron-app-path-for-user-data/binaries"
spellcheck="false"
value=""
@@ -1035,7 +1044,7 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="Input theme round black"
class="Input theme round black disabled"
>
<label
class="input-area flex gaps align-center"
@@ -1043,6 +1052,7 @@ exports[`remove helm repository from list of active repositories in preferences
>
<input
class="input box grow"
disabled=""
placeholder="/some-electron-app-path-for-user-data/binaries/kubectl"
spellcheck="false"
value=""
@@ -1087,13 +1097,11 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="notice mt-3"
class="loading-spinner"
>
<div
class="flex-grow text-center"
>
No files and folders have been synced yet
</div>
class="Spinner singleColor"
/>
</div>
</section>
</div>
@@ -1289,7 +1297,23 @@ exports[`remove helm repository from list of active repositories in preferences
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1356,7 +1380,7 @@ exports[`remove helm repository from list of active repositories in preferences
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1588,6 +1612,7 @@ exports[`remove helm repository from list of active repositories in preferences
>
Download kubectl binaries matching the Kubernetes cluster version
<input
checked=""
role="switch"
type="checkbox"
/>
@@ -1608,7 +1633,7 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="Select theme-lens Select--is-disabled css-3iigni-container"
class="Select theme-lens css-b62m3t-container"
>
<span
class="css-1f43avz-a11yText-A11yText"
@@ -1621,31 +1646,28 @@ exports[`remove helm repository from list of active repositories in preferences
class="css-1f43avz-a11yText-A11yText"
/>
<div
class="Select__control Select__control--is-disabled css-16xfy0z-control"
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-download-mirror-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Download mirror for kubectl
Default (Google)
</div>
<div
class="Select__input-container css-1h01tm3-Input"
class="Select__input-container css-qbdosj-Input"
data-value=""
>
<input
aria-autocomplete="list"
aria-describedby="react-select-download-mirror-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
autocomplete="off"
autocorrect="off"
class="Select__input"
disabled=""
id="download-mirror-input"
role="combobox"
spellcheck="false"
@@ -1660,7 +1682,7 @@ exports[`remove helm repository from list of active repositories in preferences
class="Select__indicators css-1hb7zxy-IndicatorsContainer"
>
<span
class="Select__indicator-separator css-894a34-indicatorSeparator"
class="Select__indicator-separator css-1u9des2-indicatorSeparator"
/>
<div
aria-hidden="true"
@@ -1698,7 +1720,7 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="Input theme round black disabled"
class="Input theme round black"
>
<label
class="input-area flex gaps align-center"
@@ -1706,7 +1728,6 @@ exports[`remove helm repository from list of active repositories in preferences
>
<input
class="input box grow"
disabled=""
placeholder="/some-electron-app-path-for-user-data/binaries"
spellcheck="false"
value=""
@@ -1737,7 +1758,7 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="Input theme round black"
class="Input theme round black disabled"
>
<label
class="input-area flex gaps align-center"
@@ -1745,6 +1766,7 @@ exports[`remove helm repository from list of active repositories in preferences
>
<input
class="input box grow"
disabled=""
placeholder="/some-electron-app-path-for-user-data/binaries/kubectl"
spellcheck="false"
value=""
@@ -1789,13 +1811,11 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="notice mt-3"
class="loading-spinner"
>
<div
class="flex-grow text-center"
>
No files and folders have been synced yet
</div>
class="Spinner singleColor"
/>
</div>
</section>
</div>
@@ -1991,7 +2011,23 @@ exports[`remove helm repository from list of active repositories in preferences
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2058,7 +2094,7 @@ exports[`remove helm repository from list of active repositories in preferences
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -2290,6 +2326,7 @@ exports[`remove helm repository from list of active repositories in preferences
>
Download kubectl binaries matching the Kubernetes cluster version
<input
checked=""
role="switch"
type="checkbox"
/>
@@ -2310,7 +2347,7 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="Select theme-lens Select--is-disabled css-3iigni-container"
class="Select theme-lens css-b62m3t-container"
>
<span
class="css-1f43avz-a11yText-A11yText"
@@ -2323,31 +2360,28 @@ exports[`remove helm repository from list of active repositories in preferences
class="css-1f43avz-a11yText-A11yText"
/>
<div
class="Select__control Select__control--is-disabled css-16xfy0z-control"
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-download-mirror-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Download mirror for kubectl
Default (Google)
</div>
<div
class="Select__input-container css-1h01tm3-Input"
class="Select__input-container css-qbdosj-Input"
data-value=""
>
<input
aria-autocomplete="list"
aria-describedby="react-select-download-mirror-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
autocomplete="off"
autocorrect="off"
class="Select__input"
disabled=""
id="download-mirror-input"
role="combobox"
spellcheck="false"
@@ -2362,7 +2396,7 @@ exports[`remove helm repository from list of active repositories in preferences
class="Select__indicators css-1hb7zxy-IndicatorsContainer"
>
<span
class="Select__indicator-separator css-894a34-indicatorSeparator"
class="Select__indicator-separator css-1u9des2-indicatorSeparator"
/>
<div
aria-hidden="true"
@@ -2400,7 +2434,7 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="Input theme round black disabled"
class="Input theme round black"
>
<label
class="input-area flex gaps align-center"
@@ -2408,7 +2442,6 @@ exports[`remove helm repository from list of active repositories in preferences
>
<input
class="input box grow"
disabled=""
placeholder="/some-electron-app-path-for-user-data/binaries"
spellcheck="false"
value=""
@@ -2439,7 +2472,7 @@ exports[`remove helm repository from list of active repositories in preferences
</div>
<div
class="Input theme round black"
class="Input theme round black disabled"
>
<label
class="input-area flex gaps align-center"
@@ -2447,6 +2480,7 @@ exports[`remove helm repository from list of active repositories in preferences
>
<input
class="input box grow"
disabled=""
placeholder="/some-electron-app-path-for-user-data/binaries/kubectl"
spellcheck="false"
value=""
@@ -2490,13 +2524,39 @@ exports[`remove helm repository from list of active repositories in preferences
Synced Items
</div>
<div
class="notice mt-3"
>
<div>
<div
class="flex-grow text-center"
class="item flex gaps align-center justify-space-between mt-3"
>
No files and folders have been synced yet
<i
class="Icon material focusable"
>
<span
class="icon"
data-icon-name="folder"
>
folder
</span>
</i>
<div
class="flex-grow break-all"
>
/some-home-dir/.kube
</div>
<i
class="Icon material interactive focusable"
tabindex="0"
>
<span
class="icon"
data-icon-name="delete"
>
delete
</span>
</i>
<div>
Remove
</div>
</div>
</div>
</section>
@@ -2682,7 +2742,23 @@ exports[`remove helm repository from list of active repositories in preferences
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2749,7 +2825,7 @@ exports[`remove helm repository from list of active repositories in preferences
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -13,7 +13,7 @@ import execFileInjectable from "../../common/fs/exec-file.injectable";
import helmBinaryPathInjectable from "../../main/helm/helm-binary-path.injectable";
import getActiveHelmRepositoriesInjectable from "../../main/helm/repositories/get-active-helm-repositories/get-active-helm-repositories.injectable";
import type { HelmRepo } from "../../common/helm/helm-repo";
import callForPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/call-for-public-helm-repositories.injectable";
import requestPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/request-public-helm-repositories.injectable";
import isPathInjectable from "../../renderer/components/input/validators/is-path.injectable";
import showSuccessNotificationInjectable from "../../renderer/components/notifications/show-success-notification.injectable";
import showErrorNotificationInjectable from "../../renderer/components/notifications/show-error-notification.injectable";
@@ -47,7 +47,7 @@ describe("add custom helm repository in preferences", () => {
});
builder.beforeWindowStart((windowDi) => {
windowDi.override(callForPublicHelmRepositoriesInjectable, () => async () => []);
windowDi.override(requestPublicHelmRepositoriesInjectable, () => async () => []);
windowDi.override(showSuccessNotificationInjectable, () => showSuccessNotificationMock);
windowDi.override(showErrorNotificationInjectable, () => showErrorNotificationMock);
@@ -73,9 +73,11 @@ describe("add custom helm repository in preferences", () => {
await Promise.all([
getActiveHelmRepositoriesMock.resolve({
callWasSuccessful: true,
response: [
{ name: "Some active repository", url: "some-url" },
],
response: [{
name: "Some active repository",
url: "some-url",
cacheFilePath: "/some-cache-file-for-active",
}],
}),
]);
});
@@ -12,7 +12,7 @@ import execFileInjectable from "../../common/fs/exec-file.injectable";
import helmBinaryPathInjectable from "../../main/helm/helm-binary-path.injectable";
import getActiveHelmRepositoriesInjectable from "../../main/helm/repositories/get-active-helm-repositories/get-active-helm-repositories.injectable";
import type { HelmRepo } from "../../common/helm/helm-repo";
import callForPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/call-for-public-helm-repositories.injectable";
import requestPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/request-public-helm-repositories.injectable";
import showSuccessNotificationInjectable from "../../renderer/components/notifications/show-success-notification.injectable";
import showErrorNotificationInjectable from "../../renderer/components/notifications/show-error-notification.injectable";
import type { AsyncResult } from "../../common/utils/async-result";
@@ -44,7 +44,7 @@ describe("add helm repository from list in preferences", () => {
builder.beforeWindowStart((windowDi) => {
windowDi.override(showSuccessNotificationInjectable, () => showSuccessNotificationMock);
windowDi.override(showErrorNotificationInjectable, () => showErrorNotificationMock);
windowDi.override(callForPublicHelmRepositoriesInjectable, () => callForPublicHelmRepositoriesMock);
windowDi.override(requestPublicHelmRepositoriesInjectable, () => callForPublicHelmRepositoriesMock);
});
rendered = await builder.render();
@@ -72,15 +72,25 @@ describe("add helm repository from list in preferences", () => {
beforeEach(async () => {
await Promise.all([
callForPublicHelmRepositoriesMock.resolve([
{ name: "Some already active repository", url: "some-url" },
{ name: "Some to be added repository", url: "some-other-url" },
{
name: "Some already active repository",
url: "some-url",
cacheFilePath: "/some-cache-file-for-active",
},
{
name: "Some to be added repository",
url: "some-other-url",
cacheFilePath: "/some-cache-file-for-non-active",
},
]),
getActiveHelmRepositoriesMock.resolve({
callWasSuccessful: true,
response: [
{ name: "Some already active repository", url: "some-url" },
],
response: [{
name: "Some already active repository",
url: "some-url",
cacheFilePath: "/some-cache-file-for-active",
}],
}),
]);
});
@@ -195,8 +205,16 @@ describe("add helm repository from list in preferences", () => {
await getActiveHelmRepositoriesMock.resolve({
callWasSuccessful: true,
response: [
{ name: "Some already active repository", url: "some-url" },
{ name: "Some to be added repository", url: "some-other-url" },
{
name: "Some already active repository",
url: "some-url",
cacheFilePath: "/some-cache-file-for-active",
},
{
name: "Some to be added repository",
url: "some-other-url",
cacheFilePath: "/some-cache-file-for-non-active",
},
],
});
});
@@ -32,7 +32,12 @@ interface Dependencies {
maximalOptionsAreShown: IObservableValue<boolean>;
}
const NonInjectedActivationOfCustomHelmRepositoryDialogContent = observer(({ helmRepo, submitCustomRepository, maximalOptionsAreShown, hideDialog } : Dependencies) => (
const NonInjectedActivationOfCustomHelmRepositoryDialogContent = observer(({
helmRepo,
submitCustomRepository,
maximalOptionsAreShown,
hideDialog,
} : Dependencies) => (
<Wizard header={<h5>Add custom Helm Repo</h5>} done={hideDialog}>
<WizardStep
contentClass="flow column"
@@ -135,18 +140,14 @@ const NonInjectedActivationOfCustomHelmRepositoryDialogContent = observer(({ hel
export const AddingOfCustomHelmRepositoryDialogContent = withInjectables<Dependencies>(
NonInjectedActivationOfCustomHelmRepositoryDialogContent,
{
getProps: (di) => ({
helmRepo: di.inject(customHelmRepoInjectable),
hideDialog: di.inject(hideDialogForAddingCustomHelmRepositoryInjectable),
submitCustomRepository: di.inject(submitCustomHelmRepositoryInjectable),
maximalOptionsAreShown: di.inject(maximalCustomHelmRepoOptionsAreShownInjectable),
}),
},
);
export const AddingOfCustomHelmRepositoryDialogContent = withInjectables<Dependencies>(NonInjectedActivationOfCustomHelmRepositoryDialogContent, {
getProps: (di) => ({
helmRepo: di.inject(customHelmRepoInjectable),
hideDialog: di.inject(hideDialogForAddingCustomHelmRepositoryInjectable),
submitCustomRepository: di.inject(submitCustomHelmRepositoryInjectable),
maximalOptionsAreShown: di.inject(maximalCustomHelmRepoOptionsAreShownInjectable),
}),
});
const keyExtensions = ["key", "keystore", "jks", "p12", "pfx", "pem"];
const certExtensions = ["crt", "cer", "ca-bundle", "p7b", "p7c", "p7s", "p12", "pfx", "pem"];
@@ -4,11 +4,12 @@
*/
import { getInjectable, lifecycleEnum } from "@ogre-tools/injectable";
import { observable } from "mobx";
import type { HelmRepo } from "../../../../../../common/helm/helm-repo";
const customHelmRepoInjectable = getInjectable({
id: "custom-helm-repo",
instantiate: () => observable({
instantiate: () => observable.object<HelmRepo>({
name: "",
url: "",
username: "",
@@ -17,6 +18,7 @@ const customHelmRepoInjectable = getInjectable({
caFile: "",
keyFile: "",
certFile: "",
cacheFilePath: "",
}),
lifecycle: lifecycleEnum.transient,
@@ -4,20 +4,29 @@
*/
import { getInjectable } from "@ogre-tools/injectable";
import type { FileFilter } from "electron";
import { requestOpenFilePickingDialog } from "../../../../../../../renderer/ipc";
import type { PathPickOpts } from "../../../../../../../renderer/components/path-picker";
import openPathPickingDialogInjectable from "../../../../../../path-picking-dialog/renderer/pick-paths.injectable";
const getFilePathsInjectable = getInjectable({
id: "get-file-paths",
export interface RequestFilePathOptions extends Pick<PathPickOpts, "onCancel" | "onPick"> {
filter: FileFilter;
}
instantiate: () => async (fileFilter: FileFilter) =>
await requestOpenFilePickingDialog({
export type RequestFilePaths = (options: RequestFilePathOptions) => Promise<void>;
const requestFilePathsInjectable = getInjectable({
id: "request-file-paths",
instantiate: (di): RequestFilePaths => {
const openPathPickingDialog = di.inject(openPathPickingDialogInjectable);
return async ({ filter, ...opts }) => await openPathPickingDialog({
properties: ["openFile", "showHiddenFiles"],
message: `Select file`,
buttonLabel: `Use file`,
filters: [fileFilter, { name: "Any", extensions: ["*"] }],
}),
causesSideEffects: true,
message: "Select file",
buttonLabel: "Use file",
filters: [filter, { name: "Any", extensions: ["*"] }],
...opts,
});
},
});
export default getFilePathsInjectable;
export default requestFilePathsInjectable;
@@ -7,8 +7,8 @@ import { Input } from "../../../../../../../renderer/components/input";
import { Icon } from "../../../../../../../renderer/components/icon";
import { withInjectables } from "@ogre-tools/injectable-react";
import React from "react";
import getFilePathsInjectable from "./get-file-paths.injectable";
import type { FileFilter } from "electron";
import type { RequestFilePaths } from "./get-file-paths.injectable";
import requestFilePathsInjectable from "./get-file-paths.injectable";
import isPathInjectable from "../../../../../../../renderer/components/input/validators/is-path.injectable";
interface HelmFileInputProps {
@@ -20,7 +20,7 @@ interface HelmFileInputProps {
}
interface Dependencies {
getFilePaths: (fileFilter: FileFilter) => Promise<{ canceled: boolean; filePaths: string[] }>;
requestFilePaths: RequestFilePaths;
isPath: InputValidator<true>;
}
@@ -29,7 +29,7 @@ const NonInjectedHelmFileInput = ({
value,
setValue,
fileExtensions,
getFilePaths,
requestFilePaths,
isPath,
"data-testid": testId,
}: Dependencies & HelmFileInputProps) => (
@@ -44,31 +44,26 @@ const NonInjectedHelmFileInput = ({
/>
<Icon
material="folder"
onClick={async () => {
const { canceled, filePaths } = await getFilePaths({
onClick={() => void requestFilePaths({
filter: {
name: placeholder,
extensions: fileExtensions,
});
if (!canceled && filePaths.length) {
setValue(filePaths[0]);
}
}}
},
onPick: (filePaths) => {
if (filePaths.length) {
setValue(filePaths[0]);
}
},
})}
tooltip="Browse"
/>
</div>
);
export const HelmFileInput = withInjectables<Dependencies, HelmFileInputProps>(
NonInjectedHelmFileInput,
{
getProps: (di, props) => ({
getFilePaths: di.inject(getFilePathsInjectable),
isPath: di.inject(isPathInjectable),
...props,
}),
},
);
export const HelmFileInput = withInjectables<Dependencies, HelmFileInputProps>(NonInjectedHelmFileInput, {
getProps: (di, props) => ({
...props,
requestFilePaths: di.inject(requestFilePathsInjectable),
isPath: di.inject(isPathInjectable),
}),
});
@@ -1,29 +0,0 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { sortBy } from "lodash/fp";
import type { HelmRepo } from "../../../../../../../common/helm/helm-repo";
import { customRequestPromise } from "../../../../../../../common/request";
const callForPublicHelmRepositoriesInjectable = getInjectable({
id: "call-for-public-helm-repositories",
instantiate: () => async (): Promise<HelmRepo[]> => {
const res = await customRequestPromise({
uri: "https://github.com/lensapp/artifact-hub-repositories/releases/download/latest/repositories.json",
json: true,
resolveWithFullResponse: true,
timeout: 10000,
});
const repositories = res.body as HelmRepo[];
return sortBy(repo => repo.name, repositories);
},
causesSideEffects: true,
});
export default callForPublicHelmRepositoriesInjectable;
@@ -4,19 +4,15 @@
*/
import { getInjectable } from "@ogre-tools/injectable";
import { asyncComputed } from "@ogre-tools/injectable-react";
import callForPublicHelmRepositoriesInjectable from "./call-for-public-helm-repositories.injectable";
import requestPublicHelmRepositoriesInjectable from "./request-public-helm-repositories.injectable";
const publicHelmRepositoriesInjectable = getInjectable({
id: "public-helm-repositories",
instantiate: (di) => {
const callForPublicHelmRepositories = di.inject(callForPublicHelmRepositoriesInjectable);
return asyncComputed({
getValueFromObservedPromise: callForPublicHelmRepositories,
valueWhenPending: [],
});
},
instantiate: (di) => asyncComputed({
getValueFromObservedPromise: di.inject(requestPublicHelmRepositoriesInjectable),
valueWhenPending: [],
}),
});
export default publicHelmRepositoriesInjectable;
@@ -0,0 +1,40 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { sortBy } from "lodash/fp";
import downloadJsonInjectable from "../../../../../../../common/fetch/download-json.injectable";
import { withTimeout } from "../../../../../../../common/fetch/timeout-controller";
import type { HelmRepo } from "../../../../../../../common/helm/helm-repo";
import loggerInjectable from "../../../../../../../common/logger.injectable";
const publicHelmReposUrl = "https://github.com/lensapp/artifact-hub-repositories/releases/download/latest/repositories.json";
const requestPublicHelmRepositoriesInjectable = getInjectable({
id: "request-public-helm-repositories",
instantiate: (di) => {
const downloadJson = di.inject(downloadJsonInjectable);
const logger = di.inject(loggerInjectable);
return async (): Promise<HelmRepo[]> => {
const controller = withTimeout(10_000);
const result = await downloadJson(publicHelmReposUrl, {
signal: controller.signal,
});
if (!result.callWasSuccessful) {
logger.warn(`Failed to download public helm repos: ${result.error}`);
return [];
}
return sortBy(repo => repo.name, result.response as HelmRepo[]);
};
},
causesSideEffects: true,
});
export default requestPublicHelmRepositoriesInjectable;
@@ -14,8 +14,9 @@ import execFileInjectable, { type ExecFile } from "../../common/fs/exec-file.inj
import helmBinaryPathInjectable from "../../main/helm/helm-binary-path.injectable";
import loggerInjectable from "../../common/logger.injectable";
import type { Logger } from "../../common/logger";
import callForPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/call-for-public-helm-repositories.injectable";
import requestPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/request-public-helm-repositories.injectable";
import showErrorNotificationInjectable from "../../renderer/components/notifications/show-error-notification.injectable";
import { noop } from "../../common/utils";
describe("listing active helm repositories in preferences", () => {
let builder: ApplicationBuilder;
@@ -32,7 +33,13 @@ describe("listing active helm repositories in preferences", () => {
execFileMock = asyncFn();
showErrorNotificationMock = jest.fn();
loggerStub = { error: jest.fn() } as unknown as Logger;
loggerStub = {
error: jest.fn(),
debug: noop,
info: noop,
silly: noop,
warn: noop,
};
builder.beforeApplicationStart((mainDi) => {
mainDi.override(readYamlFileInjectable, () => readYamlFileMock);
@@ -43,7 +50,7 @@ describe("listing active helm repositories in preferences", () => {
builder.beforeWindowStart((windowDi) => {
windowDi.override(showErrorNotificationInjectable, () => showErrorNotificationMock);
windowDi.override(callForPublicHelmRepositoriesInjectable, () => async () => []);
windowDi.override(requestPublicHelmRepositoriesInjectable, () => async () => []);
});
rendered = await builder.render();
@@ -13,7 +13,7 @@ import execFileInjectable from "../../common/fs/exec-file.injectable";
import helmBinaryPathInjectable from "../../main/helm/helm-binary-path.injectable";
import getActiveHelmRepositoriesInjectable from "../../main/helm/repositories/get-active-helm-repositories/get-active-helm-repositories.injectable";
import type { HelmRepo } from "../../common/helm/helm-repo";
import callForPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/call-for-public-helm-repositories.injectable";
import requestPublicHelmRepositoriesInjectable from "./child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/request-public-helm-repositories.injectable";
import type { AsyncResult } from "../../common/utils/async-result";
describe("remove helm repository from list of active repositories in preferences", () => {
@@ -35,7 +35,7 @@ describe("remove helm repository from list of active repositories in preferences
});
builder.beforeWindowStart((windowDi) => {
windowDi.override(callForPublicHelmRepositoriesInjectable, () => async () => []);
windowDi.override(requestPublicHelmRepositoriesInjectable, () => async () => []);
});
rendered = await builder.render();
@@ -55,9 +55,11 @@ describe("remove helm repository from list of active repositories in preferences
beforeEach(async () => {
getActiveHelmRepositoriesMock.resolve({
callWasSuccessful: true,
response: [
{ name: "some-active-repository", url: "some-url" },
],
response: [{
name: "some-active-repository",
url: "some-url",
cacheFilePath: "/some-cache-file",
}],
});
});
@@ -0,0 +1,26 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import hotbarStoreInjectable from "../../../../common/hotbars/store.injectable";
import { onLoadOfApplicationInjectionToken } from "../../../../main/start-main-application/runnable-tokens/on-load-of-application-injection-token";
import setupSyncingOfGeneralCatalogEntitiesInjectable from "../../../../main/start-main-application/runnables/setup-syncing-of-general-catalog-entities.injectable";
const initHotbarStoreInjectable = getInjectable({
id: "init-hotbar-store",
instantiate: (di) => {
const hotbarStore = di.inject(hotbarStoreInjectable);
return {
id: "init-hotbar-store",
run: () => {
hotbarStore.load();
},
runAfter: di.inject(setupSyncingOfGeneralCatalogEntitiesInjectable),
};
},
injectionToken: onLoadOfApplicationInjectionToken,
});
export default initHotbarStoreInjectable;
@@ -0,0 +1,24 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import hotbarStoreInjectable from "../../../../common/hotbars/store.injectable";
import { beforeFrameStartsInjectionToken } from "../../../../renderer/before-frame-starts/tokens";
import initClusterStoreInjectable from "../../../cluster/store/renderer/init.injectable";
const initHotbarStoreInjectable = getInjectable({
id: "init-hotbar-store",
instantiate: (di) => ({
id: "init-hotbar-store",
run: () => {
const hotbarStore = di.inject(hotbarStoreInjectable);
hotbarStore.load();
},
runAfter: di.inject(initClusterStoreInjectable),
}),
injectionToken: beforeFrameStartsInjectionToken,
});
export default initHotbarStoreInjectable;
@@ -0,0 +1,18 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import type { OpenDialogOptions } from "electron";
import type { RequestChannel } from "../../../common/utils/channel/request-channel-listener-injection-token";
export type PathPickingResponse = {
canceled: true;
} | {
canceled: false;
paths: string[];
};
export const openPathPickingDialogChannel: RequestChannel<OpenDialogOptions, PathPickingResponse> = {
id: "open-path-picking-dialog",
};
@@ -0,0 +1,15 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import askUserForFilePathsInjectable from "../../../main/ipc/ask-user-for-file-paths.injectable";
import { getRequestChannelListenerInjectable } from "../../../main/utils/channel/channel-listeners/listener-tokens";
import { openPathPickingDialogChannel } from "../common/channel";
const openPathPickingDialogListener = getRequestChannelListenerInjectable({
channel: openPathPickingDialogChannel,
handler: (di) => di.inject(askUserForFilePathsInjectable),
});
export default openPathPickingDialogListener;
@@ -0,0 +1,30 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import type { PathPickOpts } from "../../../renderer/components/path-picker";
import requestFromChannelInjectable from "../../../renderer/utils/channel/request-from-channel.injectable";
import { openPathPickingDialogChannel } from "../common/channel";
export type OpenPathPickingDialog = (options: PathPickOpts) => Promise<void>;
const openPathPickingDialogInjectable = getInjectable({
id: "open-path-picking-dialog",
instantiate: (di): OpenPathPickingDialog => {
const requestFromChannel = di.inject(requestFromChannelInjectable);
return async (options) => {
const { onPick, onCancel, ...dialogOptions } = options;
const response = await requestFromChannel(openPathPickingDialogChannel, dialogOptions);
if (response.canceled) {
await onCancel?.();
} else {
await onPick?.(response.paths);
}
};
},
});
export default openPathPickingDialogInjectable;
@@ -304,13 +304,12 @@ exports[`preferences - closing-preferences given accessing preferences directly
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -318,7 +317,6 @@ exports[`preferences - closing-preferences given accessing preferences directly
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -383,7 +381,7 @@ exports[`preferences - closing-preferences given accessing preferences directly
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -540,13 +538,12 @@ exports[`preferences - closing-preferences given accessing preferences directly
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -554,7 +551,6 @@ exports[`preferences - closing-preferences given accessing preferences directly
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -647,7 +643,23 @@ exports[`preferences - closing-preferences given accessing preferences directly
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -714,7 +726,7 @@ exports[`preferences - closing-preferences given accessing preferences directly
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -979,7 +991,23 @@ exports[`preferences - closing-preferences given accessing preferences directly
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1046,7 +1074,7 @@ exports[`preferences - closing-preferences given accessing preferences directly
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1169,7 +1197,23 @@ exports[`preferences - closing-preferences given accessing preferences directly
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1236,7 +1280,7 @@ exports[`preferences - closing-preferences given accessing preferences directly
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1359,7 +1403,23 @@ exports[`preferences - closing-preferences given accessing preferences directly
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1426,7 +1486,7 @@ exports[`preferences - closing-preferences given accessing preferences directly
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1766,13 +1826,12 @@ exports[`preferences - closing-preferences given already in a page and then navi
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -1780,7 +1839,6 @@ exports[`preferences - closing-preferences given already in a page and then navi
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -1845,7 +1903,7 @@ exports[`preferences - closing-preferences given already in a page and then navi
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -2002,13 +2060,12 @@ exports[`preferences - closing-preferences given already in a page and then navi
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -2016,7 +2073,6 @@ exports[`preferences - closing-preferences given already in a page and then navi
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -2109,7 +2165,23 @@ exports[`preferences - closing-preferences given already in a page and then navi
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2176,7 +2248,7 @@ exports[`preferences - closing-preferences given already in a page and then navi
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -2441,7 +2513,23 @@ exports[`preferences - closing-preferences given already in a page and then navi
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2508,7 +2596,7 @@ exports[`preferences - closing-preferences given already in a page and then navi
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -2631,7 +2719,23 @@ exports[`preferences - closing-preferences given already in a page and then navi
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2698,7 +2802,7 @@ exports[`preferences - closing-preferences given already in a page and then navi
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -2821,7 +2925,23 @@ exports[`preferences - closing-preferences given already in a page and then navi
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2888,7 +3008,7 @@ exports[`preferences - closing-preferences given already in a page and then navi
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -317,13 +317,12 @@ exports[`preferences: extension adding preference tabs given in preferences, whe
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -331,7 +330,6 @@ exports[`preferences: extension adding preference tabs given in preferences, whe
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -396,7 +394,7 @@ exports[`preferences: extension adding preference tabs given in preferences, whe
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -553,13 +551,12 @@ exports[`preferences: extension adding preference tabs given in preferences, whe
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -567,7 +564,6 @@ exports[`preferences: extension adding preference tabs given in preferences, whe
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -660,7 +656,23 @@ exports[`preferences: extension adding preference tabs given in preferences, whe
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -727,7 +739,7 @@ exports[`preferences: extension adding preference tabs given in preferences, whe
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -292,13 +292,12 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -306,7 +305,6 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -371,7 +369,7 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -528,13 +526,12 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -542,7 +539,6 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -635,7 +631,23 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -702,7 +714,7 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1058,13 +1070,12 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -1072,7 +1083,6 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -1137,7 +1147,7 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -1294,13 +1304,12 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -1308,7 +1317,6 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -1401,7 +1409,23 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1468,7 +1492,7 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1836,13 +1860,12 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -1850,7 +1873,6 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -1915,7 +1937,7 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -2072,13 +2094,12 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -2086,7 +2107,6 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -2179,7 +2199,23 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2246,7 +2282,7 @@ exports[`preferences - hiding-of-empty-branches, given in preferences page given
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -292,13 +292,12 @@ exports[`preferences - navigation to application preferences given in preference
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -306,7 +305,6 @@ exports[`preferences - navigation to application preferences given in preference
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -371,7 +369,7 @@ exports[`preferences - navigation to application preferences given in preference
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -528,13 +526,12 @@ exports[`preferences - navigation to application preferences given in preference
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -542,7 +539,6 @@ exports[`preferences - navigation to application preferences given in preference
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -635,7 +631,23 @@ exports[`preferences - navigation to application preferences given in preference
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -702,7 +714,7 @@ exports[`preferences - navigation to application preferences given in preference
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1030,13 +1042,12 @@ exports[`preferences - navigation to application preferences given in preference
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -1044,7 +1055,6 @@ exports[`preferences - navigation to application preferences given in preference
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -1109,7 +1119,7 @@ exports[`preferences - navigation to application preferences given in preference
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -1266,13 +1276,12 @@ exports[`preferences - navigation to application preferences given in preference
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -1280,7 +1289,6 @@ exports[`preferences - navigation to application preferences given in preference
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -1404,7 +1412,23 @@ exports[`preferences - navigation to application preferences given in preference
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1471,7 +1495,7 @@ exports[`preferences - navigation to application preferences given in preference
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1794,7 +1818,23 @@ exports[`preferences - navigation to application preferences given in some child
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1861,7 +1901,7 @@ exports[`preferences - navigation to application preferences given in some child
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -2189,13 +2229,12 @@ exports[`preferences - navigation to application preferences given in some child
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -2203,7 +2242,6 @@ exports[`preferences - navigation to application preferences given in some child
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -2268,7 +2306,7 @@ exports[`preferences - navigation to application preferences given in some child
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -2425,13 +2463,12 @@ exports[`preferences - navigation to application preferences given in some child
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -2439,7 +2476,6 @@ exports[`preferences - navigation to application preferences given in some child
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -2532,7 +2568,23 @@ exports[`preferences - navigation to application preferences given in some child
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2599,7 +2651,7 @@ exports[`preferences - navigation to application preferences given in some child
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -2928,13 +2980,12 @@ exports[`preferences - navigation to application preferences given in some child
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -2942,7 +2993,6 @@ exports[`preferences - navigation to application preferences given in some child
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -3007,7 +3057,7 @@ exports[`preferences - navigation to application preferences given in some child
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -3164,13 +3214,12 @@ exports[`preferences - navigation to application preferences given in some child
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -3178,7 +3227,6 @@ exports[`preferences - navigation to application preferences given in some child
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -3271,7 +3319,23 @@ exports[`preferences - navigation to application preferences given in some child
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -3338,7 +3402,7 @@ exports[`preferences - navigation to application preferences given in some child
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -292,13 +292,12 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -306,7 +305,6 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -371,7 +369,7 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -528,13 +526,12 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -542,7 +539,6 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -635,7 +631,23 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -702,7 +714,7 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -932,6 +944,7 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
>
Show minimap
<input
checked=""
role="switch"
type="checkbox"
/>
@@ -962,13 +975,12 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-minimap-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
right
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -976,7 +988,6 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
>
<input
aria-autocomplete="list"
aria-describedby="react-select-minimap-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -1053,13 +1064,12 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-editor-line-numbers-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
On
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -1067,7 +1077,6 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
>
<input
aria-autocomplete="list"
aria-describedby="react-select-editor-line-numbers-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -1137,7 +1146,7 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
min="1"
spellcheck="false"
type="number"
value="42"
value="2"
/>
</label>
<div
@@ -1171,7 +1180,7 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
min="10"
spellcheck="false"
type="number"
value="42"
value="12"
/>
</label>
<div
@@ -1204,7 +1213,7 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
class="input box grow"
spellcheck="false"
type="text"
value=""
value="RobotoMono"
/>
</label>
<div
@@ -1261,7 +1270,23 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1328,7 +1353,7 @@ exports[`preferences - navigation to editor preferences given in preferences, wh
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -305,13 +305,12 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -319,7 +318,6 @@ exports[`preferences - navigation to extension specific preferences given in pre
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -384,7 +382,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -541,13 +539,12 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -555,7 +552,6 @@ exports[`preferences - navigation to extension specific preferences given in pre
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -648,7 +644,23 @@ exports[`preferences - navigation to extension specific preferences given in pre
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -715,7 +727,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1012,7 +1024,23 @@ exports[`preferences - navigation to extension specific preferences given in pre
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1079,7 +1107,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1387,7 +1415,23 @@ exports[`preferences - navigation to extension specific preferences given in pre
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1454,7 +1498,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1762,7 +1806,23 @@ exports[`preferences - navigation to extension specific preferences given in pre
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1829,7 +1889,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -2163,7 +2223,23 @@ exports[`preferences - navigation to extension specific preferences given in pre
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2230,7 +2306,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -2558,13 +2634,12 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -2572,7 +2647,6 @@ exports[`preferences - navigation to extension specific preferences given in pre
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -2637,7 +2711,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -2794,13 +2868,12 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -2808,7 +2881,6 @@ exports[`preferences - navigation to extension specific preferences given in pre
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -2901,7 +2973,23 @@ exports[`preferences - navigation to extension specific preferences given in pre
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2968,7 +3056,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -3334,13 +3422,12 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -3348,7 +3435,6 @@ exports[`preferences - navigation to extension specific preferences given in pre
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -3413,7 +3499,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -3570,13 +3656,12 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -3584,7 +3669,6 @@ exports[`preferences - navigation to extension specific preferences given in pre
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -3677,7 +3761,23 @@ exports[`preferences - navigation to extension specific preferences given in pre
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -3744,7 +3844,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -4066,7 +4166,23 @@ exports[`preferences - navigation to extension specific preferences given in pre
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -4133,7 +4249,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -4386,7 +4502,23 @@ exports[`preferences - navigation to extension specific preferences given in pre
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -4453,7 +4585,7 @@ exports[`preferences - navigation to extension specific preferences given in pre
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -292,13 +292,12 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -306,7 +305,6 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -371,7 +369,7 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -528,13 +526,12 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -542,7 +539,6 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -635,7 +631,23 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -702,7 +714,7 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -932,6 +944,7 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
>
Download kubectl binaries matching the Kubernetes cluster version
<input
checked=""
role="switch"
type="checkbox"
/>
@@ -952,7 +965,7 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
</div>
<div
class="Select theme-lens Select--is-disabled css-3iigni-container"
class="Select theme-lens css-b62m3t-container"
>
<span
class="css-1f43avz-a11yText-A11yText"
@@ -965,31 +978,28 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
class="css-1f43avz-a11yText-A11yText"
/>
<div
class="Select__control Select__control--is-disabled css-16xfy0z-control"
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-download-mirror-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Download mirror for kubectl
Default (Google)
</div>
<div
class="Select__input-container css-1h01tm3-Input"
class="Select__input-container css-qbdosj-Input"
data-value=""
>
<input
aria-autocomplete="list"
aria-describedby="react-select-download-mirror-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
autocomplete="off"
autocorrect="off"
class="Select__input"
disabled=""
id="download-mirror-input"
role="combobox"
spellcheck="false"
@@ -1004,7 +1014,7 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
class="Select__indicators css-1hb7zxy-IndicatorsContainer"
>
<span
class="Select__indicator-separator css-894a34-indicatorSeparator"
class="Select__indicator-separator css-1u9des2-indicatorSeparator"
/>
<div
aria-hidden="true"
@@ -1042,7 +1052,7 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
</div>
<div
class="Input theme round black disabled"
class="Input theme round black"
>
<label
class="input-area flex gaps align-center"
@@ -1050,7 +1060,6 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
>
<input
class="input box grow"
disabled=""
placeholder="/some-electron-app-path-for-user-data/binaries"
spellcheck="false"
value=""
@@ -1081,7 +1090,7 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
</div>
<div
class="Input theme round black"
class="Input theme round black disabled"
>
<label
class="input-area flex gaps align-center"
@@ -1089,6 +1098,7 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
>
<input
class="input box grow"
disabled=""
placeholder="/some-electron-app-path-for-user-data/binaries/kubectl"
spellcheck="false"
value=""
@@ -1133,13 +1143,11 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
</div>
<div
class="notice mt-3"
class="loading-spinner"
>
<div
class="flex-grow text-center"
>
No files and folders have been synced yet
</div>
class="Spinner singleColor"
/>
</div>
</section>
</div>
@@ -1300,7 +1308,23 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1367,7 +1391,7 @@ exports[`preferences - navigation to kubernetes preferences given in preferences
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -292,13 +292,12 @@ exports[`preferences - navigation to proxy preferences given in preferences, whe
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -306,7 +305,6 @@ exports[`preferences - navigation to proxy preferences given in preferences, whe
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -371,7 +369,7 @@ exports[`preferences - navigation to proxy preferences given in preferences, whe
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -528,13 +526,12 @@ exports[`preferences - navigation to proxy preferences given in preferences, whe
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -542,7 +539,6 @@ exports[`preferences - navigation to proxy preferences given in preferences, whe
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -635,7 +631,23 @@ exports[`preferences - navigation to proxy preferences given in preferences, whe
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -702,7 +714,7 @@ exports[`preferences - navigation to proxy preferences given in preferences, whe
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1025,7 +1037,23 @@ exports[`preferences - navigation to proxy preferences given in preferences, whe
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1092,7 +1120,7 @@ exports[`preferences - navigation to proxy preferences given in preferences, whe
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -199,9 +199,10 @@ exports[`preferences - navigation to telemetry preferences given URL for Sentry
</div>
<label
class="Checkbox flex align-center"
class="Checkbox flex align-center checked"
>
<input
checked=""
type="checkbox"
/>
<i
@@ -270,7 +271,23 @@ exports[`preferences - navigation to telemetry preferences given URL for Sentry
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -337,7 +354,7 @@ exports[`preferences - navigation to telemetry preferences given URL for Sentry
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -665,13 +682,12 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -679,7 +695,6 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -744,7 +759,7 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -901,13 +916,12 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -915,7 +929,6 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -1008,7 +1021,23 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1075,7 +1104,7 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1415,13 +1444,12 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -1429,7 +1457,6 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -1494,7 +1521,7 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -1651,13 +1678,12 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -1665,7 +1691,6 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -1758,7 +1783,23 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1825,7 +1866,7 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -2121,7 +2162,23 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2188,7 +2245,7 @@ exports[`preferences - navigation to telemetry preferences given in preferences,
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -2444,7 +2501,23 @@ exports[`preferences - navigation to telemetry preferences given no URL for Sent
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -2511,7 +2584,7 @@ exports[`preferences - navigation to telemetry preferences given no URL for Sent
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -292,13 +292,12 @@ exports[`preferences - navigation to terminal preferences given in preferences,
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -306,7 +305,6 @@ exports[`preferences - navigation to terminal preferences given in preferences,
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -371,7 +369,7 @@ exports[`preferences - navigation to terminal preferences given in preferences,
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -528,13 +526,12 @@ exports[`preferences - navigation to terminal preferences given in preferences,
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -542,7 +539,6 @@ exports[`preferences - navigation to terminal preferences given in preferences,
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -635,7 +631,23 @@ exports[`preferences - navigation to terminal preferences given in preferences,
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -702,7 +714,7 @@ exports[`preferences - navigation to terminal preferences given in preferences,
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1001,13 +1013,12 @@ exports[`preferences - navigation to terminal preferences given in preferences,
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-terminal-theme-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Match Lens Theme
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -1015,7 +1026,6 @@ exports[`preferences - navigation to terminal preferences given in preferences,
>
<input
aria-autocomplete="list"
aria-describedby="react-select-terminal-theme-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -1086,7 +1096,7 @@ exports[`preferences - navigation to terminal preferences given in preferences,
min="10"
spellcheck="false"
type="number"
value="42"
value="12"
/>
</label>
<div
@@ -1125,13 +1135,16 @@ exports[`preferences - navigation to terminal preferences given in preferences,
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-2-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
<span
style="font-family: RobotoMono; font-size: 12px;"
>
RobotoMono
</span>
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -1139,7 +1152,6 @@ exports[`preferences - navigation to terminal preferences given in preferences,
>
<input
aria-autocomplete="list"
aria-describedby="react-select-2-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -1232,7 +1244,23 @@ exports[`preferences - navigation to terminal preferences given in preferences,
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1299,7 +1327,7 @@ exports[`preferences - navigation to terminal preferences given in preferences,
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -164,7 +164,23 @@ exports[`preferences - navigation using application menu renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -231,7 +247,7 @@ exports[`preferences - navigation using application menu renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -559,13 +575,12 @@ exports[`preferences - navigation using application menu when navigating to pref
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -573,7 +588,6 @@ exports[`preferences - navigation using application menu when navigating to pref
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -638,7 +652,7 @@ exports[`preferences - navigation using application menu when navigating to pref
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -795,13 +809,12 @@ exports[`preferences - navigation using application menu when navigating to pref
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -809,7 +822,6 @@ exports[`preferences - navigation using application menu when navigating to pref
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -902,7 +914,23 @@ exports[`preferences - navigation using application menu when navigating to pref
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -969,7 +997,7 @@ exports[`preferences - navigation using application menu when navigating to pref
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -165,7 +165,23 @@ exports[`show-about-using-tray renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -232,7 +248,7 @@ exports[`show-about-using-tray renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -562,13 +578,12 @@ exports[`show-about-using-tray when navigating using tray renders 1`] = `
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -576,7 +591,6 @@ exports[`show-about-using-tray when navigating using tray renders 1`] = `
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -641,7 +655,7 @@ exports[`show-about-using-tray when navigating using tray renders 1`] = `
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -798,13 +812,12 @@ exports[`show-about-using-tray when navigating using tray renders 1`] = `
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -812,7 +825,6 @@ exports[`show-about-using-tray when navigating using tray renders 1`] = `
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -905,7 +917,23 @@ exports[`show-about-using-tray when navigating using tray renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -972,7 +1000,7 @@ exports[`show-about-using-tray when navigating using tray renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -309,7 +309,23 @@ exports[`preferences: URLs of legacy extensions given extension with both custom
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -376,7 +392,7 @@ exports[`preferences: URLs of legacy extensions given extension with both custom
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -722,7 +738,23 @@ exports[`preferences: URLs of legacy extensions given extension with both custom
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -789,7 +821,7 @@ exports[`preferences: URLs of legacy extensions given extension with both custom
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1097,7 +1129,23 @@ exports[`preferences: URLs of legacy extensions given extension with custom pref
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1164,7 +1212,7 @@ exports[`preferences: URLs of legacy extensions given extension with custom pref
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1446,7 +1494,23 @@ exports[`preferences: URLs of legacy extensions given extension with custom pref
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1513,7 +1577,7 @@ exports[`preferences: URLs of legacy extensions given extension with custom pref
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1835,7 +1899,23 @@ exports[`preferences: URLs of legacy extensions given extension with custom pref
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1902,7 +1982,7 @@ exports[`preferences: URLs of legacy extensions given extension with custom pref
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -5,7 +5,7 @@
import type { RenderResult } from "@testing-library/react";
import type { ApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
import { getApplicationBuilder } from "../../renderer/components/test-utils/get-application-builder";
import callForPublicHelmRepositoriesInjectable from "../helm-charts/child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/call-for-public-helm-repositories.injectable";
import requestPublicHelmRepositoriesInjectable from "../helm-charts/child-features/preferences/renderer/adding-of-public-helm-repository/public-helm-repositories/request-public-helm-repositories.injectable";
import getActiveHelmRepositoriesInjectable from "../../main/helm/repositories/get-active-helm-repositories/get-active-helm-repositories.injectable";
import type { Discover } from "../../renderer/components/test-utils/discovery-of-html-elements";
import { discoverFor } from "../../renderer/components/test-utils/discovery-of-html-elements";
@@ -30,7 +30,7 @@ describe("preferences - navigation to kubernetes preferences", () => {
});
builder.beforeWindowStart((windowDi) => {
windowDi.override(callForPublicHelmRepositoriesInjectable, () => async () => []);
windowDi.override(requestPublicHelmRepositoriesInjectable, () => async () => []);
});
builder.beforeWindowStart(() => {
@@ -8,25 +8,30 @@ import { Select } from "../../../../../../renderer/components/select";
import { withInjectables } from "@ogre-tools/injectable-react";
import { observer } from "mobx-react";
import type { UserStore } from "../../../../../../common/user-store";
import type { ThemeStore } from "../../../../../../renderer/themes/store";
import { defaultThemeId } from "../../../../../../common/vars";
import type { LensTheme } from "../../../../../../renderer/themes/lens-theme";
import userStoreInjectable from "../../../../../../common/user-store/user-store.injectable";
import themeStoreInjectable from "../../../../../../renderer/themes/store.injectable";
import defaultLensThemeInjectable from "../../../../../../renderer/themes/default-theme.injectable";
import { lensThemeDeclarationInjectionToken } from "../../../../../../renderer/themes/declaration";
interface Dependencies {
userStore: UserStore;
themeStore: ThemeStore;
defaultTheme: LensTheme;
themes: LensTheme[];
}
const NonInjectedTheme = observer(({ userStore, themeStore }: Dependencies) => {
const NonInjectedTheme = observer(({
userStore,
themes,
defaultTheme,
}: Dependencies) => {
const themeOptions = [
{
value: "system", // TODO: replace with a sentinal value that isn't string (and serialize it differently)
label: "Sync with computer",
},
...Array.from(themeStore.themes, ([themeId, { name }]) => ({
value: themeId,
label: name,
...themes.map(theme => ({
value: theme.name,
label: theme.name,
})),
];
@@ -38,7 +43,7 @@ const NonInjectedTheme = observer(({ userStore, themeStore }: Dependencies) => {
options={themeOptions}
value={userStore.colorTheme}
onChange={(value) =>
(userStore.colorTheme = value?.value ?? defaultThemeId)
(userStore.colorTheme = value?.value ?? defaultTheme.name)
}
themeName="lens"
/>
@@ -46,13 +51,10 @@ const NonInjectedTheme = observer(({ userStore, themeStore }: Dependencies) => {
);
});
export const Theme = withInjectables<Dependencies>(
NonInjectedTheme,
{
getProps: (di) => ({
userStore: di.inject(userStoreInjectable),
themeStore: di.inject(themeStoreInjectable),
}),
},
);
export const Theme = withInjectables<Dependencies>(NonInjectedTheme, {
getProps: (di) => ({
userStore: di.inject(userStoreInjectable),
defaultTheme: di.inject(defaultLensThemeInjectable),
themes: di.injectMany(lensThemeDeclarationInjectionToken),
}),
});
@@ -8,12 +8,13 @@ import { withInjectables } from "@ogre-tools/injectable-react";
import type { UserStore } from "../../../../../../common/user-store";
import userStoreInjectable from "../../../../../../common/user-store/user-store.injectable";
import { Select } from "../../../../../../renderer/components/select";
import { defaultLocaleTimezone } from "../../../../../../common/user-store/preferences-helpers";
import moment from "moment-timezone";
import { observer } from "mobx-react";
import currentTimezoneInjectable from "../../../../../../common/user-store/current-timezone.injectable";
interface Dependencies {
userStore: UserStore;
currentTimezone: string;
}
const timezoneOptions = moment.tz.names()
@@ -23,26 +24,26 @@ const timezoneOptions = moment.tz.names()
}));
const NonInjectedTimezone = observer(({ userStore }: Dependencies) => (
const NonInjectedTimezone = observer(({
userStore,
currentTimezone,
}: Dependencies) => (
<section id="locale">
<SubTitle title="Locale Timezone" />
<Select
id="timezone-input"
options={timezoneOptions}
value={userStore.localeTimezone}
onChange={value => userStore.localeTimezone = value?.value ?? defaultLocaleTimezone}
onChange={value => userStore.localeTimezone = value?.value ?? currentTimezone}
themeName="lens"
/>
</section>
));
export const Timezone = withInjectables<Dependencies>(
NonInjectedTimezone,
{
getProps: (di) => ({
userStore: di.inject(userStoreInjectable),
}),
},
);
export const Timezone = withInjectables<Dependencies>(NonInjectedTimezone, {
getProps: (di) => ({
userStore: di.inject(userStoreInjectable),
currentTimezone: di.inject(currentTimezoneInjectable),
}),
});
@@ -0,0 +1,20 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import type { SyncKind } from "./discover-sync-kind.injectable";
import discoverKubeconfigSyncKindInjectable from "./discover-sync-kind.injectable";
export type DiscoverAllKubeconfigSyncKinds = (filePaths: string[]) => Promise<[string, SyncKind][]>;
const discoverAllKubeconfigSyncKindsInjectable = getInjectable({
id: "discover-all-kubeconfig-sync-kinds",
instantiate: (di): DiscoverAllKubeconfigSyncKinds => {
const discoverKubeconfigSyncKind = di.inject(discoverKubeconfigSyncKindInjectable);
return filePaths => Promise.all(filePaths.map(discoverKubeconfigSyncKind));
},
});
export default discoverAllKubeconfigSyncKindsInjectable;
@@ -0,0 +1,46 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import statInjectable from "../../../../../../common/fs/stat.injectable";
import loggerInjectable from "../../../../../../common/logger.injectable";
export interface SyncKind {
type: "file" | "folder" | "unknown";
}
export type DiscoverKubeconfigSyncKind = (path: string) => Promise<[string, SyncKind]>;
const discoverKubeconfigSyncKindInjectable = getInjectable({
id: "discover-kubeconfig-sync-kind",
instantiate: (di): DiscoverKubeconfigSyncKind => {
const stat = di.inject(statInjectable);
const logger = di.inject(loggerInjectable);
return async (path) => {
try {
// stat follows the stat(2) linux syscall spec, namely it follows symlinks
const stats = await stat(path);
if (stats.isFile()) {
return [path, { type: "file" }];
}
if (stats.isDirectory()) {
return [path, { type: "folder" }];
}
logger.warn("[KUBECONFIG-SYNCS]: unknown stat entry", { stats });
return [path, { type: "unknown" }];
} catch (error) {
logger.warn(`[KUBECONFIG-SYNCS]: failed to stat entry: ${error}`, { error });
return [path, { type: "unknown" }];
}
};
},
});
export default discoverKubeconfigSyncKindInjectable;
@@ -3,12 +3,11 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { withInjectables } from "@ogre-tools/injectable-react";
import fse from "fs-extra";
import { computed, makeObservable, observable, reaction } from "mobx";
import { action, computed, makeObservable, observable, reaction } from "mobx";
import { disposeOnUnmount, observer } from "mobx-react";
import React from "react";
import { Notice } from "../../../../../../renderer/components/+extensions/notice";
import type { KubeconfigSyncEntry, KubeconfigSyncValue, UserStore } from "../../../../../../common/user-store";
import type { UserStore } from "../../../../../../common/user-store";
import { iter, tuple } from "../../../../../../renderer/utils";
import { SubTitle } from "../../../../../../renderer/components/layout/sub-title";
import { PathPicker } from "../../../../../../renderer/components/path-picker/path-picker";
@@ -18,56 +17,26 @@ import userStoreInjectable from "../../../../../../common/user-store/user-store.
import isWindowsInjectable from "../../../../../../common/vars/is-windows.injectable";
import loggerInjectable from "../../../../../../common/logger.injectable";
import type { Logger } from "../../../../../../common/logger";
import type { DiscoverAllKubeconfigSyncKinds } from "./discover-all-sync-kinds.injectable";
import type { DiscoverKubeconfigSyncKind, SyncKind } from "./discover-sync-kind.injectable";
import discoverKubeconfigSyncKindInjectable from "./discover-sync-kind.injectable";
import discoverAllKubeconfigSyncKindsInjectable from "./discover-all-sync-kinds.injectable";
interface SyncInfo {
type: "file" | "folder" | "unknown";
}
interface Entry extends Value {
interface Entry extends SyncKind {
filePath: string;
}
interface Value {
data: KubeconfigSyncValue;
info: SyncInfo;
}
async function getMapEntry({ filePath, ...data }: KubeconfigSyncEntry, logger: Logger): Promise<[string, Value]> {
try {
// stat follows the stat(2) linux syscall spec, namely it follows symlinks
const stats = await fse.stat(filePath);
if (stats.isFile()) {
return [filePath, { info: { type: "file" }, data }];
}
if (stats.isDirectory()) {
return [filePath, { info: { type: "folder" }, data }];
}
logger.warn("[KubeconfigSyncs]: unknown stat entry", { stats });
return [filePath, { info: { type: "unknown" }, data }];
} catch (error) {
logger.warn(`[KubeconfigSyncs]: failed to stat entry: ${error}`, { error });
return [filePath, { info: { type: "unknown" }, data }];
}
}
export async function getAllEntries(filePaths: string[], logger: Logger): Promise<[string, Value][]> {
return Promise.all(filePaths.map(filePath => getMapEntry({ filePath }, logger)));
}
interface Dependencies {
userStore: UserStore;
isWindows: boolean;
logger: Logger;
discoverAllKubeconfigSyncKinds: DiscoverAllKubeconfigSyncKinds;
discoverKubeconfigSyncKind: DiscoverKubeconfigSyncKind;
}
@observer
class NonInjectedKubeconfigSync extends React.Component<Dependencies> {
syncs = observable.map<string, Value>();
readonly syncs = observable.map<string, SyncKind>();
@observable loaded = false;
constructor(props: Dependencies) {
@@ -79,7 +48,7 @@ class NonInjectedKubeconfigSync extends React.Component<Dependencies> {
const mapEntries = await Promise.all(
iter.map(
this.props.userStore.syncKubeconfigEntries,
([filePath, ...value]) => getMapEntry({ filePath, ...value }, this.props.logger),
([filePath]) => this.props.discoverKubeconfigSyncKind(filePath),
),
);
@@ -88,9 +57,13 @@ class NonInjectedKubeconfigSync extends React.Component<Dependencies> {
disposeOnUnmount(this, [
reaction(
() => Array.from(this.syncs.entries(), ([filePath, { data }]) => tuple.from(filePath, data)),
() => Array.from(this.syncs.entries(), ([filePath, kind]) => tuple.from(filePath, kind)),
syncs => {
this.props.userStore.syncKubeconfigEntries.replace(syncs);
action(() => {
for (const [path] of syncs) {
this.props.userStore.syncKubeconfigEntries.set(path, {});
}
});
},
),
]);
@@ -105,11 +78,11 @@ class NonInjectedKubeconfigSync extends React.Component<Dependencies> {
}
onPick = async (filePaths: string[]) => {
this.syncs.merge(await getAllEntries(filePaths, this.props.logger));
this.syncs.merge(await this.props.discoverAllKubeconfigSyncKinds(filePaths));
};
getIconName(entry: Entry) {
switch (entry.info.type) {
switch (entry.type) {
case "file":
return "description";
case "folder":
@@ -165,14 +138,14 @@ class NonInjectedKubeconfigSync extends React.Component<Dependencies> {
return (
<div className="flex gaps align-center mb-5">
<PathPicker
label="Sync file(s)"
message="Sync file(s)"
onPick={this.onPick}
buttonLabel="Sync"
properties={["showHiddenFiles", "multiSelections", "openFile"]}
/>
<span>or</span>
<PathPicker
label="Sync folder(s)"
message="Sync folder(s)"
onPick={this.onPick}
buttonLabel="Sync"
properties={["showHiddenFiles", "multiSelections", "openDirectory"]}
@@ -184,7 +157,7 @@ class NonInjectedKubeconfigSync extends React.Component<Dependencies> {
return (
<div className="self-start mb-5">
<PathPicker
label="Sync Files and Folders"
message="Sync Files and Folders"
onPick={this.onPick}
buttonLabel="Sync"
properties={["showHiddenFiles", "multiSelections", "openFile", "openDirectory"]}
@@ -206,14 +179,12 @@ class NonInjectedKubeconfigSync extends React.Component<Dependencies> {
}
}
export const KubeconfigSync = withInjectables<Dependencies>(
NonInjectedKubeconfigSync,
{
getProps: (di) => ({
userStore: di.inject(userStoreInjectable),
isWindows: di.inject(isWindowsInjectable),
logger: di.inject(loggerInjectable),
}),
},
);
export const KubeconfigSync = withInjectables<Dependencies>(NonInjectedKubeconfigSync, {
getProps: (di) => ({
userStore: di.inject(userStoreInjectable),
isWindows: di.inject(isWindowsInjectable),
logger: di.inject(loggerInjectable),
discoverAllKubeconfigSyncKinds: di.inject(discoverAllKubeconfigSyncKindsInjectable),
discoverKubeconfigSyncKind: di.inject(discoverKubeconfigSyncKindInjectable),
}),
});
@@ -9,50 +9,48 @@ import type { UserStore } from "../../../../../../common/user-store";
import userStoreInjectable from "../../../../../../common/user-store/user-store.injectable";
import { observer } from "mobx-react";
import { Select } from "../../../../../../renderer/components/select";
import themeStoreInjectable from "../../../../../../renderer/themes/store.injectable";
import type { ThemeStore } from "../../../../../../renderer/themes/store";
import type { LensTheme } from "../../../../../../renderer/themes/lens-theme";
import { lensThemeDeclarationInjectionToken } from "../../../../../../renderer/themes/declaration";
interface Dependencies {
userStore: UserStore;
themeStore: ThemeStore;
themes: LensTheme[];
}
const NonInjectedTerminalTheme = observer(
({ userStore, themeStore }: Dependencies) => {
const NonInjectedTerminalTheme = observer(({
userStore,
themes,
}: Dependencies) => {
const themeOptions = [
{
value: "", // TODO: replace with a sentinal value that isn't string (and serialize it differently)
label: "Match Lens Theme",
},
...Array.from(themeStore.themes, ([themeId, { name }]) => ({
value: themeId,
label: name,
})),
];
const themeOptions = [
{
value: "", // TODO: replace with a sentinal value that isn't string (and serialize it differently)
label: "Match Lens Theme",
},
...themes.map(theme => ({
value: theme.name,
label: theme.name,
})),
];
return (
<section id="terminalTheme">
<SubTitle title="Terminal theme" />
<Select
id="terminal-theme-input"
themeName="lens"
options={themeOptions}
value={userStore.terminalTheme}
onChange={option => userStore.terminalTheme = option?.value ?? ""}
/>
</section>
);
},
return (
<section id="terminalTheme">
<SubTitle title="Terminal theme" />
<Select
id="terminal-theme-input"
themeName="lens"
options={themeOptions}
value={userStore.terminalTheme}
onChange={option => userStore.terminalTheme = option?.value ?? ""}
/>
</section>
);
},
);
export const TerminalTheme = withInjectables<Dependencies>(
NonInjectedTerminalTheme,
{
getProps: (di) => ({
userStore: di.inject(userStoreInjectable),
themeStore: di.inject(themeStoreInjectable),
}),
},
);
export const TerminalTheme = withInjectables<Dependencies>(NonInjectedTerminalTheme, {
getProps: (di) => ({
userStore: di.inject(userStoreInjectable),
themes: di.injectMany(lensThemeDeclarationInjectionToken),
}),
});
@@ -165,7 +165,23 @@ exports[`status-bar-items-originating-from-extensions when application starts wh
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -232,7 +248,7 @@ exports[`status-bar-items-originating-from-extensions when application starts wh
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -0,0 +1,17 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import type { MessageChannel } from "../../../../common/utils/channel/message-channel-listener-injection-token";
import type { RequestChannel } from "../../../../common/utils/channel/request-channel-listener-injection-token";
export type SystemThemeType = "dark" | "light";
export const initialSystemThemeTypeChannel: RequestChannel<void, SystemThemeType> = {
id: "initial-system-theme-type",
};
export const systemThemeTypeUpdateChannel: MessageChannel<SystemThemeType> = {
id: "system-theme-type-update",
};
@@ -0,0 +1,21 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import type { MessageChannelHandler } from "../../../../common/utils/channel/message-channel-listener-injection-token";
import { sendMessageToChannelInjectionToken } from "../../../../common/utils/channel/message-to-channel-injection-token";
import { systemThemeTypeUpdateChannel } from "../common/channels";
export type EmitSystemThemeTypeUpdate = MessageChannelHandler<typeof systemThemeTypeUpdateChannel>;
const emitSystemThemeTypeUpdateInjectable = getInjectable({
id: "emit-system-theme-type-update",
instantiate: (di): EmitSystemThemeTypeUpdate => {
const sendMessageToChannel = di.inject(sendMessageToChannelInjectionToken);
return (type) => sendMessageToChannel(systemThemeTypeUpdateChannel, type);
},
});
export default emitSystemThemeTypeUpdateInjectable;
@@ -0,0 +1,19 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import operatingSystemThemeInjectable from "../../../../main/theme/operating-system-theme.injectable";
import { getRequestChannelListenerInjectable } from "../../../../main/utils/channel/channel-listeners/listener-tokens";
import { initialSystemThemeTypeChannel } from "../common/channels";
const initialSystemThemeTypeHandler = getRequestChannelListenerInjectable({
channel: initialSystemThemeTypeChannel,
handler: (di) => {
const operatingSystemTheme = di.inject(operatingSystemThemeInjectable);
return () => operatingSystemTheme.get();
},
});
export default initialSystemThemeTypeHandler;
@@ -0,0 +1,33 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { reaction } from "mobx";
import { onLoadOfApplicationInjectionToken } from "../../../../main/start-main-application/runnable-tokens/on-load-of-application-injection-token";
import operatingSystemThemeInjectable from "../../../../main/theme/operating-system-theme.injectable";
import emitSystemThemeTypeUpdateInjectable from "./emit-update.injectable";
const setupSystemThemeTypeUpdaterEmitterInjectable = getInjectable({
id: "setup-system-theme-type-updater-emitter",
instantiate: (di) => {
const operatingSystemTheme = di.inject(operatingSystemThemeInjectable);
const emitSystemThemeTypeUpdate = di.inject(emitSystemThemeTypeUpdateInjectable);
return {
id: "setup-system-theme-type-updater-emitter",
run: () => {
reaction(
() => operatingSystemTheme.get(),
emitSystemThemeTypeUpdate,
{
fireImmediately: true,
},
);
},
};
},
injectionToken: onLoadOfApplicationInjectionToken,
});
export default setupSystemThemeTypeUpdaterEmitterInjectable;
@@ -0,0 +1,26 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import { beforeFrameStartsInjectionToken } from "../../../../renderer/before-frame-starts/tokens";
import initUserStoreInjectable from "../../../../renderer/stores/init-user-store.injectable";
import systemThemeConfigurationInjectable from "../../../../renderer/themes/system-theme.injectable";
import requestInitialSystemThemeTypeInjectable from "./request-initial.injectable";
const initializeSystemThemeTypeInjectable = getInjectable({
id: "initialize-system-theme-type",
instantiate: (di) => ({
id: "initialize-system-theme-type",
run: async () => {
const systemThemeConfiguration = di.inject(systemThemeConfigurationInjectable);
const requestInitialSystemThemeType = di.inject(requestInitialSystemThemeTypeInjectable);
systemThemeConfiguration.set(await requestInitialSystemThemeType());
},
runAfter: di.inject(initUserStoreInjectable),
}),
injectionToken: beforeFrameStartsInjectionToken,
});
export default initializeSystemThemeTypeInjectable;
@@ -0,0 +1,21 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getInjectable } from "@ogre-tools/injectable";
import type { RequestChannelHandler } from "../../../../main/utils/channel/channel-listeners/listener-tokens";
import requestFromChannelInjectable from "../../../../renderer/utils/channel/request-from-channel.injectable";
import { initialSystemThemeTypeChannel } from "../common/channels";
export type RequestInitialSystemThemeType = RequestChannelHandler<typeof initialSystemThemeTypeChannel>;
const requestInitialSystemThemeTypeInjectable = getInjectable({
id: "request-initial-system-theme-type",
instantiate: (di): RequestInitialSystemThemeType => {
const requestFromChannel = di.inject(requestFromChannelInjectable);
return () => requestFromChannel(initialSystemThemeTypeChannel);
},
});
export default requestInitialSystemThemeTypeInjectable;
@@ -0,0 +1,19 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { getMessageChannelListenerInjectable } from "../../../../common/utils/channel/message-channel-listener-injection-token";
import systemThemeConfigurationInjectable from "../../../../renderer/themes/system-theme.injectable";
import { systemThemeTypeUpdateChannel } from "../common/channels";
const systemThemeTypeUpdateListenerInjectable = getMessageChannelListenerInjectable({
channel: systemThemeTypeUpdateChannel,
id: "main",
handler: (di) => {
const systemThemeConfiguration = di.inject(systemThemeConfigurationInjectable);
return (type) => systemThemeConfiguration.set(type);
},
});
export default systemThemeTypeUpdateListenerInjectable;
@@ -165,7 +165,23 @@ exports[`extendability-using-extension-api given an extension with a weakly type
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -232,7 +248,7 @@ exports[`extendability-using-extension-api given an extension with a weakly type
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -443,7 +459,23 @@ exports[`extendability-using-extension-api given an extension with top-bar items
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -510,7 +542,7 @@ exports[`extendability-using-extension-api given an extension with top-bar items
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -712,7 +744,23 @@ exports[`extendability-using-extension-api given an extension with top-bar items
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -779,7 +827,7 @@ exports[`extendability-using-extension-api given an extension with top-bar items
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -981,7 +1029,23 @@ exports[`extendability-using-extension-api renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1048,7 +1112,7 @@ exports[`extendability-using-extension-api renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -164,7 +164,23 @@ exports[`welcome - navigation using application menu renders 1`] = `
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -231,7 +247,7 @@ exports[`welcome - navigation using application menu renders 1`] = `
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -560,13 +576,12 @@ exports[`welcome - navigation using application menu when navigated somewhere el
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-extension-install-registry-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Default Url
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -574,7 +589,6 @@ exports[`welcome - navigation using application menu when navigated somewhere el
>
<input
aria-autocomplete="list"
aria-describedby="react-select-extension-install-registry-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -639,7 +653,7 @@ exports[`welcome - navigation using application menu when navigated somewhere el
disabled=""
placeholder="Custom Extension Registry URL..."
spellcheck="false"
value="some-custom-url"
value=""
/>
</label>
<div
@@ -796,13 +810,12 @@ exports[`welcome - navigation using application menu when navigated somewhere el
class="Select__control css-13cymwt-control"
>
<div
class="Select__value-container css-1fdsijx-ValueContainer"
class="Select__value-container Select__value-container--has-value css-1fdsijx-ValueContainer"
>
<div
class="Select__placeholder css-1jqq78o-placeholder"
id="react-select-timezone-input-placeholder"
class="Select__single-value css-1dimb5e-singleValue"
>
Select...
Etc/GMT
</div>
<div
class="Select__input-container css-qbdosj-Input"
@@ -810,7 +823,6 @@ exports[`welcome - navigation using application menu when navigated somewhere el
>
<input
aria-autocomplete="list"
aria-describedby="react-select-timezone-input-placeholder"
aria-expanded="false"
aria-haspopup="true"
autocapitalize="none"
@@ -903,7 +915,23 @@ exports[`welcome - navigation using application menu when navigated somewhere el
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -970,7 +998,7 @@ exports[`welcome - navigation using application menu when navigated somewhere el
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i
@@ -1171,7 +1199,23 @@ exports[`welcome - navigation using application menu when navigated somewhere el
<div
class="HotbarCell isDraggingOwner animateDown"
index="0"
/>
>
<div
style="z-index: 12; position: absolute;"
>
<div
class="HotbarIcon contextMenuAvailable"
>
<div
class="Avatar rounded disabled avatar"
id="hotbarIcon-hotbar-icon-catalog-entity"
style="width: 40px; height: 40px; background: rgb(5, 1, 130);"
>
Ca
</div>
</div>
</div>
</div>
<div
class="HotbarCell isDraggingOwner animateDown"
index="1"
@@ -1238,7 +1282,7 @@ exports[`welcome - navigation using application menu when navigated somewhere el
class="badge Badge small clickable"
id="hotbarIndex"
>
0
1
</div>
</div>
<i