1- import { useCallback , useState } from 'react' ;
1+ import { useCallback } from 'react' ;
22import { z } from 'zod' ;
33
44import { Button } from '@sentry/scraps/button' ;
@@ -26,7 +26,6 @@ import type {NewInternalAppApiToken} from 'sentry/types/user';
2626import { getApiUrl } from 'sentry/utils/api/getApiUrl' ;
2727import { handleXhrErrorResponse } from 'sentry/utils/handleXhrErrorResponse' ;
2828import { fetchMutation , useMutation , useQueryClient } from 'sentry/utils/queryClient' ;
29- import type { RequestError } from 'sentry/utils/requestError/requestError' ;
3029import { normalizeUrl } from 'sentry/utils/url/normalizeUrl' ;
3130import { useNavigate } from 'sentry/utils/useNavigate' ;
3231import { displayNewToken } from 'sentry/views/settings/components/newTokenHandler' ;
@@ -70,7 +69,6 @@ function getPermissionsPreview(permissions: Permissions): string {
7069
7170export default function ApiNewToken ( ) {
7271 const [ permissions , setPermissions ] = useState < Permissions > ( { ...INITIAL_PERMISSIONS } ) ;
73- const [ hasNewToken , setHasNewToken ] = useState ( false ) ;
7472 const navigate = useNavigate ( ) ;
7573 const queryClient = useQueryClient ( ) ;
7674
@@ -83,24 +81,19 @@ export default function ApiNewToken() {
8381 value => value === 'no-access'
8482 ) ;
8583
86- const mutation = useMutation <
87- NewInternalAppApiToken ,
88- RequestError ,
89- z . infer < typeof schema >
90- > ( {
91- mutationFn : data =>
84+ const mutation = useMutation ( {
85+ mutationFn : ( data : z . infer < typeof schema > ) =>
9286 fetchMutation < NewInternalAppApiToken > ( {
9387 url : '/api-tokens/' ,
9488 method : 'POST' ,
9589 data : {
9690 ...data ,
97- scopes : permissionStateToList ( permissions ) . filter ( Boolean ) as string [ ] ,
91+ scopes : permissionStateToList ( permissions ) . filter ( v => v !== null ) ,
9892 } ,
9993 } ) ,
10094 onSuccess : token => {
10195 addSuccessMessage ( t ( 'Created personal token.' ) ) ;
10296 queryClient . invalidateQueries ( { queryKey : [ getApiUrl ( '/api-tokens/' ) ] } ) ;
103- setHasNewToken ( true ) ;
10497 displayNewToken ( token . token , handleGoBack ) ;
10598 } ,
10699 onError : error => {
@@ -171,7 +164,7 @@ export default function ApiNewToken() {
171164 </ Panel >
172165 < Flex justify = "end" gap = "md" padding = "md" >
173166 < Button onClick = { handleGoBack } > { t ( 'Cancel' ) } </ Button >
174- < form . SubmitButton disabled = { hasNewToken || allPermissionsNoAccess } >
167+ < form . SubmitButton disabled = { mutation . isSuccess || allPermissionsNoAccess } >
175168 { t ( 'Create Token' ) }
176169 </ form . SubmitButton >
177170 </ Flex >
0 commit comments