@@ -239,11 +239,6 @@ const IssueRowDetails = observer(function IssueRowDetails(props: IssueRowDetails
239239
240240 const canSelectIssues = ! disableUserActions && ! selectionHelpers . isSelectionDisabled ;
241241
242- //TODO: add better logic. This is to have a min width for ID/Key based on the length of project identifier
243- const keyMinWidth = displayProperties ?. key
244- ? ( getProjectIdentifierById ( issueDetail . project_id ) ?. length ?? 0 + 5 ) * 7
245- : 0 ;
246-
247242 const workItemLink = generateWorkItemLink ( {
248243 workspaceSlug : workspaceSlug ?. toString ( ) ,
249244 projectId : issueDetail ?. project_id ,
@@ -255,11 +250,12 @@ const IssueRowDetails = observer(function IssueRowDetails(props: IssueRowDetails
255250
256251 return (
257252 < >
253+ { /* Single sticky column containing both identifier and workitem */ }
258254 < td
259255 id = { `issue-${ issueId } ` }
260256 ref = { cellRef }
261257 tabIndex = { 0 }
262- className = "relative md:sticky left-0 z-10 group/list-block bg-custom-background-100 min-w-60 max-w-[30vw] "
258+ className = "relative md:sticky left-0 z-10 group/list-block bg-custom-background-100"
263259 >
264260 < ControlLink
265261 href = { workItemLink }
@@ -278,7 +274,29 @@ const IssueRowDetails = observer(function IssueRowDetails(props: IssueRowDetails
278274 }
279275 ) }
280276 >
281- < div className = "flex items-center gap-0.5 min-w-min py-2" >
277+ { /* Identifier section - conditionally rendered */ }
278+ { displayProperties ?. key && (
279+ < div className = "flex-shrink-0 flex items-center h-full min-w-24" >
280+ < div className = "relative flex cursor-pointer items-center text-xs hover:text-custom-text-100" >
281+ { issueDetail . project_id && (
282+ < IssueIdentifier
283+ issueId = { issueDetail . id }
284+ projectId = { issueDetail . project_id }
285+ textContainerClassName = "text-sm md:text-xs text-custom-text-300"
286+ displayProperties = { displayProperties }
287+ />
288+ ) }
289+ </ div >
290+ </ div >
291+ ) }
292+
293+ { /* Workitem section */ }
294+ < div
295+ className = { cn ( "flex items-center gap-0.5 py-2 flex-grow" , {
296+ "min-w-[360px]" : ! displayProperties ?. key ,
297+ "min-w-60" : displayProperties ?. key ,
298+ } ) }
299+ >
282300 { /* select checkbox */ }
283301 { projectId && canSelectIssues && (
284302 < Tooltip
@@ -311,21 +329,6 @@ const IssueRowDetails = observer(function IssueRowDetails(props: IssueRowDetails
311329 { /* sub issues indentation */ }
312330 { nestingLevel !== 0 && < div style = { { width : subIssueIndentation } } /> }
313331
314- { ( displayProperties ?. key || displayProperties ?. issue_type ) && (
315- < div className = "relative flex cursor-pointer items-center text-center text-xs hover:text-custom-text-100" >
316- < p className = { `flex font-medium leading-7` } style = { { minWidth : `${ keyMinWidth } px` } } >
317- { issueDetail . project_id && (
318- < IssueIdentifier
319- issueId = { issueDetail . id }
320- projectId = { issueDetail . project_id }
321- textContainerClassName = "text-sm md:text-xs text-custom-text-300"
322- displayProperties = { displayProperties }
323- />
324- ) }
325- </ p >
326- </ div >
327- ) }
328-
329332 { /* sub-issues chevron */ }
330333 < div className = "grid place-items-center size-4" >
331334 { subIssuesCount > 0 && ! isEpic && (
@@ -343,31 +346,31 @@ const IssueRowDetails = observer(function IssueRowDetails(props: IssueRowDetails
343346 </ button >
344347 ) }
345348 </ div >
346- </ div >
347349
348- < div className = "flex items-center gap-2 justify-between h-full w-full truncate my-auto" >
349- < div className = "w-full line-clamp-1 text-sm text-custom-text-100" >
350- < div className = "w-full overflow-hidden" >
351- < Tooltip tooltipContent = { issueDetail . name } isMobile = { isMobile } >
352- < div
353- className = "h-full w-full cursor-pointer truncate pr-4 text-left text-[0.825rem] text-custom-text-100 focus:outline-none"
354- tabIndex = { - 1 }
355- >
356- { issueDetail . name }
357- </ div >
358- </ Tooltip >
350+ < div className = "flex items-center gap-2 justify-between h-full w-full truncate my-auto" >
351+ < div className = "w-full line-clamp-1 text-sm text-custom-text-100" >
352+ < div className = "w-full overflow-hidden" >
353+ < Tooltip tooltipContent = { issueDetail . name } isMobile = { isMobile } >
354+ < div
355+ className = "h-full w-full cursor-pointer truncate pr-4 text-left text-[0.825rem] text-custom-text-100 focus:outline-none"
356+ tabIndex = { - 1 }
357+ >
358+ { issueDetail . name }
359+ </ div >
360+ </ Tooltip >
361+ </ div >
362+ </ div >
363+ < div
364+ className = { `opacity-0 group-hover:opacity-100 transition-opacity ${ isMenuActive ? "!opacity-100" : "" } ` }
365+ onClick = { ( e ) => e . stopPropagation ( ) }
366+ >
367+ { quickActions ( {
368+ issue : issueDetail ,
369+ parentRef : cellRef ,
370+ customActionButton,
371+ portalElement : portalElement . current ,
372+ } ) }
359373 </ div >
360- </ div >
361- < div
362- className = { `hidden group-hover:block ${ isMenuActive ? "!block" : "" } ` }
363- onClick = { ( e ) => e . stopPropagation ( ) }
364- >
365- { quickActions ( {
366- issue : issueDetail ,
367- parentRef : cellRef ,
368- customActionButton,
369- portalElement : portalElement . current ,
370- } ) }
371374 </ div >
372375 </ div >
373376 </ Row >
0 commit comments