diff --git a/src/store/auth.ts b/src/store/auth.ts index a31b075..ccee53d 100644 --- a/src/store/auth.ts +++ b/src/store/auth.ts @@ -33,6 +33,7 @@ interface AuthState { loginWithTelegram: (initData: string) => Promise loginWithTelegramWidget: (data: TelegramWidgetData) => Promise loginWithEmail: (email: string, password: string) => Promise + registerWithEmail: (email: string, password: string, firstName?: string) => Promise } // Блокировка для предотвращения race condition при инициализации @@ -260,6 +261,23 @@ export const useAuthStore = create()( }) get().checkAdminStatus() }, + + registerWithEmail: async (email, password, firstName) => { + const response = await authApi.registerEmailStandalone({ + email, + password, + first_name: firstName, + language: navigator.language.split('-')[0] || 'ru', + }) + tokenStorage.setTokens(response.access_token, response.refresh_token) + set({ + accessToken: response.access_token, + refreshToken: response.refresh_token, + user: response.user, + isAuthenticated: true, + }) + get().checkAdminStatus() + }, }), { name: 'cabinet-auth',