From 365d133fda629ffbfbad75c99682e7e41926319e Mon Sep 17 00:00:00 2001 From: Max Behzadi <69126271+MaxTheGeeek@users.noreply.github.com> Date: Tue, 17 Sep 2024 16:01:49 +0200 Subject: [PATCH 1/5] REFACTOR: add external service modal on edit page --- .../stereumplus-icons/stereumplus-icon.png | Bin 0 -> 2568 bytes launcher/public/output.css | 202 ++++++++++++---- .../edit-page/components/modals/AddPanel.vue | 218 +++++++++++------- 3 files changed, 293 insertions(+), 127 deletions(-) create mode 100644 launcher/public/img/icon/stereumplus-icons/stereumplus-icon.png diff --git a/launcher/public/img/icon/stereumplus-icons/stereumplus-icon.png b/launcher/public/img/icon/stereumplus-icons/stereumplus-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cd4c667dc01b29e921e7bc077746e5554094b2df GIT binary patch literal 2568 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 e)>V0DzMlYVa?7f@?{&5S0000 :not([hidden]) ~ :not([hidden]){ --tw-space-x-reverse: 0; margin-right: calc(0.25rem * var(--tw-space-x-reverse)); @@ -2959,6 +2980,11 @@ video { border-color: rgb(55 65 81 / var(--tw-divide-opacity)); } +.divide-gray-100 > :not([hidden]) ~ :not([hidden]){ + --tw-divide-opacity: 1; + border-color: rgb(243 244 246 / var(--tw-divide-opacity)); +} + .self-start{ -ms-flex-item-align: start; align-self: flex-start; @@ -2994,6 +3020,10 @@ video { overflow: hidden; } +.overflow-x-auto{ + overflow-x: auto; +} + .overflow-y-auto{ overflow-y: auto; } @@ -3006,6 +3036,10 @@ video { overflow-y: hidden; } +.overflow-x-clip{ + overflow-x: clip; +} + .overflow-x-scroll{ overflow-x: scroll; } @@ -3441,11 +3475,21 @@ video { border-bottom-color: transparent; } +.border-b-white{ + --tw-border-opacity: 1; + border-bottom-color: rgb(255 255 255 / var(--tw-border-opacity)); +} + .border-l-gray-200{ --tw-border-opacity: 1; border-left-color: rgb(229 231 235 / var(--tw-border-opacity)); } +.border-l-red-500{ + --tw-border-opacity: 1; + border-left-color: rgb(239 68 68 / var(--tw-border-opacity)); +} + .border-r-\[\#264744\]{ --tw-border-opacity: 1; border-right-color: rgb(38 71 68 / var(--tw-border-opacity)); @@ -3495,6 +3539,11 @@ video { background-color: rgb(13 13 14 / var(--tw-bg-opacity)); } +.bg-\[\#101111\]{ + --tw-bg-opacity: 1; + background-color: rgb(16 17 17 / var(--tw-bg-opacity)); +} + .bg-\[\#111213\]{ --tw-bg-opacity: 1; background-color: rgb(17 18 19 / var(--tw-bg-opacity)); @@ -3885,11 +3934,6 @@ video { background-color: rgb(96 152 121 / var(--tw-bg-opacity)); } -.bg-\[\#70E763\]{ - --tw-bg-opacity: 1; - background-color: rgb(112 231 99 / var(--tw-bg-opacity)); -} - .bg-\[\#A0A0A0\]{ --tw-bg-opacity: 1; background-color: rgb(160 160 160 / var(--tw-bg-opacity)); @@ -3900,11 +3944,6 @@ video { background-color: rgb(209 187 158 / var(--tw-bg-opacity)); } -.bg-\[\#EB5353\]{ - --tw-bg-opacity: 1; - background-color: rgb(235 83 83 / var(--tw-bg-opacity)); -} - .bg-\[\#F7C566\]{ --tw-bg-opacity: 1; background-color: rgb(247 197 102 / var(--tw-bg-opacity)); @@ -4149,11 +4188,31 @@ video { background-color: rgb(250 204 21 / var(--tw-bg-opacity)); } +.bg-zinc-200{ + --tw-bg-opacity: 1; + background-color: rgb(228 228 231 / var(--tw-bg-opacity)); +} + +.bg-zinc-400{ + --tw-bg-opacity: 1; + background-color: rgb(161 161 170 / var(--tw-bg-opacity)); +} + .bg-zinc-700{ --tw-bg-opacity: 1; background-color: rgb(63 63 70 / var(--tw-bg-opacity)); } +.bg-\[\#70E763\]{ + --tw-bg-opacity: 1; + background-color: rgb(112 231 99 / var(--tw-bg-opacity)); +} + +.bg-\[\#EB5353\]{ + --tw-bg-opacity: 1; + background-color: rgb(235 83 83 / var(--tw-bg-opacity)); +} + .bg-opacity-80{ --tw-bg-opacity: 0.8; } @@ -4425,6 +4484,10 @@ video { text-align: center; } +.text-right{ + text-align: right; +} + .indent-0{ text-indent: 0px; } @@ -4789,6 +4852,11 @@ video { color: rgb(255 255 255 / var(--tw-text-opacity)); } +.text-yellow-300{ + --tw-text-opacity: 1; + color: rgb(253 224 71 / var(--tw-text-opacity)); +} + .text-yellow-400{ --tw-text-opacity: 1; color: rgb(250 204 21 / var(--tw-text-opacity)); @@ -4963,6 +5031,11 @@ video { --tw-shadow: var(--tw-shadow-colored); } +.shadow-\[\#101111\]{ + --tw-shadow-color: #101111; + --tw-shadow: var(--tw-shadow-colored); +} + .shadow-\[\#111010\]{ --tw-shadow-color: #111010; --tw-shadow: var(--tw-shadow-colored); @@ -5038,6 +5111,11 @@ video { --tw-shadow: var(--tw-shadow-colored); } +.shadow-gray-700{ + --tw-shadow-color: #374151; + --tw-shadow: var(--tw-shadow-colored); +} + .shadow-gray-800{ --tw-shadow-color: #1f2937; --tw-shadow: var(--tw-shadow-colored); @@ -5072,11 +5150,20 @@ video { box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } +.ring-inset{ + --tw-ring-inset: inset; +} + .ring-black{ --tw-ring-opacity: 1; --tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity)); } +.ring-gray-300{ + --tw-ring-opacity: 1; + --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity)); +} + .ring-opacity-5{ --tw-ring-opacity: 0.05; } @@ -5172,6 +5259,11 @@ video { transition-duration: 500ms; } +.duration-75{ + -webkit-transition-duration: 75ms; + transition-duration: 75ms; +} + .ease-in{ -webkit-transition-timing-function: cubic-bezier(0.4, 0, 1, 1); transition-timing-function: cubic-bezier(0.4, 0, 1, 1); @@ -5386,11 +5478,6 @@ html body { left: 2px; } -.after\:top-0::after{ - content: var(--tw-content); - top: 0px; -} - .after\:top-0\.5::after{ content: var(--tw-content); top: 0.125rem; @@ -5672,11 +5759,21 @@ html body { background-color: rgb(60 67 74 / var(--tw-bg-opacity)); } +.hover\:bg-\[\#407d7d\]:hover{ + --tw-bg-opacity: 1; + background-color: rgb(64 125 125 / var(--tw-bg-opacity)); +} + .hover\:bg-\[\#447a75\]:hover{ --tw-bg-opacity: 1; background-color: rgb(68 122 117 / var(--tw-bg-opacity)); } +.hover\:bg-\[\#488d8d\]:hover{ + --tw-bg-opacity: 1; + background-color: rgb(72 141 141 / var(--tw-bg-opacity)); +} + .hover\:bg-\[\#4c7960\]:hover{ --tw-bg-opacity: 1; background-color: rgb(76 121 96 / var(--tw-bg-opacity)); @@ -5807,6 +5904,11 @@ html body { background-color: rgb(4 47 46 / var(--tw-bg-opacity)); } +.hover\:bg-gray-50:hover{ + --tw-bg-opacity: 1; + background-color: rgb(249 250 251 / var(--tw-bg-opacity)); +} + .hover\:bg-opacity-10:hover{ --tw-bg-opacity: 0.1; } diff --git a/launcher/src/components/UI/edit-page/components/modals/AddPanel.vue b/launcher/src/components/UI/edit-page/components/modals/AddPanel.vue index 2d279dfb0f..d98bb0dc90 100644 --- a/launcher/src/components/UI/edit-page/components/modals/AddPanel.vue +++ b/launcher/src/components/UI/edit-page/components/modals/AddPanel.vue @@ -1,10 +1,18 @@ import { onMounted, watch, onUnmounted, ref } from 'vue'; @@ -129,29 +182,38 @@ const props = defineProps({ }); const manageStore = useNodeManage(); -const sourceLink = ref(""); +const addressLink = ref(""); const jwtToken = ref(""); const gateway = ref(""); -const selectedService = ref(""); +const selectedSource = ref(""); const isOpen = ref(false); -const services = ["prysm", "lighthouse", "teku", "nimbus", "lodestar"]; +const sources = [ + { name: "custom", icon: null }, + { name: "stereumplus 1", icon: "/img/icon/stereumplus-icons/stereumplus-icon.png" }, + { name: "stereumplus 2", icon: "/img/icon/stereumplus-icons/stereumplus-icon.png" }, + { name: "stereumplus 3", icon: "/img/icon/stereumplus-icons/stereumplus-icon.png" }, +]; //Computed & Watcher +//Replace Sources by a computed source like below then remove the source above +// const sources = computed(() => { +// return logic to get source +// }); + watchEffect(() => { - props.client.config.source = sourceLink.value; + props.client.config.source = addressLink.value; props.client.config.jwtToken = jwtToken.value; - props.client.config.gateway = gateway.value; }); //Lifecycle Hooks onMounted(() => { - sourceLink.value = ""; + addressLink.value = ""; jwtToken.value = ""; props.properties.installDir = ""; gateway.value = ""; - selectedService.value = ""; + selectedSource.value = ""; getInstallPath(); }); @@ -161,16 +223,18 @@ const dropdown = () => { isOpen.value = !isOpen.value; }; -const pickService = (service) => { - selectedService.value = service; - manageStore.ExternalConsensusSelectedService = service; - dropdown(); +const pickSource = (source) => { + selectedSource.value = source; + manageStore.ExternalConsensusSelectedService = source; + isOpen.value = false; }; const getInstallPath = async () => { let largestVolumePath = await ControlService.getLargestVolumePath(); if (largestVolumePath === "/") largestVolumePath = largestVolumePath + "opt"; - const stereumInstallationPath = [largestVolumePath, "/stereum"].join("/").replace(/\/{2,}/, "/"); + const stereumInstallationPath = [largestVolumePath, "/stereum"] + .join("/") + .replace(/\/{2,}/, "/"); props.properties.installDir = stereumInstallationPath; }; From 1061616401589d90fccc76c12b5d8a4471f09547 Mon Sep 17 00:00:00 2001 From: Max Behzadi <69126271+MaxTheGeeek@users.noreply.github.com> Date: Tue, 17 Sep 2024 16:28:54 +0200 Subject: [PATCH 2/5] CHANGE: input height --- launcher/public/output.css | 13 +++++++++++++ .../edit-page/components/modals/AddPanel.vue | 19 +++++++++---------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/launcher/public/output.css b/launcher/public/output.css index 5641597422..313b560c78 100755 --- a/launcher/public/output.css +++ b/launcher/public/output.css @@ -999,6 +999,10 @@ video { top: 7rem; } +.left-2{ + left: 0.5rem; +} + .z-0{ z-index: 0; } @@ -2391,6 +2395,10 @@ video { width: 50%; } +.w-64{ + width: 16rem; +} + .min-w-\[100px\]{ min-width: 100px; } @@ -2985,6 +2993,11 @@ video { border-color: rgb(243 244 246 / var(--tw-divide-opacity)); } +.divide-gray-500 > :not([hidden]) ~ :not([hidden]){ + --tw-divide-opacity: 1; + border-color: rgb(107 114 128 / var(--tw-divide-opacity)); +} + .self-start{ -ms-flex-item-align: start; align-self: flex-start; diff --git a/launcher/src/components/UI/edit-page/components/modals/AddPanel.vue b/launcher/src/components/UI/edit-page/components/modals/AddPanel.vue index d98bb0dc90..0651fe8c7b 100644 --- a/launcher/src/components/UI/edit-page/components/modals/AddPanel.vue +++ b/launcher/src/components/UI/edit-page/components/modals/AddPanel.vue @@ -65,7 +65,7 @@ import { onMounted, watch, onUnmounted, ref } from 'vue'; class="col-start-1 col-span-full flex justify-center items-center overflow-hidden" >