ваше сообщение коммита

This commit is contained in:
2025-08-15 22:36:50 +03:00
parent 5238e1ee55
commit 3765c65a18
29 changed files with 904 additions and 651 deletions

View File

@@ -85,6 +85,13 @@ provide('identities', computed(() => props.identities));
provide('tokenBalances', computed(() => props.tokenBalances));
provide('isLoadingTokens', computed(() => props.isLoadingTokens));
// Отладочная информация
console.log('[BaseLayout] Props received:', {
isAuthenticated: props.isAuthenticated,
tokenBalances: props.tokenBalances,
isLoadingTokens: props.isLoadingTokens
});
// Callback после успешной аутентификации/привязки через Email/Telegram
const handleAuthFlowSuccess = (authType) => {
// console.log(`[BaseLayout] Auth flow success: ${authType}`);
@@ -151,7 +158,21 @@ const handleWalletAuth = async () => {
}
} catch (error) {
// console.error('[BaseLayout] Ошибка при подключении кошелька:', error);
showErrorMessage('Произошла ошибка при подключении кошелька');
// Улучшенная обработка ошибок MetaMask
let errorMessage = 'Произошла ошибка при подключении кошелька';
if (error.message && error.message.includes('MetaMask extension not found')) {
errorMessage = 'Расширение MetaMask не найдено. Пожалуйста, установите MetaMask и обновите страницу.';
} else if (error.message && error.message.includes('Failed to connect to MetaMask')) {
errorMessage = 'Не удалось подключиться к MetaMask. Проверьте, что расширение установлено и активно.';
} else if (error.message && error.message.includes('Браузерный кошелек не установлен')) {
errorMessage = 'Браузерный кошелек не установлен. Пожалуйста, установите MetaMask.';
} else if (error.message) {
errorMessage = error.message;
}
showErrorMessage(errorMessage);
} finally {
isConnectingWallet.value = false;
}

View File

@@ -117,12 +117,14 @@
Загрузка балансов...
</div>
<div v-else-if="!tokenBalances || tokenBalances.length === 0" class="token-no-data">
Баланс не доступен
Баланс не доступен (tokenBalances: {{ tokenBalances }}, length: {{ tokenBalances?.length }})
</div>
<div v-else>
<div class="token-balance-header">
<small class="last-update">Обновлено: {{ formattedLastUpdate }}</small>
<small class="debug-info">Debug: {{ tokenBalances.length }} токенов</small>
</div>
<div v-for="(token, index) in tokenBalances.data || []" :key="token.tokenAddress ? token.tokenAddress : 'token-' + index" class="token-balance-row">
<div v-for="(token, index) in tokenBalances" :key="token.tokenAddress ? token.tokenAddress : 'token-' + index" class="token-balance-row">
<span class="token-name">{{ token.tokenName }}</span>
<span class="token-network">{{ token.network }}</span>
<span class="token-amount">{{ isNaN(Number(token.balance)) ? '—' : Number(token.balance).toLocaleString() }}</span>
@@ -172,9 +174,10 @@ const props = defineProps({
isAuthenticated: Boolean,
telegramAuth: Object,
emailAuth: Object,
tokenBalances: Object,
tokenBalances: Array,
identities: Array,
isLoadingTokens: Boolean
isLoadingTokens: Boolean,
formattedLastUpdate: String
});
const emit = defineEmits(['update:modelValue', 'wallet-auth', 'disconnect-wallet', 'telegram-auth', 'email-auth', 'cancel-email-auth']);
@@ -239,11 +242,20 @@ const handleDeleteIdentity = async (provider, providerId) => {
// Добавляем watch для отслеживания props
watch(() => props.tokenBalances, (newVal, oldVal) => {
// console.log('[Sidebar] tokenBalances prop changed:', JSON.stringify(newVal));
console.log('[Sidebar] tokenBalances prop changed:', JSON.stringify(newVal));
}, { deep: true });
watch(() => props.isLoadingTokens, (newVal, oldVal) => {
// console.log(`[Sidebar] isLoadingTokens prop changed: ${newVal}`);
console.log(`[Sidebar] isLoadingTokens prop changed: ${newVal}`);
});
// Добавляем отладочную информацию при монтировании
onMounted(() => {
console.log('[Sidebar] Mounted with props:', {
isAuthenticated: props.isAuthenticated,
tokenBalances: props.tokenBalances,
isLoadingTokens: props.isLoadingTokens
});
});
</script>

View File

@@ -67,7 +67,21 @@
}
} catch (err) {
// console.error('Error connecting wallet:', err);
error.value = err.message || 'Произошла ошибка при подключении кошелька';
// Улучшенная обработка ошибок MetaMask
let errorMessage = 'Произошла ошибка при подключении кошелька';
if (err.message && err.message.includes('MetaMask extension not found')) {
errorMessage = 'Расширение MetaMask не найдено. Пожалуйста, установите MetaMask и обновите страницу.';
} else if (err.message && err.message.includes('Failed to connect to MetaMask')) {
errorMessage = 'Не удалось подключиться к MetaMask. Проверьте, что расширение установлено и активно.';
} else if (err.message && err.message.includes('Браузерный кошелек не установлен')) {
errorMessage = 'Браузерный кошелек не установлен. Пожалуйста, установите MetaMask.';
} else if (err.message) {
errorMessage = err.message;
}
error.value = errorMessage;
} finally {
isLoading.value = false;
}