1
- import { useCallback , useState } from 'react'
1
+ import { useCallback , useEffect , useState } from 'react'
2
2
3
3
import { useCreateBranchMutation } from '@harnessio/code-service-client'
4
4
import { useToastNotification } from '@harnessio/ui/components'
5
5
import {
6
6
BranchSelectorListItem ,
7
+ BranchSelectorTab ,
7
8
CreateBranchDialog as CreateBranchDialogComp ,
8
9
CreateBranchFormFields
9
10
} from '@harnessio/ui/views'
@@ -16,15 +17,23 @@ interface CreateBranchDialogProps {
16
17
open : boolean
17
18
onClose : ( ) => void
18
19
onSuccess ?: ( ) => void
20
+ preselectedBranchOrTag ?: BranchSelectorListItem | null
21
+ preselectedTab ?: BranchSelectorTab
19
22
}
20
23
21
- export const CreateBranchDialog = ( { open, onClose, onSuccess } : CreateBranchDialogProps ) => {
24
+ export const CreateBranchDialog = ( {
25
+ open,
26
+ onClose,
27
+ onSuccess,
28
+ preselectedBranchOrTag,
29
+ preselectedTab
30
+ } : CreateBranchDialogProps ) => {
22
31
const repo_ref = useGetRepoRef ( )
23
32
24
33
const { t } = useTranslationStore ( )
25
34
const [ selectedBranchOrTag , setSelectedBranchOrTag ] = useState < BranchSelectorListItem | null > ( null )
26
35
27
- const [ createdBranchName , setCreatedBranchName ] = useState < string > ( '' )
36
+ const [ createdBranchName , setCreatedBranchName ] = useState ( '' )
28
37
29
38
const selectBranchOrTag = useCallback ( ( branchTagName : BranchSelectorListItem ) => {
30
39
setSelectedBranchOrTag ( branchTagName )
@@ -38,7 +47,8 @@ export const CreateBranchDialog = ({ open, onClose, onSuccess }: CreateBranchDia
38
47
const {
39
48
mutateAsync : createBranch ,
40
49
error : createBranchError ,
41
- isLoading : isCreatingBranch
50
+ isLoading : isCreatingBranch ,
51
+ reset : resetBranchMutation
42
52
} = useCreateBranchMutation (
43
53
{ } ,
44
54
{
@@ -60,6 +70,18 @@ export const CreateBranchDialog = ({ open, onClose, onSuccess }: CreateBranchDia
60
70
} )
61
71
}
62
72
73
+ useEffect ( ( ) => {
74
+ if ( ! open ) {
75
+ resetBranchMutation ( )
76
+ }
77
+ } , [ open , resetBranchMutation ] )
78
+
79
+ useEffect ( ( ) => {
80
+ if ( preselectedBranchOrTag ) {
81
+ setSelectedBranchOrTag ( preselectedBranchOrTag )
82
+ }
83
+ } , [ open , preselectedBranchOrTag ] )
84
+
63
85
return (
64
86
< CreateBranchDialogComp
65
87
useTranslationStore = { useTranslationStore }
@@ -70,7 +92,11 @@ export const CreateBranchDialog = ({ open, onClose, onSuccess }: CreateBranchDia
70
92
isCreatingBranch = { isCreatingBranch }
71
93
error = { createBranchError ?. message }
72
94
renderProp = { ( ) => (
73
- < BranchSelectorContainer onSelectBranchorTag = { selectBranchOrTag } selectedBranch = { selectedBranchOrTag } />
95
+ < BranchSelectorContainer
96
+ onSelectBranchorTag = { selectBranchOrTag }
97
+ selectedBranch = { selectedBranchOrTag }
98
+ preSelectedTab = { preselectedTab }
99
+ />
74
100
) }
75
101
/>
76
102
)
0 commit comments