11// Libraries
2- import React , { FC , useState } from 'react'
2+ import React , { FC , useEffect , useState } from 'react'
33import { connect , ConnectedProps } from 'react-redux'
44import 'src/authorizations/components/redesigned/customApiTokenOverlay.scss'
55
@@ -27,9 +27,11 @@ import {Authorization} from 'src/types'
2727
2828// Actions
2929import { updateAuthorization } from 'src/authorizations/actions/thunks'
30+ import { getTelegraf } from 'src/telegrafs/actions/thunks'
3031
3132// Utills
3233import { formatPermissionsObj } from 'src/authorizations/utils/permissions'
34+ import _ from 'lodash'
3335interface OwnProps {
3436 auth : Authorization
3537 onDismissOverlay : ( ) => void
@@ -51,6 +53,32 @@ const EditTokenOverlay: FC<Props> = props => {
5153 props . auth . status === 'active'
5254 )
5355 const [ label , setlabel ] = useState ( props . auth . status )
56+ const [ permissions , setPermissions ] = useState ( [ ] )
57+
58+ useEffect ( ( ) => {
59+ if ( _ . isEmpty ( permissions ) ) {
60+ formatPermissions ( )
61+ }
62+ } , [ ] )
63+
64+ const formatPermissions = async ( ) => {
65+ const {
66+ auth : { permissions} ,
67+ } = props
68+ const newPerms = permissions
69+
70+ for ( let i = 0 ; i < permissions . length ; i ++ ) {
71+ const name = permissions [ i ] . resource . name
72+ if ( ! name ) {
73+ if ( permissions [ i ] . resource . type === 'telegrafs' ) {
74+ const telegraf = await props . getTelegraf ( permissions [ i ] . resource . id )
75+ newPerms [ i ] . resource . name = telegraf
76+ }
77+ }
78+ }
79+
80+ setPermissions ( newPerms )
81+ }
5482
5583 const handleInputChange = event => {
5684 setDescription ( event . target . value )
@@ -148,7 +176,7 @@ const EditTokenOverlay: FC<Props> = props => {
148176 </ FlexBox . Child >
149177 </ FlexBox >
150178 < EditResourceAccordion
151- permissions = { formatPermissionsObj ( props . auth . permissions ) }
179+ permissions = { formatPermissionsObj ( permissions ) }
152180 />
153181 </ FlexBox . Child >
154182 < Page . ControlBarCenter >
@@ -176,6 +204,7 @@ const EditTokenOverlay: FC<Props> = props => {
176204
177205const mdtp = {
178206 updateAuthorization,
207+ getTelegraf,
179208}
180209
181210const connector = connect ( null , mdtp )
0 commit comments