@@ -307,6 +307,18 @@ const rawQuickCommandsActions = [
307307 router .push (` /block/${ height} ` )
308308 },
309309 },
310+ {
311+ type: " command:input" ,
312+ icon: " validator" ,
313+ title: " Open Validator.." ,
314+ subtitle: " Command" ,
315+ placeholder: " Type validator moniker..." ,
316+ runText: " Run Command" ,
317+
318+ callback : (id ) => {
319+ router .push (` /validator/${ id} ` )
320+ },
321+ },
310322 {
311323 type: " command:input" ,
312324 icon: " namespace" ,
@@ -838,6 +850,10 @@ const searchAction = {
838850 router .push (` /rollup/${ data .value [0 ].result .slug } ` )
839851 break
840852
853+ case " validator" :
854+ router .push (` /validator/${ data .value [0 ].result .id } ` )
855+ break
856+
841857 default :
842858 break
843859 }
@@ -859,7 +875,7 @@ const autocompleteGroup = computed(() => {
859875})
860876
861877const debouncedSearch = useDebounceFn (async (e ) => {
862- const UNSUPPORTED_ENTITIES = [" validator " ]
878+ const UNSUPPORTED_ENTITIES = [" " ]
863879
864880 const { data } = await search (searchTerm .value .trim ())
865881 if (! data .value .length ) return
@@ -869,39 +885,52 @@ const debouncedSearch = useDebounceFn(async (e) => {
869885 amp .track (" showAutocomplete" , { count: filteredResults .length , firstType: filteredResults[0 ].type })
870886
871887 autocompleteActions .value = []
888+ let title
889+ let routerLink
872890 for (let i = 0 ; i < Math .min (3 , filteredResults .length ); i++ ) {
891+ switch (filteredResults[i].type ) {
892+ case " tx" :
893+ title = filteredResults[i].result .hash
894+ routerLink = ` /tx/${ filteredResults[i].result .hash } `
895+ break
896+
897+ case " block" :
898+ title = filteredResults[i].result .hash
899+ routerLink = ` /block/${ filteredResults[i].result .height } `
900+ break
901+
902+ case " namespace" :
903+ title = filteredResults[i].result .hash
904+ routerLink = ` /namespace/${ filteredResults[i].result .namespace_id } `
905+ break
906+
907+ case " address" :
908+ title = filteredResults[i].result .hash
909+ routerLink = ` /address/${ filteredResults[i].result .hash } `
910+ break
911+
912+ case " rollup" :
913+ title = filteredResults[i].result .name
914+ routerLink = ` /rollup/${ filteredResults[i].result .slug } `
915+ break
916+
917+ case " validator" :
918+ title = filteredResults[i].result .moniker ? filteredResults[i].result .moniker : filteredResults[i].result .address
919+ routerLink = ` /validator/${ filteredResults[i].result .id } `
920+ break
921+
922+ default :
923+ break
924+ }
873925 autocompleteActions .value .push ({
874926 id: id (),
875927 type: " callback" ,
876928 icon: filteredResults[i].type ,
877- title: filteredResults[i]. result . hash ? filteredResults[i]. result . hash : filteredResults[i]. result . name ,
929+ title: title ,
878930 subtitle: filteredResults[i].type .charAt (0 ).toUpperCase () + filteredResults[i].type .slice (1 ),
879931 runText: " Open" ,
880932 callback : () => {
881- switch (filteredResults[i].type ) {
882- case " tx" :
883- router .push (` /tx/${ filteredResults[i].result .hash } ` )
884- break
885-
886- case " block" :
887- router .push (` /block/${ filteredResults[i].result .height } ` )
888- break
889-
890- case " namespace" :
891- router .push (` /namespace/${ filteredResults[i].result .namespace_id } ` )
892- break
893-
894- case " address" :
895- router .push (` /address/${ filteredResults[i].result .hash } ` )
896- break
897-
898- case " rollup" :
899- router .push (` /rollup/${ filteredResults[i].result .slug } ` )
900- break
901-
902- default :
903- break
904- }
933+ router .push (routerLink)
905934 },
906935 })
907936 }
@@ -1204,7 +1233,9 @@ const onKeydown = (e) => {
12041233watch (
12051234 () => searchTerm .value ,
12061235 () => {
1207- if (searchTerm .value .length > 2 && ! mode .value ) {
1236+ if (searchTerm .value .length < 3 && ! mode .value ) {
1237+ autocompleteActions .value = []
1238+ } else if (searchTerm .value .length > 2 && ! mode .value ) {
12081239 debouncedSearch ()
12091240 }
12101241
0 commit comments