33import { executeFaucet , faucetAddress , fetchBalance } from " @/services/api/faucet"
44
55/** Services */
6- import { comma , splitAddress , tia } from " @/services/utils"
6+ import { capitilize , comma , splitAddress , tia } from " @/services/utils"
77import { Server , useServerURL } from " @/services/config"
88
99/** UI */
1010import Button from " @/components/ui/Button.vue"
11+ import { Dropdown , DropdownItem } from " @/components/ui/Dropdown"
1112import Input from " @/components/ui/Input.vue"
1213import Tooltip from " @/components/ui/Tooltip.vue"
1314
@@ -72,6 +73,7 @@ const address = ref("")
7273const account = ref ()
7374const network = ref (" mocha" )
7475
76+ const isNetworkSelectorOpen = ref (false )
7577const fetchAccount = async () => {
7678 try {
7779 account .value = null
@@ -162,6 +164,7 @@ const handleReturnTokensClick = () => {
162164 if (
163165 (useServerURL ().includes (" mocha" ) && network .value === " mocha" )
164166 || (useServerURL ().includes (" arabica" ) && network .value === " arabica" )
167+ || (useServerURL ().includes (" mammoth" ) && network .value === " mammoth" )
165168 ) {
166169 cacheStore .current .address = { hash: faucetAddress }
167170 modalsStore .open (" send" )
@@ -170,12 +173,8 @@ const handleReturnTokensClick = () => {
170173 }
171174}
172175
173- const handleChangeNetwork = () => {
174- if (network .value === ' mocha' ) {
175- network .value = ' arabica'
176- } else {
177- network .value = ' mocha'
178- }
176+ const handleChangeNetwork = (net ) => {
177+ network .value = net
179178}
180179
181180const openedQuestion = ref (0 )
@@ -272,20 +271,37 @@ onMounted(() => {
272271 < Flex direction= " column" gap= " 48" wide>
273272 < Flex direction= " column" gap= " 16" wide>
274273 < Flex align= " center" justify= " start" gap= " 16" wide>
275- < Text align= " center" size= " 12" color= " secondary" weight= " 600" > Network< / Text >
276- < Flex
277- @click= " handleChangeNetwork"
278- align= " center"
279- justify= " between"
274+ < Dropdown
275+ @onOpen= " isNetworkSelectorOpen = true"
276+ @onClose= " isNetworkSelectorOpen = false"
277+ position= " end"
280278 : class = " $style.network_selector"
281- : style= " {
282- background: `linear-gradient(to ${network === 'mocha' ? 'right' : 'left'}, var(--op-3) 50%, transparent 50%)`,
283- width: '110px'
284- }"
285279 >
286- < Text align= " center" size= " 12" weight= " 600" : color= " network === 'mocha' ? 'primary' : 'tertiary'" > Mocha< / Text >
287- < Text align= " center" size= " 12" weight= " 600" : color= " network === 'arabica' ? 'primary' : 'tertiary'" > Arabica< / Text >
288- < / Flex>
280+ < Flex align= " center" gap= " 8" justify= " between" >
281+ < Flex align= " center" gap= " 8" >
282+ < Icon name= " globe" size= " 14" color= " tertiary" / >
283+
284+ < Text size= " 13" weight= " 600" color= " secondary" >
285+ {{ capitilize (network) }}
286+ < / Text >
287+ < / Flex>
288+ < Icon
289+ name= " chevron"
290+ size= " 14"
291+ color= " secondary"
292+ : style= " {
293+ transform: `rotate(${isNetworkSelectorOpen ? '180' : '0'}deg)`,
294+ transition: 'all 0.2s ease'
295+ }"
296+ / >
297+ < / Flex>
298+
299+ < template #popup>
300+ < DropdownItem @click= " handleChangeNetwork('mocha')" > Mocha< / DropdownItem>
301+ < DropdownItem @click= " handleChangeNetwork('arabica')" > Arabica< / DropdownItem>
302+ < DropdownItem @click= " handleChangeNetwork('mammoth')" > Mammoth< / DropdownItem>
303+ < / template>
304+ < / Dropdown>
289305 < / Flex>
290306 < Flex align= " center" gap= " 6" wide>
291307 < Input
0 commit comments