@@ -100,7 +100,6 @@ const ListTable = () => {
100100 } , [ data ] )
101101
102102
103-
104103 const pagination = useMemo ( ( ) => {
105104 return generatePagination (
106105 data . recordsFiltered ,
@@ -230,74 +229,81 @@ const ListTable = () => {
230229 cell : ( { row} ) => {
231230 return (
232231 < div className = "text-center" >
233- < DropdownMenu >
234- < DropdownMenuTrigger asChild className = "cursor-pointer" >
235- < Button variant = "outline" size = "icon" >
236- < BetweenHorizontalStart />
237- </ Button >
238- </ DropdownMenuTrigger >
239- < DropdownMenuContent className = "w-46" side = "right" align = "start" >
240- < DropdownMenuGroup >
241- { page . props . header . crudActions ?. editTitle && (
242- < DropdownMenuItem asChild className = "cursor-pointer" >
243- < Link href = { `${ page . props . header . entity . uri } /edit/${ row . original . id } ` } onClick = { ( ) => {
244- localStorage . setItem ( 'backUrl' , window . location . pathname + window . location . search )
245- } } >
246- < Icon iconNode = { Pencil } />
247- { page . props . header . crudActions . editTitle }
248- </ Link >
249- </ DropdownMenuItem >
250- ) }
251- { page . props . header . crudActions ?. viewsTitle && (
252- < DropdownMenuItem asChild className = "cursor-pointer" >
253- < Link href = { `${ page . props . header . entity . uri } /view/${ row . original . id } ` } >
254- < Icon iconNode = { Eye } />
255- { page . props . header . crudActions . viewsTitle }
256- </ Link >
257- </ DropdownMenuItem >
258- ) }
259- { page . props . header . crudActions ?. deleteTitle && (
260- < DropdownMenuItem asChild className = "cursor-pointer" >
261- < DeleteModal btnTitle = { page . props . header . crudActions . deleteTitle }
262- delModal = { page . props . header . delModal }
263- btnCLass = "font-normal text-destructive hover:text-destructive w-full cursor-pointer justify-start"
264- link = { `${ page . props . header . entity . uri } /remove/${ row . original . id } ?referTo=${ encodeURIComponent ( window . location . search ) } ` } />
265- </ DropdownMenuItem >
266- ) }
267- </ DropdownMenuGroup >
268- { page . props . header . inlineActions && page . props . header . inlineActions . length > 0 && (
269- < >
270- < DropdownMenuSeparator />
271- { page . props . header . inlineActions . map ( ( action : Action ) => (
272- < DropdownMenuItem
273- key = { action . id }
274- asChild
275- className = "cursor-pointer"
276- >
277- { action . type === 'blank' ? (
278- < a target = "_blank"
279- href = { action . link }
280- >
281- { action . icon && < MaterialIcon name = { action . icon }
282- className = "!text-[18px] mr-2" /> }
283- < span > { action . title } </ span >
284- </ a >
285- ) : (
286- < Link
287- href = { `${ action . link } /${ row . original . id } ?id=${ row . original . id } &entity=${ page . props . header . entity . name } ` }
288- >
289- { action . icon && < MaterialIcon name = { action . icon }
290- className = "!text-[18px] mr-2" /> }
291- < span > { action . title } </ span >
292- </ Link >
293- ) }
294-
232+ { ( [ 'deleteTitle' , 'viewsTitle' , 'editTitle' ] as const ) . some ( key =>
233+ page . props . header . crudActions ?. [ key ] && page . props . header . crudActions ?. [ key ] . trim ( ) !== ''
234+ ) &&
235+ < DropdownMenu >
236+ < DropdownMenuTrigger asChild className = "cursor-pointer" >
237+ < Button variant = "outline" size = "icon" >
238+ < BetweenHorizontalStart />
239+ </ Button >
240+ </ DropdownMenuTrigger >
241+ < DropdownMenuContent className = "w-46" side = "right" align = "start" >
242+ < DropdownMenuGroup >
243+ { page . props . header . crudActions ?. editTitle && (
244+ < DropdownMenuItem asChild className = "cursor-pointer" >
245+ < Link
246+ href = { `${ page . props . header . entity . uri } /edit/${ row . original . id } ` }
247+ onClick = { ( ) => {
248+ localStorage . setItem ( 'backUrl' , window . location . pathname + window . location . search )
249+ } } >
250+ < Icon iconNode = { Pencil } />
251+ { page . props . header . crudActions . editTitle }
252+ </ Link >
253+ </ DropdownMenuItem >
254+ ) }
255+ { page . props . header . crudActions ?. viewsTitle && (
256+ < DropdownMenuItem asChild className = "cursor-pointer" >
257+ < Link
258+ href = { `${ page . props . header . entity . uri } /view/${ row . original . id } ` } >
259+ < Icon iconNode = { Eye } />
260+ { page . props . header . crudActions . viewsTitle }
261+ </ Link >
295262 </ DropdownMenuItem >
296- ) ) }
297- </ >
298- ) }
299- </ DropdownMenuContent >
300- </ DropdownMenu >
263+ ) }
264+ { page . props . header . crudActions ?. deleteTitle && (
265+ < DropdownMenuItem asChild className = "cursor-pointer" >
266+ < DeleteModal btnTitle = { page . props . header . crudActions . deleteTitle }
267+ delModal = { page . props . header . delModal }
268+ btnCLass = "font-normal text-destructive hover:text-destructive w-full cursor-pointer justify-start"
269+ link = { `${ page . props . header . entity . uri } /remove/${ row . original . id } ?referTo=${ encodeURIComponent ( window . location . search ) } ` } />
270+ </ DropdownMenuItem >
271+ ) }
272+ </ DropdownMenuGroup >
273+ { page . props . header . inlineActions && page . props . header . inlineActions . length > 0 && (
274+ < >
275+ < DropdownMenuSeparator />
276+ { page . props . header . inlineActions . map ( ( action : Action ) => (
277+ < DropdownMenuItem
278+ key = { action . id }
279+ asChild
280+ className = "cursor-pointer"
281+ >
282+ { action . type === 'blank' ? (
283+ < a target = "_blank"
284+ href = { action . link }
285+ >
286+ { action . icon && < MaterialIcon name = { action . icon }
287+ className = "!text-[18px] mr-2" /> }
288+ < span > { action . title } </ span >
289+ </ a >
290+ ) : (
291+ < Link
292+ href = { `${ action . link } /${ row . original . id } ?id=${ row . original . id } &entity=${ page . props . header . entity . name } ` }
293+ >
294+ { action . icon && < MaterialIcon name = { action . icon }
295+ className = "!text-[18px] mr-2" /> }
296+ < span > { action . title } </ span >
297+ </ Link >
298+ ) }
299+
300+ </ DropdownMenuItem >
301+ ) ) }
302+ </ >
303+ ) }
304+ </ DropdownMenuContent >
305+ </ DropdownMenu >
306+ }
301307 </ div >
302308 )
303309 }
0 commit comments