@@ -42,13 +42,12 @@ interface EditableRowProps {
4242}
4343
4444/**
45- * ENHANCED EditableRow - Team Lead Feedback Applied
46- *
45+ * COMPACT EditableRow - Minimized to Match Table Layout
46+ *
4747 * CHANGES:
48- * - Matching spacing with InHouseTable
49- * - First 3 columns: px-6 py-3
50- * - Email column: px-5 py-3
51- * - Other columns: px-4 py-3
48+ * - Reduced all padding to px-2 py-2 to match compact table design
49+ * - Smaller input fields and selects
50+ * - No horizontal scroll
5251 */
5352export function EditableRow ( {
5453 data,
@@ -197,13 +196,13 @@ export function EditableRow({
197196 < img
198197 src = { uploadedImage }
199198 alt = "Profile"
200- className = "border-light-700 dark:border-dark-200 h-10 w-10 rounded-full border object-cover"
199+ className = "border-light-700 dark:border-dark-200 h-8 w-8 rounded-full border object-cover"
201200 />
202201 < label
203202 htmlFor = "upload-avatar"
204- className = "absolute bottom-0 right-0 cursor-pointer rounded-full bg-gray-200 p-0.5 hover:bg-gray-300 dark:bg-gray-800 dark:hover:bg-gray-700"
203+ className = "absolute - bottom-0.5 - right-0.5 cursor-pointer rounded-full bg-gray-200 p-0.5 hover:bg-gray-300 dark:bg-gray-800 dark:hover:bg-gray-700"
205204 >
206- < Plus className = "h-4 w-4 text-gray-700 dark:text-gray-300" />
205+ < Plus className = "h-2.5 w-2.5 text-gray-700 dark:text-gray-300" />
207206 < input
208207 id = "upload-avatar"
209208 type = "file"
@@ -220,9 +219,9 @@ export function EditableRow({
220219 ) : (
221220 < label
222221 htmlFor = "upload-avatar"
223- className = "inline-flex cursor-pointer items-center justify-center rounded-full bg-gray-200 p-2 hover:bg-gray-300 dark:bg-gray-800 dark:hover:bg-gray-700"
222+ className = "inline-flex h-8 w-8 cursor-pointer items-center justify-center rounded-full bg-gray-200 p-1 hover:bg-gray-300 dark:bg-gray-800 dark:hover:bg-gray-700"
224223 >
225- < Upload className = "h-5 w-5 text-gray-700 dark:text-gray-300" />
224+ < Upload className = "h-4 w-4 text-gray-700 dark:text-gray-300" />
226225 < input
227226 id = "upload-avatar"
228227 type = "file"
@@ -248,10 +247,10 @@ export function EditableRow({
248247 }
249248 disabled = { isSubmitting || isUploading }
250249 >
251- < SelectTrigger className = "border-light-700 dark:border-dark-200 bg-light-800 dark:bg-dark-300 border text-black dark:text-white" >
250+ < SelectTrigger className = "border-light-700 dark:border-dark-200 bg-light-800 dark:bg-dark-300 h-8 border text-xs text-black dark:text-white" >
252251 < SelectValue placeholder = "Select status" />
253252 </ SelectTrigger >
254- < SelectContent className = "bg-light-800 dark:bg-dark-300 text-black dark:text-white" >
253+ < SelectContent className = "bg-light-800 dark:bg-dark-300 text-xs text- black dark:text-white" >
255254 { Object . entries ( INTERNAL_STATUS ) . map ( ( [ key , label ] ) => (
256255 < SelectItem key = { key } value = { key } >
257256 { label }
@@ -270,10 +269,10 @@ export function EditableRow({
270269 }
271270 disabled = { isSubmitting || isUploading }
272271 >
273- < SelectTrigger className = "border-light-700 dark:border-dark-200 bg-light-800 dark:bg-dark-300 border text-black dark:text-white" >
272+ < SelectTrigger className = "border-light-700 dark:border-dark-200 bg-light-800 dark:bg-dark-300 h-8 border text-xs text-black dark:text-white" >
274273 < SelectValue placeholder = "Select role" />
275274 </ SelectTrigger >
276- < SelectContent className = "bg-light-800 dark:bg-dark-300 text-black dark:text-white" >
275+ < SelectContent className = "bg-light-800 dark:bg-dark-300 text-xs text- black dark:text-white" >
277276 { roles . map ( ( role ) => (
278277 < SelectItem key = { role . id } value = { String ( role . id ) } >
279278 { role . name }
@@ -292,10 +291,10 @@ export function EditableRow({
292291 }
293292 disabled = { isSubmitting || isUploading }
294293 >
295- < SelectTrigger className = "border-light-700 dark:border-dark-200 bg-light-800 dark:bg-dark-300 border text-black dark:text-white" >
294+ < SelectTrigger className = "border-light-700 dark:border-dark-200 bg-light-800 dark:bg-dark-300 h-8 border text-xs text-black dark:text-white" >
296295 < SelectValue placeholder = "Select position" />
297296 </ SelectTrigger >
298- < SelectContent className = "bg-light-800 dark:bg-dark-300 text-black dark:text-white" >
297+ < SelectContent className = "bg-light-800 dark:bg-dark-300 text-xs text- black dark:text-white" >
299298 { positions . map ( ( pos ) => (
300299 < SelectItem key = { pos . id } value = { pos . name || "" } >
301300 { pos . name }
@@ -307,11 +306,14 @@ export function EditableRow({
307306
308307 case "projects" :
309308 return (
310- < ProjectSelect
311- value = { editForm . projects || [ ] }
312- onChange = { ( projects ) => handleLocalChange ( "projects" , projects ) }
313- disabled = { isSubmitting || isUploading }
314- />
309+ < div className = "flex items-center gap-1" >
310+ < ProjectSelect
311+ value = { editForm . projects || [ ] }
312+ onChange = { ( projects ) => handleLocalChange ( "projects" , projects ) }
313+ disabled = { isSubmitting || isUploading }
314+ compact = { true }
315+ />
316+ </ div >
315317 ) ;
316318
317319 case "nda_status" :
@@ -323,10 +325,10 @@ export function EditableRow({
323325 }
324326 disabled = { isSubmitting || isUploading }
325327 >
326- < SelectTrigger className = "border-light-700 dark:border-dark-200 bg-light-800 dark:bg-dark-300 border text-black dark:text-white" >
328+ < SelectTrigger className = "border-light-700 dark:border-dark-200 bg-light-800 dark:bg-dark-300 h-8 border text-xs text-black dark:text-white" >
327329 < SelectValue placeholder = "Select NDA status" />
328330 </ SelectTrigger >
329- < SelectContent className = "bg-light-800 dark:bg-dark-300 text-black dark:text-white" >
331+ < SelectContent className = "bg-light-800 dark:bg-dark-300 text-xs text- black dark:text-white" >
330332 < SelectItem value = "Yes" > Yes</ SelectItem >
331333 < SelectItem value = "No" > No</ SelectItem >
332334 </ SelectContent >
@@ -363,7 +365,7 @@ export function EditableRow({
363365 handleLocalChange ( "date_joined" , dateValue ) ;
364366 } }
365367 disabled = { isSubmitting || isUploading }
366- className = "border-light-700 dark:border-dark-200 bg-light-800 dark:bg-dark-300 border text-black dark:text-white"
368+ className = "border-light-700 dark:border-dark-200 bg-light-800 dark:bg-dark-300 h-8 border text-xs text-black dark:text-white"
367369 />
368370 ) ;
369371
@@ -373,51 +375,47 @@ export function EditableRow({
373375 value = { String ( editForm [ key ] || "" ) }
374376 onChange = { ( e ) => handleLocalChange ( key , e . target . value ) }
375377 disabled = { isSubmitting || isUploading }
376- className = "border-light-700 dark:border-dark-200 bg-light-800 dark:bg-dark-300 border text-black dark:text-white"
378+ className = "border-light-700 dark:border-dark-200 bg-light-800 dark:bg-dark-300 h-8 w-full border text-xs text-black dark:text-white"
377379 />
378380 ) ;
379381 }
380382 } ;
381383
382384 return (
383385 < TableRow className = "bg-light-200 dark:bg-dark-200 hover:bg-light-300 dark:hover:bg-dark-300" >
384- { /* ENHANCED: First 3 columns px-6 py-3 */ }
385- < TableCell className = "px-6 py-3" > { renderCell ( "image_url" ) } </ TableCell >
386- < TableCell className = "px-6 py-3" > { renderCell ( "first_name" ) } </ TableCell >
387- < TableCell className = "px-6 py-3" > { renderCell ( "last_name" ) } </ TableCell >
388-
389- { /* ENHANCED: Email column px-5 py-3 */ }
390- < TableCell className = "px-5 py-3" > { renderCell ( "email_address" ) } </ TableCell >
391-
392- { /* ENHANCED: Other columns px-4 py-3 */ }
393- < TableCell className = "px-4 py-3" > { renderCell ( "internal_status" ) } </ TableCell >
394- < TableCell className = "px-4 py-3" > { renderCell ( "role_id" ) } </ TableCell >
395- < TableCell className = "px-4 py-3" > { renderCell ( "display_position" ) } </ TableCell >
396- < TableCell className = "px-4 py-3" > { renderCell ( "projects" ) } </ TableCell >
397- < TableCell className = "px-4 py-3" > { renderCell ( "nda_status" ) } </ TableCell >
398- < TableCell className = "px-4 py-3" > { renderCell ( "portfolio_website" ) } </ TableCell >
399- < TableCell className = "px-4 py-3" > { renderCell ( "date_joined" ) } </ TableCell >
400- < TableCell className = "px-4 py-3" > { renderCell ( "availability_status" ) } </ TableCell >
401-
402- { /* Actions - px-4 py-3 */ }
403- < TableCell className = "px-4 py-3" >
404- < div className = "flex space-x-2" >
386+ { /* COMPACT: All columns px-2 py-2, constrained widths to match table */ }
387+ < TableCell className = "w-12 px-2 py-2" > { renderCell ( "image_url" ) } </ TableCell >
388+ < TableCell className = "w-24 px-2 py-2" > { renderCell ( "first_name" ) } </ TableCell >
389+ < TableCell className = "w-24 px-2 py-2" > { renderCell ( "last_name" ) } </ TableCell >
390+ < TableCell className = "w-40 px-2 py-2" > { renderCell ( "email_address" ) } </ TableCell >
391+ < TableCell className = "hidden w-24 px-2 py-2 2xl:table-cell" > { renderCell ( "internal_status" ) } </ TableCell >
392+ < TableCell className = "hidden w-20 px-2 py-2 2xl:table-cell" > { renderCell ( "role_id" ) } </ TableCell >
393+ < TableCell className = "hidden w-32 px-2 py-2 2xl:table-cell" > { renderCell ( "display_position" ) } </ TableCell >
394+ < TableCell className = "hidden w-32 px-2 py-2 2xl:table-cell" > { renderCell ( "projects" ) } </ TableCell >
395+ < TableCell className = "hidden w-36 px-2 py-2 2xl:table-cell" > { renderCell ( "nda_status" ) } </ TableCell >
396+ < TableCell className = "hidden w-16 px-2 py-2 2xl:table-cell" > { renderCell ( "portfolio_website" ) } </ TableCell >
397+ < TableCell className = "hidden w-24 px-2 py-2 2xl:table-cell" > { renderCell ( "date_joined" ) } </ TableCell >
398+ < TableCell className = "hidden w-20 px-2 py-2 2xl:table-cell" > { renderCell ( "availability_status" ) } </ TableCell >
399+
400+ { /* COMPACT: Actions - smaller buttons */ }
401+ < TableCell className = "w-16 px-2 py-2" >
402+ < div className = "flex gap-1" >
405403 < Button
406404 size = "sm"
407405 onClick = { handleSave }
408406 disabled = { isSubmitting || isUploading }
409- className = "hover:bg-green-500 dark:hover:bg-green-500 bg-white text-white dark:bg-transparent"
407+ className = "hover:bg-green-500 dark:hover:bg-green-500 h-7 w-7 bg-white p-0 text-white dark:bg-transparent"
410408 >
411- < Check className = "text-black-100 h-4 w-4 dark:text-white" />
409+ < Check className = "text-black-100 h-3.5 w-3.5 dark:text-white" />
412410 </ Button >
413411 < Button
414412 size = "sm"
415413 variant = "ghost"
416414 onClick = { onCancel }
417415 disabled = { isSubmitting || isUploading }
418- className = "hover:bg-red-500/20 hover:text-red-500"
416+ className = "hover:bg-red-500/20 hover:text-red-500 h-7 w-7 p-0 "
419417 >
420- < X className = "h-4 w-4 dark:text-white" />
418+ < X className = "h-3.5 w-3.5 dark:text-white" />
421419 </ Button >
422420 </ div >
423421 </ TableCell >
0 commit comments