@@ -8,11 +8,14 @@ import NavLink from "@/components/modules/navigation/NavLink.vue"
88
99/** Utils */
1010import { getNetworkName } from " @/services/utils/general"
11+ import { StatusMap } from " @/services/constants/node"
1112
1213/** Store */
1314import { useAppStore } from " ~/store/app"
15+ import { useNodeStore } from " ~/store/node"
1416import { useModalsStore } from " ~/store/modals"
1517const appStore = useAppStore ()
18+ const nodeStore = useNodeStore ()
1619const modalsStore = useModalsStore ()
1720
1821const head = computed (() => appStore .lastHead )
@@ -224,15 +227,34 @@ const handleNavigate = (url) => {
224227 </Flex >
225228 </Flex >
226229
227- <Flex direction =" column" gap =" 12" style =" margin-right : 20px " >
230+ <Flex direction =" column" gap =" 16" style =" margin-right : 20px " >
231+ <Flex @click =" modalsStore.open('lightNode')" align =" center" gap =" 8" justify =" between" :class =" $style.light_node_btn" >
232+ <Flex align =" center" gap =" 8" >
233+ <Icon
234+ v-if =" nodeStore.status === StatusMap.Started"
235+ name =" lumina"
236+ size =" 14"
237+ color =" brand"
238+ :class =" $style.light_node_running_icon"
239+ />
240+ <Icon v-else name =" lumina" size =" 14" color =" secondary" />
241+
242+ <Text v-if =" nodeStore.status === StatusMap.Started" size =" 13" weight =" 600" color =" primary" >Running</Text >
243+ <Text size =" 13" weight =" 600" color =" secondary" >Node</Text >
244+ </Flex >
245+
246+ <Icon v-if =" nodeStore.status !== StatusMap.Started" name =" arrow-narrow-right" size =" 14" color =" secondary" />
247+ <Text v-else size =" 12" weight =" 600" color =" tertiary" >{{ nodeStore.percentage.toFixed(0) }}%</Text >
248+ </Flex >
249+
228250 <!-- <Flex justify="end" :class="$style.ad">
229- <Flex justify="end" direction="column" gap="8">
230- <Text size="12" weight="500" color="brand">Introducing Celenium API</Text>
231- <Text size="12" weight="500" height="140" color="secondary">
232- Unlock the power of Celestia: Scalable, Secure and Modular.
233- </Text>
234- </Flex>
235- </Flex> -->
251+ <Flex justify="end" direction="column" gap="8">
252+ <Text size="12" weight="500" color="brand">Introducing Celenium API</Text>
253+ <Text size="12" weight="500" height="140" color="secondary">
254+ Unlock the power of Celestia: Scalable, Secure and Modular.
255+ </Text>
256+ </Flex>
257+ </Flex> -->
236258
237259 <Dropdown position =" end" fullWidth >
238260 <Flex align =" center" gap =" 8" justify =" between" :class =" $style.network_selector" >
@@ -292,6 +314,7 @@ const handleNavigate = (url) => {
292314 display : flex ;
293315
294316 background : var (--app-background );
317+ overflow : auto ;
295318
296319 z-index : 100 ;
297320 }
@@ -332,6 +355,22 @@ const handleNavigate = (url) => {
332355 }
333356}
334357
358+ .light_node_btn {
359+ height : 32px ;
360+
361+ cursor : pointer ;
362+ border-radius : 6px ;
363+ background : var (--op-5 );
364+
365+ padding : 0 8px ;
366+
367+ transition : all 0.2s ease ;
368+
369+ &:hover {
370+ background : var (--op-8 );
371+ }
372+ }
373+
335374.network_selector {
336375 height : 32px ;
337376
@@ -360,6 +399,27 @@ const handleNavigate = (url) => {
360399 margin-right : 20px ;
361400}
362401
402+ .light_node_running_icon {
403+ animation : lightNodeIcon 2s ease infinite ;
404+ }
405+
406+ @keyframes lightNodeIcon {
407+ 0% {
408+ opacity : 1 ;
409+ filter : drop-shadow (0 0 8px var (--brand ));
410+ }
411+
412+ 50% {
413+ opacity : 0.3 ;
414+ filter : drop-shadow (0 0 2px var (--brand ));
415+ }
416+
417+ 100% {
418+ opacity : 1 ;
419+ filter : drop-shadow (0 0 8px var (--brand ));
420+ }
421+ }
422+
363423@media (max-width : 1300px ) {
364424 .close_btn {
365425 display : flex ;
0 commit comments