2024-01-11 12:49:19 +00:00
|
|
|
// ui
|
|
|
|
import { LayersIcon } from "@plane/ui";
|
|
|
|
// types
|
2024-03-06 13:09:14 +00:00
|
|
|
import { SPREADSHEET_PROPERTY_LIST } from "constants/spreadsheet";
|
2024-01-11 12:49:19 +00:00
|
|
|
import { IIssueDisplayFilterOptions, IIssueDisplayProperties } from "@plane/types";
|
|
|
|
// constants
|
|
|
|
// components
|
|
|
|
import { WithDisplayPropertiesHOC } from "../properties/with-display-properties-HOC";
|
2024-02-08 06:19:00 +00:00
|
|
|
import { SpreadsheetHeaderColumn } from "./spreadsheet-header-column";
|
2024-01-11 12:49:19 +00:00
|
|
|
|
|
|
|
interface Props {
|
|
|
|
displayProperties: IIssueDisplayProperties;
|
|
|
|
displayFilters: IIssueDisplayFilterOptions;
|
|
|
|
handleDisplayFilterUpdate: (data: Partial<IIssueDisplayFilterOptions>) => void;
|
|
|
|
isEstimateEnabled: boolean;
|
|
|
|
}
|
|
|
|
|
|
|
|
export const SpreadsheetHeader = (props: Props) => {
|
|
|
|
const { displayProperties, displayFilters, handleDisplayFilterUpdate, isEstimateEnabled } = props;
|
|
|
|
|
|
|
|
return (
|
2024-02-28 13:45:03 +00:00
|
|
|
<thead className="sticky top-0 left-0 z-[12] border-b-[0.5px] border-custom-border-100">
|
2024-01-11 12:49:19 +00:00
|
|
|
<tr>
|
2024-02-08 06:19:00 +00:00
|
|
|
<th
|
2024-02-28 13:45:03 +00:00
|
|
|
className="sticky left-0 z-[15] h-11 w-[28rem] flex items-center bg-custom-background-90 text-sm font-medium before:absolute before:h-full before:right-0 before:border-[0.5px] before:border-custom-border-100"
|
2024-02-08 06:19:00 +00:00
|
|
|
tabIndex={-1}
|
|
|
|
>
|
2024-01-11 12:49:19 +00:00
|
|
|
<WithDisplayPropertiesHOC displayProperties={displayProperties} displayPropertyKey="key">
|
|
|
|
<span className="flex h-full w-24 flex-shrink-0 items-center px-4 py-2.5">
|
|
|
|
<span className="mr-1.5 text-custom-text-400">#</span>ID
|
|
|
|
</span>
|
|
|
|
</WithDisplayPropertiesHOC>
|
|
|
|
<span className="flex h-full w-full flex-grow items-center justify-center px-4 py-2.5">
|
|
|
|
<LayersIcon className="mr-1.5 h-4 w-4 text-custom-text-400" />
|
|
|
|
Issue
|
|
|
|
</span>
|
|
|
|
</th>
|
|
|
|
|
2024-02-08 06:19:00 +00:00
|
|
|
{SPREADSHEET_PROPERTY_LIST.map((property) => (
|
|
|
|
<SpreadsheetHeaderColumn
|
2024-03-06 13:09:14 +00:00
|
|
|
key={property}
|
2024-02-08 06:19:00 +00:00
|
|
|
property={property}
|
|
|
|
displayProperties={displayProperties}
|
|
|
|
displayFilters={displayFilters}
|
|
|
|
handleDisplayFilterUpdate={handleDisplayFilterUpdate}
|
|
|
|
isEstimateEnabled={isEstimateEnabled}
|
|
|
|
/>
|
|
|
|
))}
|
2024-01-11 12:49:19 +00:00
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
);
|
|
|
|
};
|