@@ -12,22 +12,31 @@ import { ReactComponent as Close } from '../../assets/icons/ic-close.svg'
1212import { ReactComponent as Error } from '../../assets/icons/ic-warning.svg'
1313import { ReactComponent as CheckIcon } from '../../assets/icons/ic-check.svg'
1414import { ReactComponent as Abort } from '../../assets/icons/ic-abort.svg'
15- import { CreateGroupType , CreateTypeOfAppListType } from './AppGroup.types'
15+ import { CreateGroupType , CreateTypeOfAppListType , FilterParentType } from './AppGroup.types'
1616import SearchBar from './SearchBar'
1717import { CreateGroupTabs , CREATE_GROUP_TABS } from './Constants'
1818import { toast } from 'react-toastify'
1919import { createEnvGroup } from './AppGroup.service'
2020import { useParams } from 'react-router-dom'
2121import Tippy from '@tippyjs/react'
22+ import { filter } from 'rxjs'
2223
23- export default function CreateAppGroup ( { appList, selectedAppGroup, closePopup, unAuthorizedApps } : CreateGroupType ) {
24- const { envId } = useParams < { envId : string } > ( )
24+ export default function CreateAppGroup ( {
25+ appList,
26+ selectedAppGroup,
27+ closePopup,
28+ unAuthorizedApps,
29+ filterParentType,
30+ } : CreateGroupType ) {
31+ const { appId, envId } = useParams < { appId : string ; envId : string } > ( )
2532 const CreateGroupRef = useRef < HTMLDivElement > ( null )
2633 const [ isLoading , setLoading ] = useState ( false )
2734 const [ showErrorMsg , setShowErrorMsg ] = useState ( false )
2835 const [ appGroupName , setAppGroupName ] = useState < string > ( selectedAppGroup ?. label ?? '' )
2936 const [ appGroupDescription , setAppGroupDescription ] = useState < string > ( selectedAppGroup ?. description ?? '' )
30- const [ selectedTab , setSelectedTab ] = useState < CreateGroupTabs > ( CreateGroupTabs . SELECTED_APPS )
37+ const [ selectedTab , setSelectedTab ] = useState < CreateGroupTabs > (
38+ filterParentType === FilterParentType . app ? CreateGroupTabs . SELECTED_ENV : CreateGroupTabs . SELECTED_APPS ,
39+ )
3140 const [ allAppSearchText , setAllAppSearchText ] = useState ( '' )
3241 const [ allAppSearchApplied , setAllAppSearchApplied ] = useState ( false )
3342 const [ selectedAppSearchText , setSelectedAppSearchText ] = useState ( '' )
@@ -109,8 +118,8 @@ export default function CreateAppGroup({ appList, selectedAppGroup, closePopup,
109118 const appFilterAuthorizedList = ( ) => {
110119 let _authorizedApp = [ ]
111120 appList . forEach ( ( app ) => {
112- if ( ! unAuthorizedApps . get ( app . appName ) ) {
113- _authorizedApp . push ( { id : app . id , appName : app . appName } )
121+ if ( ! unAuthorizedApps . get ( app . appName ) ) {
122+ _authorizedApp . push ( { id : app . id , appName : app . appName } )
114123 }
115124 } )
116125 setAuthorizedAppList ( _authorizedApp )
@@ -134,11 +143,11 @@ export default function CreateAppGroup({ appList, selectedAppGroup, closePopup,
134143 const appFilterList = ( ) => {
135144 let _authorizedAppList = [ ]
136145 let _unauthorizedAppList = [ ]
137- appList . forEach ( ( app ) => {
138- unAuthorizedApps . get ( app . appName ) ?
139- _unauthorizedAppList . push ( { id : app . id , appName : app . appName } )
140- : _authorizedAppList . push ( { id : app . id , appName : app . appName } )
141- } )
146+ appList . forEach ( ( app ) => {
147+ unAuthorizedApps . get ( app . appName )
148+ ? _unauthorizedAppList . push ( { id : app . id , appName : app . appName } )
149+ : _authorizedAppList . push ( { id : app . id , appName : app . appName } )
150+ } )
142151 setUnauthorizedAppList ( _unauthorizedAppList )
143152 setAuthorizedAppList ( _authorizedAppList )
144153 }
@@ -232,7 +241,7 @@ export default function CreateAppGroup({ appList, selectedAppGroup, closePopup,
232241 arrow = { false }
233242 placement = "bottom-start"
234243 content = "You don't have admin/manager pemission for this app."
235- >
244+ >
236245 < div > { children } </ div >
237246 </ Tippy >
238247 ) }
@@ -328,16 +337,29 @@ export default function CreateAppGroup({ appList, selectedAppGroup, closePopup,
328337 </ div >
329338 < div >
330339 < ul role = "tablist" className = "tab-list dc__border-bottom mb-8" >
331- { renderTabItem ( CreateGroupTabs . SELECTED_APPS , selectedAppsCount ) }
332- { renderTabItem ( CreateGroupTabs . ALL_APPS , appList . length ) }
340+ { renderTabItem (
341+ filterParentType === FilterParentType . app
342+ ? CreateGroupTabs . SELECTED_ENV
343+ : CreateGroupTabs . SELECTED_APPS ,
344+ selectedAppsCount ,
345+ ) }
346+ { renderTabItem (
347+ filterParentType === FilterParentType . app
348+ ? CreateGroupTabs . ALL_ENV
349+ : CreateGroupTabs . ALL_APPS ,
350+ appList . length ,
351+ ) }
333352 </ ul >
334- { selectedTab === CreateGroupTabs . SELECTED_APPS ? renderSelectedApps ( ) : renderAllApps ( ) }
353+
354+ { selectedTab === CreateGroupTabs . SELECTED_APPS || selectedTab === CreateGroupTabs . SELECTED_ENV
355+ ? renderSelectedApps ( )
356+ : renderAllApps ( ) }
335357 </ div >
336358 </ div >
337359 )
338360 }
339361
340- const handleSave = async ( e ) : Promise < void > => {
362+ const handleSave = async ( e ) : Promise < void > => {
341363 e . preventDefault ( )
342364 if ( ! appGroupName || appGroupDescription ?. length > 50 ) {
343365 return
@@ -351,7 +373,7 @@ export default function CreateAppGroup({ appList, selectedAppGroup, closePopup,
351373 for ( const _appId in selectedAppsMap ) {
352374 _selectedAppIds . push ( + _appId )
353375 }
354-
376+
355377 let appListIds = [ ]
356378 appList . forEach ( ( element ) => {
357379 if ( ! unAuthorizedApps . get ( element . appName ) ) {
@@ -369,11 +391,13 @@ export default function CreateAppGroup({ appList, selectedAppGroup, closePopup,
369391 id : selectedAppGroup ? + selectedAppGroup . value : null ,
370392 name : appGroupName ,
371393 description : appGroupDescription ,
372- appIds : payloadAppIds ,
394+ resourceIds : payloadAppIds ,
395+ groupType : filterParentType ,
373396 }
374397
375398 try {
376- const { result } = await createEnvGroup ( envId , payload , ! ! selectedAppGroup ?. value )
399+ const id = filterParentType === FilterParentType . app ? appId : envId
400+ const { result } = await createEnvGroup ( id , payload , ! ! selectedAppGroup ?. value )
377401 toast . success ( 'Successfully saved' )
378402 closePopup ( e , result . id )
379403 } catch ( err ) {
0 commit comments