1717 <span >Get Enkrypt</span >
1818 </a >
1919
20- <!--
2120 <select-list
2221 v-if =" !isToggleMenu"
23- :select="network "
24- :items="[chainsData[Chains.SOLANA]] "
22+ :select =" currentChainOption "
23+ :items =" chainOptions "
2524 :is-minify =" true"
2625 :is-list-image =" true"
2726 @update:select =" selectNetworkAction"
2827 />
29- -->
3028
3129 <account-select
32- v-if =" wallet.connected.value && !isToggleMenu"
30+ v-if =" isWalletConnected && !isToggleMenu"
3331 :account =" walletAccount"
3432 @disconnect =" disconnectWallet"
3533 ></account-select >
36- <a v-else-if =" !isToggleMenu && !wallet.connected.value " class =" header__connect" @click =" openWalletModal " href =" javascript:void(0)" >
34+ <a v-else-if =" !isToggleMenu" class =" header__connect" @click =" connectWallet " href =" javascript:void(0)" >
3735 Connect
3836 </a >
3937 </div >
@@ -70,13 +68,22 @@ const store = useStore();
7068const router = useRouter ();
7169const isScroll = ref <boolean >(false );
7270const wallet = useWallet ();
73- const network = ref <ChainDataItem >(chainsData [Chains .SOLANA ]);
7471const walletAccount = computed (() => store .getters [SharedTypes .WALLET_ACCOUNT_GETTER ]);
7572const isWalletModalOpen = computed (() => store .getters [SharedTypes .IS_CONNECT_MODAL_VISIBLE_GETTER ]);
73+ const activeChain = computed (() => store .getters [SharedTypes .CHAIN_GETTER ]);
74+ const isWalletConnected = computed (() => store .getters [SharedTypes .IS_WALLET_CONNECTED_GETTER ]);
75+ const chainOptions = computed <ChainDataItem []>(() => [
76+ chainsData [Chains .SOLANA ],
77+ chainsData [Chains .ROOTSTOCK ],
78+ ]);
79+ const currentChainOption = computed <ChainDataItem >(() => chainsData [activeChain .value ]);
7680
7781watch (
7882 () => wallet .publicKey ?.value ,
7983 (newVal , oldVal ) => {
84+ if (activeChain .value !== Chains .SOLANA ) {
85+ return ;
86+ }
8087 if (newVal ) {
8188 if (oldVal && newVal .toString () !== oldVal .toString ()) {
8289 store .dispatch (SharedTypes .DISCONNECT_WALLET_ACTION );
@@ -89,9 +96,13 @@ watch(
8996 { immediate: true }
9097);
9198
92- const openWalletModal = () => {
99+ const connectWallet = async () => {
93100 trackButtonsEvents (ButtonsActionEventType .MainScreenConnectButtonClicked );
94- store .dispatch (SharedTypes .CONNECT_MODAL_ACTION , true );
101+ if (activeChain .value === Chains .SOLANA ) {
102+ store .dispatch (SharedTypes .CONNECT_MODAL_ACTION , true );
103+ } else {
104+ await store .dispatch (SharedTypes .CONNECT_EVM_WALLET_ACTION );
105+ }
95106};
96107
97108const updateWalletModalVisibility = (visible : boolean ) => {
@@ -101,10 +112,13 @@ const updateWalletModalVisibility = (visible: boolean) => {
101112const disconnectWallet = async () => {
102113 trackButtonsEvents (ButtonsActionEventType .MainScreenDisconnectButtonClicked );
103114 try {
104- if (wallet .connected .value ) {
115+ if (activeChain . value === Chains . SOLANA && wallet .connected .value ) {
105116 await store .dispatch (SharedTypes .DISCONNECT_WALLET_ACTION );
106117 await wallet .disconnect ();
107118 router .push (' /' );
119+ } else if (activeChain .value === Chains .ROOTSTOCK ) {
120+ await store .dispatch (SharedTypes .DISCONNECT_WALLET_ACTION );
121+ router .push (' /' );
108122 }
109123 } catch (err ) {
110124 console .error (' Failed to disconnect:' , err );
@@ -140,8 +154,17 @@ const onScroll = () => {
140154 }
141155};
142156
143- const selectNetworkAction = (item : ChainDataItem ) => {
144- network .value = item ;
157+ const selectNetworkAction = async (item : ChainDataItem ) => {
158+ if (item .id === activeChain .value ) {
159+ return ;
160+ }
161+
162+ if (activeChain .value === Chains .SOLANA && wallet .connected .value ) {
163+ await store .dispatch (SharedTypes .DISCONNECT_WALLET_ACTION );
164+ await wallet .disconnect ();
165+ }
166+
167+ await store .dispatch (SharedTypes .SWITCH_CHAIN_ACTION , item .id as Chains );
145168};
146169
147170const toggleMenu = () => {
0 commit comments