MCPcopy Index your code
hub / github.com/CodebuffAI/codebuff / useLoginMutation

Function useLoginMutation

cli/src/hooks/use-auth-query.ts:180–217  ·  view source on GitHub ↗
(deps: UseLoginMutationDeps = {})

Source from the content-addressed store, hash-verified

178 * CHANGE: Now accepts optional dependencies for testing via dependency injection
179 */
180export function useLoginMutation(deps: UseLoginMutationDeps = {}) {
181 const queryClient = useQueryClient()
182 const {
183 saveUserCredentials = defaultSaveUserCredentials,
184 getUserInfoFromApiKey = defaultGetUserInfoFromApiKey,
185 logger = defaultLogger,
186 } = deps
187
188 return useMutation({
189 mutationFn: async (user: User) => {
190 // Save credentials to file system
191 saveUserCredentials(user)
192
193 // Validate the new credentials
194 const authResult = await validateApiKey({
195 apiKey: user.authToken,
196 getUserInfoFromApiKey,
197 logger,
198 })
199
200 const mergedUser = { ...user, ...authResult }
201 return mergedUser
202 },
203 onSuccess: () => {
204 // Invalidate auth queries to trigger refetch with new credentials
205 queryClient.invalidateQueries({ queryKey: authQueryKeys.all })
206 },
207 onError: (error) => {
208 logger.error(
209 {
210 error: error instanceof Error ? error.message : String(error),
211 errorStack: error instanceof Error ? error.stack : undefined,
212 },
213 '❌ Login mutation failed',
214 )
215 },
216 })
217}
218
219export interface UseLogoutMutationDeps {
220 logoutUser?: () => Promise<boolean>

Callers 1

LoginModalFunction · 0.90

Calls 2

saveUserCredentialsFunction · 0.90
validateApiKeyFunction · 0.85

Tested by

no test coverage detected