@@ -7,22 +7,18 @@ import Dialog from '@mui/material/Dialog';
7
7
import DialogActions from '@mui/material/DialogActions' ;
8
8
import DialogContent from '@mui/material/DialogContent' ;
9
9
import DialogContentText from '@mui/material/DialogContentText' ;
10
- import Slide from '@mui/material/Slide' ;
11
10
import MoreVert from '@mui/icons-material/MoreVert' ;
12
11
import { graphql } from 'react-relay' ;
13
12
import ToggleButton from '@mui/material/ToggleButton' ;
13
+ import IconButton from '@mui/material/IconButton' ;
14
14
import { useFormatter } from '../../../../components/i18n' ;
15
15
import { QueryRenderer } from '../../../../relay/environment' ;
16
16
import { opinionEditionQuery } from './OpinionEdition' ;
17
17
import { CollaborativeSecurity } from '../../../../utils/Security' ;
18
18
import { KNOWLEDGE_KNUPDATE_KNDELETE } from '../../../../utils/hooks/useGranted' ;
19
19
import OpinionEditionContainer from './OpinionEditionContainer' ;
20
20
import useApiMutation from '../../../../utils/hooks/useApiMutation' ;
21
-
22
- const Transition = React . forwardRef ( ( props , ref ) => (
23
- < Slide direction = "up" ref = { ref } { ...props } />
24
- ) ) ;
25
- Transition . displayName = 'TransitionSlide' ;
21
+ import Transition from '../../../../components/Transition' ;
26
22
27
23
const OpinionPopoverDeletionMutation = graphql `
28
24
mutation OpinionPopoverDeletionMutation($id: ID!) {
@@ -32,7 +28,7 @@ const OpinionPopoverDeletionMutation = graphql`
32
28
}
33
29
` ;
34
30
35
- const OpinionPopover = ( data ) => {
31
+ const OpinionPopover = ( { opinion , variant = 'overview' } ) => {
36
32
const navigate = useNavigate ( ) ;
37
33
const { t_i18n } = useFormatter ( ) ;
38
34
const [ anchorEl , setAnchorEl ] = useState ( null ) ;
@@ -50,11 +46,13 @@ const OpinionPopover = (data) => {
50
46
const submitDelete = ( ) => {
51
47
setDeleting ( true ) ;
52
48
commit ( {
53
- variables : { id : data . id } ,
49
+ variables : { id : opinion . id } ,
54
50
onCompleted : ( ) => {
55
51
setDeleting ( false ) ;
56
52
handleClose ( ) ;
57
- navigate ( '/dashboard/analyses/opinions' ) ;
53
+ if ( variant !== 'inList' ) {
54
+ navigate ( '/dashboard/analyses/opinions' ) ;
55
+ }
58
56
} ,
59
57
} ) ;
60
58
} ;
@@ -65,17 +63,29 @@ const OpinionPopover = (data) => {
65
63
const handleCloseEdit = ( ) => setDisplayEdit ( false ) ;
66
64
return (
67
65
< >
68
- < ToggleButton
69
- value = "popover"
70
- size = "small"
71
- onClick = { handleOpen }
72
- >
73
- < MoreVert fontSize = "small" color = "primary" />
74
- </ ToggleButton >
66
+ { variant === 'inList' ? (
67
+ < IconButton
68
+ onClick = { handleOpen }
69
+ aria-haspopup = "true"
70
+ size = "large"
71
+ style = { { marginTop : 3 } }
72
+ color = "primary"
73
+ >
74
+ < MoreVert />
75
+ </ IconButton >
76
+ ) : (
77
+ < ToggleButton
78
+ value = "popover"
79
+ size = "small"
80
+ onClick = { handleOpen }
81
+ >
82
+ < MoreVert fontSize = "small" color = "primary" />
83
+ </ ToggleButton >
84
+ ) }
75
85
< Menu anchorEl = { anchorEl } open = { Boolean ( anchorEl ) } onClose = { handleClose } >
76
- < MenuItem onClick = { handleOpenEdit } > { t_i18n ( 'Update' ) } </ MenuItem >
86
+ { variant !== 'inList' && < MenuItem onClick = { handleOpenEdit } > { t_i18n ( 'Update' ) } </ MenuItem > }
77
87
< CollaborativeSecurity
78
- data = { data . opinion }
88
+ data = { opinion }
79
89
needs = { [ KNOWLEDGE_KNUPDATE_KNDELETE ] }
80
90
>
81
91
< MenuItem onClick = { handleOpenDelete } > { t_i18n ( 'Delete' ) } </ MenuItem >
@@ -89,7 +99,7 @@ const OpinionPopover = (data) => {
89
99
>
90
100
< DialogContent >
91
101
< DialogContentText >
92
- { t_i18n ( 'Do you want to delete this opinions ?' ) }
102
+ { t_i18n ( 'Do you want to delete this opinion ?' ) }
93
103
</ DialogContentText >
94
104
</ DialogContent >
95
105
< DialogActions >
@@ -101,22 +111,24 @@ const OpinionPopover = (data) => {
101
111
</ Button >
102
112
</ DialogActions >
103
113
</ Dialog >
104
- < QueryRenderer
105
- query = { opinionEditionQuery }
106
- variables = { { id : data . id } }
107
- render = { ( { props } ) => {
108
- if ( props ) {
109
- return (
110
- < OpinionEditionContainer
111
- opinion = { props . opinion }
112
- handleClose = { handleCloseEdit }
113
- open = { displayEdit }
114
- />
115
- ) ;
116
- }
117
- return < div /> ;
118
- } }
119
- />
114
+ { variant !== 'inList' && (
115
+ < QueryRenderer
116
+ query = { opinionEditionQuery }
117
+ variables = { { id : opinion . id } }
118
+ render = { ( { props } ) => {
119
+ if ( props ) {
120
+ return (
121
+ < OpinionEditionContainer
122
+ opinion = { props . opinion }
123
+ handleClose = { handleCloseEdit }
124
+ open = { displayEdit }
125
+ />
126
+ ) ;
127
+ }
128
+ return < div /> ;
129
+ } }
130
+ />
131
+ ) }
120
132
</ >
121
133
) ;
122
134
} ;
0 commit comments