@@ -16,6 +16,7 @@ import {
1616 Popover ,
1717 Checkbox ,
1818 Switch ,
19+ AutoComplete ,
1920} from "antd" ;
2021import axios from "axios" ;
2122import {
@@ -66,6 +67,9 @@ const TemplateStore = () => {
6667 const [ templateSourceTypeFilter , setTemplateSourceTypeFilter ] =
6768 useState < string [ ] > ( sourceTypeFilter ) ;
6869
70+ const [ repoRevisions , setRepoRevisions ] = useState < string [ ] > ( [ ] ) ;
71+ const [ repoRevisionOptions , setRepoRevisionOptions ] = useState ( [ ] ) ;
72+
6973 const [ addForm ] = Form . useForm ( ) ;
7074 const [ editForm ] = Form . useForm ( ) ;
7175 const [ notificationApi , contextHolder ] = notification . useNotification ( ) ;
@@ -346,6 +350,27 @@ const TemplateStore = () => {
346350 ) ;
347351 } ;
348352
353+ const fetchRepoRevisions = ( e ) => {
354+ axios
355+ . get ( `/api/templates/revisions?repo=` + e . target . value )
356+ . then ( ( res ) => {
357+ setRepoRevisions ( res . data ) ;
358+ } )
359+ . catch ( ( ) => { } ) ;
360+ } ;
361+
362+ const handleRepoInput = ( value ) => {
363+ if ( repoRevisions . length === 0 ) {
364+ setRepoRevisionOptions ( [ ] ) ;
365+ return ;
366+ }
367+
368+ const filtered = repoRevisions
369+ . filter ( ( item ) => item . toLowerCase ( ) . includes ( value . toLowerCase ( ) ) )
370+ . map ( ( item ) => ( { value : item } ) ) ;
371+ setRepoRevisionOptions ( filtered ) ;
372+ } ;
373+
349374 return (
350375 < div >
351376 { error . message . length !== 0 && (
@@ -636,7 +661,7 @@ const TemplateStore = () => {
636661 rules = { [ { required : true , message : "Repo URL is required" } ] }
637662 style = { { marginBottom : "12px" } }
638663 >
639- < Input />
664+ < Input onBlur = { fetchRepoRevisions } />
640665 </ Form . Item >
641666
642667 < Form . Item
@@ -653,7 +678,13 @@ const TemplateStore = () => {
653678 name = { [ "ref" , "version" ] }
654679 style = { { marginBottom : "12px" } }
655680 >
656- < Input />
681+ < AutoComplete
682+ options = { repoRevisionOptions }
683+ onSearch = { handleRepoInput }
684+ allowClear
685+ >
686+ < Input />
687+ </ AutoComplete >
657688 </ Form . Item >
658689
659690 { advancedTemplateGitOpsWrite ( ) }
0 commit comments