@@ -79,9 +79,23 @@ function AdminTraineeDashboard() {
7979 const [ gitHubStatistics , setGitHubStatistics ] = useState < any > ( { } ) ;
8080 const { traineeData, setAllTrainees } = useTraineesContext ( ) || [ ] ;
8181 const [ actionTraineeOptions , setActionTraineeOptions ] = useState < any > ( null ) ;
82+ const modalRef = useRef < any > ( null ) ;
8283
8384 const [ selectedTraineeId , setSelectedTraineeId ] = useState < string [ ] > ( )
8485
86+
87+ useEffect ( ( ) => {
88+ const handleClickOutside = ( event : any ) => {
89+ if ( modalRef . current && ! modalRef . current . contains ( event . target ) ) {
90+ setSelectedRow ( null ) ;
91+ }
92+ } ;
93+ document . addEventListener ( 'mousedown' , handleClickOutside ) ;
94+ return ( ) => {
95+ document . removeEventListener ( 'mousedown' , handleClickOutside ) ;
96+ } ;
97+ } , [ modalRef ] ) ;
98+
8599 function PaperComponent ( props : PaperProps ) {
86100 return (
87101 < Draggable
@@ -280,7 +294,9 @@ function AdminTraineeDashboard() {
280294 onClick = { ( ) => toggleOptions ( row . original . email ) }
281295 />
282296 { selectedRow === row . original . email && (
283- < div className = "absolute z-50 w-64 p-4 mt-2 overflow-hidden border border-gray-300 rounded-lg shadow-md dropdown right-4 bg-light-bg max-h-30 dark:bg-dark-bg" >
297+ < div
298+ ref = { modalRef }
299+ className = "absolute z-50 w-64 p-4 mt-2 overflow-hidden border border-gray-300 rounded-lg shadow-md dropdown right-4 bg-light-bg max-h-30 dark:bg-dark-bg" >
284300 < >
285301 < div className = "mb-4" > </ div >
286302 < div className = "mb-4" >
@@ -1019,7 +1035,7 @@ function AdminTraineeDashboard() {
10191035 data-testid = "removeInviteModel"
10201036 variant = "info"
10211037 size = "sm"
1022- style = "w-[20 %] md:w-1/4 text-sm font-sans"
1038+ style = "w-[40 %] md:w-1/4 text-sm font-sans"
10231039 onClick = { ( ) => handleClose ( ) }
10241040 >
10251041 { t ( 'Close' ) }
@@ -1077,7 +1093,7 @@ function AdminTraineeDashboard() {
10771093 data-testid = "removeInviteModel"
10781094 variant = "info"
10791095 size = "sm"
1080- style = "w-[30 %] md:w-1/4 text-sm font-sans"
1096+ style = "w-[40 %] md:w-1/4 text-sm font-sans"
10811097 onClick = { ( ) => inviteModel ( ) }
10821098 >
10831099 { t ( 'Cancel' ) }
@@ -1086,7 +1102,7 @@ function AdminTraineeDashboard() {
10861102 < Button
10871103 variant = "primary"
10881104 size = "sm"
1089- style = "w-[30 %] md:w-1/4 text-sm font-sans"
1105+ style = "w-[40 %] md:w-1/4 text-sm font-sans"
10901106 onClick = { HandleInvite }
10911107 loading = { buttonLoading }
10921108 >
@@ -1165,15 +1181,15 @@ function AdminTraineeDashboard() {
11651181 data-testid = "removeModel1"
11661182 variant = "info"
11671183 size = "sm"
1168- style = "w-[30 %] md:w-1/4 text-sm font-sans"
1184+ style = "w-[40 %] md:w-1/4 text-sm font-sans"
11691185 onClick = { ( ) => removeEditModel ( ) }
11701186 >
11711187 { t ( 'Cancel' ) }
11721188 </ Button >
11731189 < Button
11741190 variant = "primary"
11751191 size = "sm"
1176- style = "w-[30 %] md:w-1/4 text-sm font-sans"
1192+ style = "w-[40 %] md:w-1/4 text-sm font-sans"
11771193 onClick = { ( ) => {
11781194 setButtonLoading ( true ) ;
11791195 setButtonLoading ( true ) ;
@@ -1223,7 +1239,7 @@ function AdminTraineeDashboard() {
12231239 data-testid = "removeModel2"
12241240 variant = "info"
12251241 size = "sm"
1226- style = "w-[30 %] md:w-1/4 text-sm font-sans"
1242+ style = "w-[40 %] md:w-1/4 text-sm font-sans"
12271243 onClick = { ( ) => removeTraineeMod ( ) }
12281244 >
12291245 { t ( 'Cancel' ) }
@@ -1232,7 +1248,7 @@ function AdminTraineeDashboard() {
12321248 variant = "primary"
12331249 size = "sm"
12341250 data-testid = "removeMemberFromCohort"
1235- style = "w-[30 %] md:w-1/4 text-sm font-sans"
1251+ style = "w-[40 %] md:w-1/4 text-sm font-sans"
12361252 onClick = { ( ) => {
12371253 setButtonLoading ( true ) ;
12381254 if ( deleteEmail && deleteFromCohort ) {
@@ -1310,7 +1326,7 @@ function AdminTraineeDashboard() {
13101326 data-testid = "dropModel"
13111327 variant = "info"
13121328 size = "sm"
1313- style = "w-[30 %] md:w-1/4 text-sm font-sans"
1329+ style = "w-[40 %] md:w-1/4 text-sm font-sans"
13141330 onClick = { ( ) => setDropTraineeModel ( false ) }
13151331 >
13161332 { t ( 'Cancel' ) }
@@ -1320,7 +1336,7 @@ function AdminTraineeDashboard() {
13201336 variant = "primary"
13211337 size = "sm"
13221338 data-testid = "dropMemberFromCohort"
1323- style = "w-[30 %] md:w-1/4 text-sm font-sans"
1339+ style = "w-[40 %] md:w-1/4 text-sm font-sans"
13241340 onClick = { ( ) => {
13251341 setButtonLoading ( true ) ;
13261342
@@ -1411,7 +1427,7 @@ function AdminTraineeDashboard() {
14111427 data-testid = "removeModel"
14121428 variant = "info"
14131429 size = "sm"
1414- style = "w-[30 %] md:w-1/4 text-sm font-sans"
1430+ style = "w-[40 %] md:w-1/4 text-sm font-sans"
14151431 onClick = { ( ) => removeModel ( ) }
14161432 >
14171433 { t ( 'Cancel' ) }
@@ -1420,7 +1436,7 @@ function AdminTraineeDashboard() {
14201436 variant = "primary"
14211437 size = "sm"
14221438 data-testid = "saveButton"
1423- style = "w-[30 %] md:w-1/4 text-sm font-sans"
1439+ style = "w-[40 %] md:w-1/4 text-sm font-sans"
14241440 onClick = { ( ) => {
14251441 if (
14261442 Object . values ( email ) [ 1 ] &&
0 commit comments