diff --git a/src/views/HomeView.vue b/src/views/HomeView.vue index 5ef8266..20dea31 100644 --- a/src/views/HomeView.vue +++ b/src/views/HomeView.vue @@ -1079,7 +1079,7 @@ onMounted(async () => { } .user-name { - background: linear-gradient(45deg, #FFD700, #FFA500); + background: linear-gradient(45deg, #00BFFF, #20B2AA); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; @@ -1169,7 +1169,7 @@ onMounted(async () => { bottom: -10px; height: 4px; width: 60px; - background: linear-gradient(90deg, #FFD700, #FFA500); + background: linear-gradient(90deg, #00BFFF, #20B2AA); border-radius: 2px; } @@ -1440,17 +1440,4 @@ onMounted(async () => { font-size: 0.85rem; } } - -/* Исправления Safari */ -@supports (-webkit-touch-callout: none) { - .letter, .logo-letter, .user-name, .stat-info h3 { - background-clip: text; - -webkit-text-fill-color: transparent; - } - - .welcome-card h1 { - background-clip: text; - -webkit-text-fill-color: transparent; - } -} \ No newline at end of file diff --git a/src/views/LoginView.vue b/src/views/LoginView.vue index 9115cfa..d68ef54 100644 --- a/src/views/LoginView.vue +++ b/src/views/LoginView.vue @@ -245,7 +245,7 @@ const handleLogin = async () => { width: 100%; padding: 1rem; margin-top: 1rem; - background: linear-gradient(45deg, #FFD700, #FFA500); + background: linear-gradient(45deg, #00BFFF, #20B2AA); border: none; border-radius: 12px; color: white; @@ -277,7 +277,7 @@ const handleLogin = async () => { .action-button:hover { transform: translateY(-3px); - box-shadow: 0 7px 15px rgba(255, 215, 0, 0.3); + box-shadow: 0 7px 15px rgba(0, 191, 255, 0.3); } .action-button:disabled { @@ -307,7 +307,7 @@ const handleLogin = async () => { } .auth-link { - color: #FFD700; + color: #20B2AA; text-decoration: none; font-weight: 600; transition: all 0.3s ease; diff --git a/src/views/ProfileView.vue b/src/views/ProfileView.vue index 6a08268..81099a2 100644 --- a/src/views/ProfileView.vue +++ b/src/views/ProfileView.vue @@ -74,6 +74,12 @@ Подтвержден С {{ formatShortDate(profileData.createdAt) }} + + + @@ -367,7 +373,7 @@ import { ref, onMounted, computed, watch, nextTick } from 'vue'; import { useAuth } from '@/auth'; import api from '@/services/api'; -const { isAuthenticated, user: authUserFromStore, token, fetchUser } = useAuth(); +const { isAuthenticated, user: authUserFromStore, token, fetchUser, logout } = useAuth(); const profileData = ref(null); const loading = ref(true); const initialLoading = ref(true); @@ -923,6 +929,15 @@ const clearProfileMessages = () => { profileActionSuccess.value = ''; }; +// Функция выхода из аккаунта +const logoutUser = async () => { + try { + await logout(); + console.log('[ProfileView] Пользователь успешно вышел из системы'); + } catch (error) { + console.error('[ProfileView] Ошибка при выходе из системы:', error); + } +}; watch(authUserFromStore, (newUser) => { if (newUser) { @@ -1826,4 +1841,33 @@ onMounted(async () => { background: rgba(220, 53, 69, 0.1); opacity: 1; } + +/* Logout Button */ +.logout-btn { + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + background: linear-gradient(45deg, #f74054, #ff5e57); + color: white; + border: none; + padding: 0.6rem 1.2rem; + border-radius: 50px; + margin-top: 1rem; + font-size: 0.9rem; + font-weight: 600; + width: 100%; + cursor: pointer; + transition: all 0.3s ease; + box-shadow: 0 4px 10px rgba(247, 64, 84, 0.3); +} + +.logout-btn:hover { + transform: translateY(-2px); + box-shadow: 0 6px 15px rgba(247, 64, 84, 0.4); +} + +.logout-btn i { + font-size: 1.1rem; +} \ No newline at end of file diff --git a/src/views/RegisterView.vue b/src/views/RegisterView.vue index 2ac034c..056adc5 100644 --- a/src/views/RegisterView.vue +++ b/src/views/RegisterView.vue @@ -294,7 +294,7 @@ const handleRegister = async () => { width: 100%; padding: 1rem; margin-top: 1rem; - background: linear-gradient(45deg, #FFD700, #FFA500); + background: linear-gradient(45deg, #00BFFF, #20B2AA); border: none; border-radius: 12px; color: white; @@ -326,7 +326,7 @@ const handleRegister = async () => { .action-button:hover { transform: translateY(-3px); - box-shadow: 0 7px 15px rgba(255, 215, 0, 0.3); + box-shadow: 0 7px 15px rgba(0, 191, 255, 0.3); } .action-button:disabled { @@ -356,7 +356,7 @@ const handleRegister = async () => { } .auth-link { - color: #FFD700; + color: #20B2AA; text-decoration: none; font-weight: 600; transition: all 0.3s ease;