fix: spreadsheet layout sub issues overlapping (#3064)

* fix: spreadsheet layout sub issues overlapping

* fix: logs
This commit is contained in:
Lakhan Baheti 2023-12-11 17:28:44 +05:30 committed by GitHub
parent b515c0ffa6
commit 73b58e91ee
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 95 additions and 71 deletions

View file

@ -27,7 +27,7 @@ export const SpreadsheetAssigneeColumn: React.FC<Props> = ({ issue, members, onC
value={issue.assignees} value={issue.assignees}
defaultOptions={issue?.assignee_details ? issue.assignee_details : []} defaultOptions={issue?.assignee_details ? issue.assignee_details : []}
onChange={(data) => onChange({ assignees: data })} onChange={(data) => onChange({ assignees: data })}
className="h-full w-full" className="h-11 w-full"
buttonClassName="!shadow-none !border-0 h-full w-full px-2.5 py-1 " buttonClassName="!shadow-none !border-0 h-full w-full px-2.5 py-1 "
noLabelBorder noLabelBorder
hideDropdownArrow hideDropdownArrow
@ -40,6 +40,7 @@ export const SpreadsheetAssigneeColumn: React.FC<Props> = ({ issue, members, onC
subIssues && subIssues &&
subIssues.length > 0 && subIssues.length > 0 &&
subIssues.map((subIssue) => ( subIssues.map((subIssue) => (
<div className={`h-11`}>
<SpreadsheetAssigneeColumn <SpreadsheetAssigneeColumn
key={subIssue.id} key={subIssue.id}
issue={subIssue} issue={subIssue}
@ -48,6 +49,7 @@ export const SpreadsheetAssigneeColumn: React.FC<Props> = ({ issue, members, onC
members={members} members={members}
disabled={disabled} disabled={disabled}
/> />
</div>
))} ))}
</> </>
); );

View file

@ -18,7 +18,7 @@ export const SpreadsheetAttachmentColumn: React.FC<Props> = (props) => {
return ( return (
<> <>
<div className="flex h-full w-full items-center px-2.5 py-1 text-xs"> <div className="flex h-11 w-full items-center px-2.5 py-1 text-xs">
{issue.attachment_count} {issue.attachment_count === 1 ? "attachment" : "attachments"} {issue.attachment_count} {issue.attachment_count === 1 ? "attachment" : "attachments"}
</div> </div>
@ -27,7 +27,9 @@ export const SpreadsheetAttachmentColumn: React.FC<Props> = (props) => {
subIssues && subIssues &&
subIssues.length > 0 && subIssues.length > 0 &&
subIssues.map((subIssue: IIssue) => ( subIssues.map((subIssue: IIssue) => (
<div className={`h-11`}>
<SpreadsheetAttachmentColumn key={subIssue.id} issue={subIssue} expandedIssues={expandedIssues} /> <SpreadsheetAttachmentColumn key={subIssue.id} issue={subIssue} expandedIssues={expandedIssues} />
</div>
))} ))}
</> </>
); );

View file

@ -19,7 +19,7 @@ export const SpreadsheetCreatedOnColumn: React.FC<Props> = ({ issue, expandedIss
return ( return (
<> <>
<div className="flex h-full w-full items-center justify-center text-xs"> <div className="flex h-11 w-full items-center justify-center text-xs">
{renderLongDetailDateFormat(issue.created_at)} {renderLongDetailDateFormat(issue.created_at)}
</div> </div>
@ -28,7 +28,9 @@ export const SpreadsheetCreatedOnColumn: React.FC<Props> = ({ issue, expandedIss
subIssues && subIssues &&
subIssues.length > 0 && subIssues.length > 0 &&
subIssues.map((subIssue: IIssue) => ( subIssues.map((subIssue: IIssue) => (
<div className="h-11">
<SpreadsheetCreatedOnColumn key={subIssue.id} issue={subIssue} expandedIssues={expandedIssues} /> <SpreadsheetCreatedOnColumn key={subIssue.id} issue={subIssue} expandedIssues={expandedIssues} />
</div>
))} ))}
</> </>
); );

View file

@ -24,7 +24,7 @@ export const SpreadsheetDueDateColumn: React.FC<Props> = ({ issue, onChange, exp
<ViewDueDateSelect <ViewDueDateSelect
issue={issue} issue={issue}
onChange={(val) => onChange({ target_date: val })} onChange={(val) => onChange({ target_date: val })}
className="flex !h-full !w-full max-w-full items-center px-2.5 py-1" className="flex !h-11 !w-full max-w-full items-center px-2.5 py-1"
noBorder noBorder
disabled={disabled} disabled={disabled}
/> />
@ -34,6 +34,7 @@ export const SpreadsheetDueDateColumn: React.FC<Props> = ({ issue, onChange, exp
subIssues && subIssues &&
subIssues.length > 0 && subIssues.length > 0 &&
subIssues.map((subIssue: IIssue) => ( subIssues.map((subIssue: IIssue) => (
<div className={`h-11`}>
<SpreadsheetDueDateColumn <SpreadsheetDueDateColumn
key={subIssue.id} key={subIssue.id}
issue={subIssue} issue={subIssue}
@ -41,6 +42,7 @@ export const SpreadsheetDueDateColumn: React.FC<Props> = ({ issue, onChange, exp
expandedIssues={expandedIssues} expandedIssues={expandedIssues}
disabled={disabled} disabled={disabled}
/> />
</div>
))} ))}
</> </>
); );

View file

@ -25,7 +25,7 @@ export const SpreadsheetEstimateColumn: React.FC<Props> = (props) => {
projectId={issue.project_detail?.id ?? null} projectId={issue.project_detail?.id ?? null}
value={issue.estimate_point} value={issue.estimate_point}
onChange={(data) => onChange({ estimate_point: data })} onChange={(data) => onChange({ estimate_point: data })}
className="h-full w-full" className="h-11 w-full"
buttonClassName="h-full w-full px-2.5 py-1 !shadow-none !border-0" buttonClassName="h-full w-full px-2.5 py-1 !shadow-none !border-0"
hideDropdownArrow hideDropdownArrow
disabled={disabled} disabled={disabled}
@ -36,6 +36,7 @@ export const SpreadsheetEstimateColumn: React.FC<Props> = (props) => {
subIssues && subIssues &&
subIssues.length > 0 && subIssues.length > 0 &&
subIssues.map((subIssue: IIssue) => ( subIssues.map((subIssue: IIssue) => (
<div className={`h-11`}>
<SpreadsheetEstimateColumn <SpreadsheetEstimateColumn
key={subIssue.id} key={subIssue.id}
issue={subIssue} issue={subIssue}
@ -43,6 +44,7 @@ export const SpreadsheetEstimateColumn: React.FC<Props> = (props) => {
expandedIssues={expandedIssues} expandedIssues={expandedIssues}
disabled={disabled} disabled={disabled}
/> />
</div>
))} ))}
</> </>
); );

View file

@ -29,7 +29,7 @@ export const SpreadsheetLabelColumn: React.FC<Props> = (props) => {
value={issue.labels} value={issue.labels}
defaultOptions={issue?.label_details ? issue.label_details : []} defaultOptions={issue?.label_details ? issue.label_details : []}
onChange={(data) => onChange({ labels: data })} onChange={(data) => onChange({ labels: data })}
className="h-full w-full" className="h-11 w-full"
buttonClassName="px-2.5 h-full" buttonClassName="px-2.5 h-full"
hideDropdownArrow hideDropdownArrow
maxRender={1} maxRender={1}
@ -42,6 +42,7 @@ export const SpreadsheetLabelColumn: React.FC<Props> = (props) => {
subIssues && subIssues &&
subIssues.length > 0 && subIssues.length > 0 &&
subIssues.map((subIssue: IIssue) => ( subIssues.map((subIssue: IIssue) => (
<div className={`h-11`}>
<SpreadsheetLabelColumn <SpreadsheetLabelColumn
key={subIssue.id} key={subIssue.id}
issue={subIssue} issue={subIssue}
@ -50,6 +51,7 @@ export const SpreadsheetLabelColumn: React.FC<Props> = (props) => {
expandedIssues={expandedIssues} expandedIssues={expandedIssues}
disabled={disabled} disabled={disabled}
/> />
</div>
))} ))}
</> </>
); );

View file

@ -18,7 +18,7 @@ export const SpreadsheetLinkColumn: React.FC<Props> = (props) => {
return ( return (
<> <>
<div className="flex h-full w-full items-center px-2.5 py-1 text-xs"> <div className="flex h-11 w-full items-center px-2.5 py-1 text-xs">
{issue.link_count} {issue.link_count === 1 ? "link" : "links"} {issue.link_count} {issue.link_count === 1 ? "link" : "links"}
</div> </div>
@ -27,7 +27,9 @@ export const SpreadsheetLinkColumn: React.FC<Props> = (props) => {
subIssues && subIssues &&
subIssues.length > 0 && subIssues.length > 0 &&
subIssues.map((subIssue: IIssue) => ( subIssues.map((subIssue: IIssue) => (
<div className={`h-11`}>
<SpreadsheetLinkColumn key={subIssue.id} issue={subIssue} expandedIssues={expandedIssues} /> <SpreadsheetLinkColumn key={subIssue.id} issue={subIssue} expandedIssues={expandedIssues} />
</div>
))} ))}
</> </>
); );

View file

@ -24,7 +24,7 @@ export const SpreadsheetPriorityColumn: React.FC<Props> = ({ issue, onChange, ex
<PrioritySelect <PrioritySelect
value={issue.priority} value={issue.priority}
onChange={(data) => onChange({ priority: data })} onChange={(data) => onChange({ priority: data })}
className="h-full w-full" className="h-11 w-full"
buttonClassName="!shadow-none !border-0 h-full w-full px-2.5 py-1 " buttonClassName="!shadow-none !border-0 h-full w-full px-2.5 py-1 "
showTitle showTitle
highlightUrgentPriority={false} highlightUrgentPriority={false}
@ -37,6 +37,7 @@ export const SpreadsheetPriorityColumn: React.FC<Props> = ({ issue, onChange, ex
subIssues && subIssues &&
subIssues.length > 0 && subIssues.length > 0 &&
subIssues.map((subIssue: IIssue) => ( subIssues.map((subIssue: IIssue) => (
<div className={`h-11`}>
<SpreadsheetPriorityColumn <SpreadsheetPriorityColumn
key={subIssue.id} key={subIssue.id}
issue={subIssue} issue={subIssue}
@ -44,6 +45,7 @@ export const SpreadsheetPriorityColumn: React.FC<Props> = ({ issue, onChange, ex
expandedIssues={expandedIssues} expandedIssues={expandedIssues}
disabled={disabled} disabled={disabled}
/> />
</div>
))} ))}
</> </>
); );

View file

@ -24,7 +24,7 @@ export const SpreadsheetStartDateColumn: React.FC<Props> = ({ issue, onChange, e
<ViewStartDateSelect <ViewStartDateSelect
issue={issue} issue={issue}
onChange={(val) => onChange({ start_date: val })} onChange={(val) => onChange({ start_date: val })}
className="flex !h-full !w-full max-w-full items-center px-2.5 py-1" className="flex !h-11 !w-full max-w-full items-center px-2.5 py-1"
noBorder noBorder
disabled={disabled} disabled={disabled}
/> />
@ -34,6 +34,7 @@ export const SpreadsheetStartDateColumn: React.FC<Props> = ({ issue, onChange, e
subIssues && subIssues &&
subIssues.length > 0 && subIssues.length > 0 &&
subIssues.map((subIssue: IIssue) => ( subIssues.map((subIssue: IIssue) => (
<div className={`h-11`}>
<SpreadsheetStartDateColumn <SpreadsheetStartDateColumn
key={subIssue.id} key={subIssue.id}
issue={subIssue} issue={subIssue}
@ -41,6 +42,7 @@ export const SpreadsheetStartDateColumn: React.FC<Props> = ({ issue, onChange, e
expandedIssues={expandedIssues} expandedIssues={expandedIssues}
disabled={disabled} disabled={disabled}
/> />
</div>
))} ))}
</> </>
); );

View file

@ -29,7 +29,7 @@ export const SpreadsheetStateColumn: React.FC<Props> = (props) => {
value={issue.state} value={issue.state}
defaultOptions={issue?.state_detail ? [issue.state_detail] : []} defaultOptions={issue?.state_detail ? [issue.state_detail] : []}
onChange={(data) => onChange({ state: data.id, state_detail: data })} onChange={(data) => onChange({ state: data.id, state_detail: data })}
className="h-full w-full" className="w-full !h-11"
buttonClassName="!shadow-none !border-0 h-full w-full" buttonClassName="!shadow-none !border-0 h-full w-full"
hideDropdownArrow hideDropdownArrow
disabled={disabled} disabled={disabled}
@ -40,6 +40,7 @@ export const SpreadsheetStateColumn: React.FC<Props> = (props) => {
subIssues && subIssues &&
subIssues.length > 0 && subIssues.length > 0 &&
subIssues.map((subIssue) => ( subIssues.map((subIssue) => (
<div className="h-11">
<SpreadsheetStateColumn <SpreadsheetStateColumn
key={subIssue.id} key={subIssue.id}
issue={subIssue} issue={subIssue}
@ -48,6 +49,7 @@ export const SpreadsheetStateColumn: React.FC<Props> = (props) => {
expandedIssues={expandedIssues} expandedIssues={expandedIssues}
disabled={disabled} disabled={disabled}
/> />
</div>
))} ))}
</> </>
); );

View file

@ -18,7 +18,7 @@ export const SpreadsheetSubIssueColumn: React.FC<Props> = (props) => {
return ( return (
<> <>
<div className="flex h-full w-full items-center px-2.5 py-1 text-xs"> <div className="flex h-11 w-full items-center px-2.5 py-1 text-xs">
{issue.sub_issues_count} {issue.sub_issues_count === 1 ? "sub-issue" : "sub-issues"} {issue.sub_issues_count} {issue.sub_issues_count === 1 ? "sub-issue" : "sub-issues"}
</div> </div>
@ -27,7 +27,9 @@ export const SpreadsheetSubIssueColumn: React.FC<Props> = (props) => {
subIssues && subIssues &&
subIssues.length > 0 && subIssues.length > 0 &&
subIssues.map((subIssue: IIssue) => ( subIssues.map((subIssue: IIssue) => (
<div className={`h-11`}>
<SpreadsheetSubIssueColumn key={subIssue.id} issue={subIssue} expandedIssues={expandedIssues} /> <SpreadsheetSubIssueColumn key={subIssue.id} issue={subIssue} expandedIssues={expandedIssues} />
</div>
))} ))}
</> </>
); );

View file

@ -21,7 +21,7 @@ export const SpreadsheetUpdatedOnColumn: React.FC<Props> = (props) => {
return ( return (
<> <>
<div className="flex h-full w-full items-center justify-center text-xs"> <div className="flex h-11 w-full items-center justify-center text-xs">
{renderLongDetailDateFormat(issue.updated_at)} {renderLongDetailDateFormat(issue.updated_at)}
</div> </div>
@ -30,7 +30,9 @@ export const SpreadsheetUpdatedOnColumn: React.FC<Props> = (props) => {
subIssues && subIssues &&
subIssues.length > 0 && subIssues.length > 0 &&
subIssues.map((subIssue: IIssue) => ( subIssues.map((subIssue: IIssue) => (
<div className={`h-11`}>
<SpreadsheetUpdatedOnColumn key={subIssue.id} issue={subIssue} expandedIssues={expandedIssues} /> <SpreadsheetUpdatedOnColumn key={subIssue.id} issue={subIssue} expandedIssues={expandedIssues} />
</div>
))} ))}
</> </>
); );

View file

@ -159,13 +159,13 @@ export const SpreadsheetColumn: React.FC<Props> = (props) => {
</CustomMenu> </CustomMenu>
</div> </div>
<div className="h-full w-full min-w-[8rem]"> <div className="h-full w-full divide-y-[0.5px] border-b-[0.5px] min-w-[8rem]">
{issues?.map((issue) => { {issues?.map((issue) => {
const disableUserActions = !canEditProperties(issue.project); const disableUserActions = !canEditProperties(issue.project);
return ( return (
<div <div
key={`${property}-${issue.id}`} key={`${property}-${issue.id}`}
className={`h-11 border-b-[0.5px] border-custom-border-200 ${ className={`h-fit divide-y-[0.5px] border-custom-border-200 ${
disableUserActions ? "" : "cursor-pointer hover:bg-custom-background-80" disableUserActions ? "" : "cursor-pointer hover:bg-custom-background-80"
}`} }`}
> >