@@ -37,7 +37,7 @@ import {
3737
3838import { StatusBadge } from "../shared/StatusBadge" ;
3939import { columns } from "./columns" ;
40- import { EditableRow , Role } from "./EditableRow " ;
40+ import { EditDialog , Role } from "../EditDialog " ;
4141import { TableActions } from "./TableActions" ;
4242import { InHouseMobileTable } from "./InHouseMobileTable" ;
4343import InHousePreviewSidebar from "./InHousePreviewSidebar" ;
@@ -133,7 +133,7 @@ export function InHouseTable({
133133 onSort,
134134} : InHouseTableProps ) {
135135 const [ supabase , setSupabase ] = useState < any > ( null ) ;
136- const [ editingId , setEditingId ] = useState < string | null > ( null ) ;
136+ const [ editingMember , setEditingMember ] = useState < Codev | null > ( null ) ;
137137 const [ roles , setRoles ] = useState < Role [ ] > ( [ ] ) ;
138138 const [ selectedMember , setSelectedMember ] = useState < Codev | null > ( null ) ;
139139
@@ -353,7 +353,7 @@ export function InHouseTable({
353353 data = { data }
354354 onDataChange = { onDataChange }
355355 onDelete = { handleDelete }
356- onEdit = { setEditingId }
356+ onEdit = { setEditingMember }
357357 roles = { roles }
358358 handleSendNdaEmail = { handleSendNdaEmail }
359359 handleDownloadNda = { handleDownloadNda }
@@ -391,15 +391,15 @@ export function InHouseTable({
391391 /* COMPACT: Name columns - medium width */
392392 < TableHead
393393 key = { column . key }
394- className = "dark:text-light-900 w-24 px-2 py-2 text-xs font-bold text-black"
394+ className = "dark:text-light-900 w-32 px-2 py-2 text-xs font-bold text-black"
395395 >
396396 { column . label }
397397 </ TableHead >
398398 ) : column . key === "email_address" ? (
399- /* COMPACT: Email column - larger width */
399+ /* COMPACT: Email column - flexible width to fill available space */
400400 < TableHead
401401 key = { column . key }
402- className = "dark:text-light-900 w-40 px-2 py-2 text-xs font-bold text-black"
402+ className = "dark:text-light-900 px-2 py-2 text-xs font-bold text-black"
403403 >
404404 { column . label }
405405 </ TableHead >
@@ -447,85 +447,75 @@ export function InHouseTable({
447447 </ TableHeader >
448448
449449 < TableBody >
450- { data . map ( ( item ) =>
451- editingId === item . id ? (
452- < EditableRow
453- key = { item . id }
454- data = { item }
455- onSave = { ( updatedItem ) => {
456- onDataChange ( updatedItem ) ;
457- setEditingId ( null ) ;
458- } }
459- onCancel = { ( ) => setEditingId ( null ) }
460- roles = { roles }
461- />
462- ) : (
463- < TableRow
464- key = { item . id }
465- onClick = { ( ) => setSelectedMember ( item ) }
466- className = "cursor-pointer border-light-700 dark:border-dark-200 hover:bg-light-800 dark:hover:bg-dark-300 odd:dark:bg-dark-200 odd:bg-grey-100/10 border-b"
467- >
468- { /* COMPACT: Avatar px-6 → px-2, h-10 w-10 → h-8 w-8 */ }
469- < TableCell className = "dark:text-light-900 px-2 py-2 text-xs text-black" >
470- < div className = "h-8 w-8 overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700" >
471- < Image
472- src = { item . image_url || defaultImage }
473- alt = { `${ item . first_name } avatar` }
474- width = { 32 }
475- height = { 32 }
476- unoptimized = { true }
477- className = "h-full w-full object-cover"
478- />
479- </ div >
480- </ TableCell >
481-
482- { /* COMPACT: First Name px-6 → px-2, text-base → text-xs */ }
483- < TableCell className = "dark:text-light-900 px-2 py-2 text-xs text-black" >
484- { capitalize ( item . first_name ) }
485- </ TableCell >
486-
487- { /* COMPACT: Last Name px-6 → px-2, text-base → text-xs */ }
488- < TableCell className = "dark:text-light-900 px-2 py-2 text-xs text-black" >
489- { capitalize ( item . last_name ) }
490- </ TableCell >
491-
492- { /* COMPACT: Email px-5 → px-2, text-base → text-xs */ }
493- < TableCell className = "dark:text-light-900 px-2 py-2 text-xs text-black" >
494- { item . email_address }
495- </ TableCell >
496-
497- { /* COMPACT: All desktop columns px-4 → px-2, py-3 → py-2, text-base → text-xs */ }
498- < TableCell className = "dark:text-light-900 px-2 py-2 text-xs text-black" >
499- { item . role_id
500- ? roles . find ( ( role ) => role . id === item . role_id ) ?. name ||
501- "-"
502- : "-" }
503- </ TableCell >
504-
505- < TableCell className = "dark:text-light-900 px-2 py-2 text-xs text-black" >
506- { typeof item . display_position === "string"
507- ? capitalize ( item . display_position )
508- : "-" }
509- </ TableCell >
510-
511- < TableCell className = "px-2 py-2" >
512- < StatusBadge
513- status = { item . internal_status as InternalStatus }
450+ { data . map ( ( item ) => (
451+ < TableRow
452+ key = { item . id }
453+ onClick = { ( ) => setSelectedMember ( item ) }
454+ className = "cursor-pointer border-light-700 dark:border-dark-200 hover:bg-light-800 dark:hover:bg-dark-300 odd:dark:bg-dark-200 odd:bg-grey-100/10 border-b"
455+ >
456+ { /* Avatar */ }
457+ < TableCell className = "dark:text-light-900 px-2 py-2 text-xs text-black" >
458+ < div className = "h-8 w-8 overflow-hidden rounded-full bg-gray-200 dark:bg-gray-700" >
459+ < Image
460+ src = { item . image_url || defaultImage }
461+ alt = { `${ item . first_name } avatar` }
462+ width = { 32 }
463+ height = { 32 }
464+ unoptimized = { true }
465+ className = "h-full w-full object-cover"
514466 />
515- </ TableCell >
516-
517- < TableCell className = "px-2 py-2" >
518- < div onClick = { ( e ) => e . stopPropagation ( ) } >
519- < TableActions
520- item = { item }
521- onEdit = { ( ) => setEditingId ( item . id ) }
522- onDelete = { ( ) => handleDelete ( item . id ) }
523- />
524- </ div >
525- </ TableCell >
526- </ TableRow >
527- ) ,
528- ) }
467+ </ div >
468+ </ TableCell >
469+
470+ { /* First Name */ }
471+ < TableCell className = "dark:text-light-900 px-2 py-2 text-xs text-black" >
472+ { capitalize ( item . first_name ) }
473+ </ TableCell >
474+
475+ { /* Last Name */ }
476+ < TableCell className = "dark:text-light-900 px-2 py-2 text-xs text-black" >
477+ { capitalize ( item . last_name ) }
478+ </ TableCell >
479+
480+ { /* Email */ }
481+ < TableCell className = "dark:text-light-900 px-2 py-2 text-xs text-black" >
482+ { item . email_address }
483+ </ TableCell >
484+
485+ { /* Role */ }
486+ < TableCell className = "dark:text-light-900 px-2 py-2 text-xs text-black" >
487+ { item . role_id
488+ ? roles . find ( ( role ) => role . id === item . role_id ) ?. name ||
489+ "-"
490+ : "-" }
491+ </ TableCell >
492+
493+ { /* Position */ }
494+ < TableCell className = "dark:text-light-900 px-2 py-2 text-xs text-black" >
495+ { typeof item . display_position === "string"
496+ ? capitalize ( item . display_position )
497+ : "-" }
498+ </ TableCell >
499+
500+ { /* Status Badge */ }
501+ < TableCell className = "px-2 py-2" >
502+ < StatusBadge
503+ status = { item . internal_status as InternalStatus }
504+ />
505+ </ TableCell >
506+
507+ { /* Actions */ }
508+ < TableCell className = "px-2 py-2" >
509+ < div onClick = { ( e ) => e . stopPropagation ( ) } >
510+ < TableActions
511+ item = { item }
512+ onEdit = { ( ) => setEditingMember ( item ) }
513+ onDelete = { ( ) => handleDelete ( item . id ) }
514+ />
515+ </ div >
516+ </ TableCell >
517+ </ TableRow >
518+ ) ) }
529519 </ TableBody >
530520 </ Table >
531521 </ div >
@@ -543,6 +533,20 @@ export function InHouseTable({
543533 ) }
544534 </ div >
545535 ) }
536+
537+ { /* Edit Dialog */ }
538+ { editingMember && (
539+ < EditDialog
540+ isOpen = { ! ! editingMember }
541+ onClose = { ( ) => setEditingMember ( null ) }
542+ data = { editingMember }
543+ onSave = { ( updatedMember ) => {
544+ onDataChange ( updatedMember ) ;
545+ setEditingMember ( null ) ;
546+ } }
547+ roles = { roles }
548+ />
549+ ) }
546550 </ div >
547551 ) ;
548552}
0 commit comments