style: image picker, spreadsheet view title, icons (#2988)

* style: image picker, spreadsheet view title, icons

* fix: build error fix
This commit is contained in:
sabith-tu 2023-12-05 16:05:50 +05:30 committed by Aaryan Khandelwal
parent 14f8d380c6
commit 023bf8a0a5
7 changed files with 38 additions and 17 deletions

View File

@ -324,7 +324,7 @@ export const ImagePickerPopover: React.FC<Props> = observer((props) => {
File formats supported- .jpeg, .jpg, .png, .webp, .svg File formats supported- .jpeg, .jpg, .png, .webp, .svg
</p> </p>
<div className="flex items-center justify-end gap-2"> <div className="flex items-start h-12 justify-end gap-2">
<Button <Button
variant="neutral-primary" variant="neutral-primary"
onClick={() => { onClick={() => {

View File

@ -111,12 +111,8 @@ export const IssuePropertyAssignee: React.FC<IIssuePropertyAssignee> = observer(
})} })}
</AvatarGroup> </AvatarGroup>
) : ( ) : (
<span <span className="flex items-end justify-center h-5 w-5 bg-custom-background-80 rounded-full border border-dashed border-custom-text-400">
className={`flex items-center justify-between gap-1 h-full w-full text-xs rounded duration-300 focus:outline-none ${ <User2 className="h-4 w-4 text-custom-text-400" />
noLabelBorder ? "" : " px-2.5 py-1 border-[0.5px] border-custom-border-300"
}`}
>
<User2 className="h-3 w-3" />
</span> </span>
)} )}
</div> </div>

View File

@ -85,15 +85,18 @@ export const SpreadsheetColumn: React.FC<Props> = (props) => {
customButton={ customButton={
<div className="flex items-center justify-between gap-1.5 cursor-pointer text-sm text-custom-text-200 hover:text-custom-text-100 w-full py-2"> <div className="flex items-center justify-between gap-1.5 cursor-pointer text-sm text-custom-text-200 hover:text-custom-text-100 w-full py-2">
<div className="flex items-center gap-1.5"> <div className="flex items-center gap-1.5">
{<propertyDetails.icon className="h-4 w-4 text-custom-text-400" />}
{propertyDetails.title}
</div>
<div className="flex ml-3">
{activeSortingProperty === property && ( {activeSortingProperty === property && (
<div className="rounded-full flex items-center justify-center h-3.5 w-3.5"> <div className="rounded-full flex items-center justify-center h-3.5 w-3.5">
<ListFilter className="h-3 w-3" /> <ListFilter className="h-3 w-3" />
</div> </div>
)} )}
{propertyDetails.title}
</div>
<ChevronDownIcon className="h-3 w-3" aria-hidden="true" /> <ChevronDownIcon className="h-3 w-3" aria-hidden="true" />
</div> </div>
</div>
} }
width="xl" width="xl"
placement="bottom-end" placement="bottom-end"

View File

@ -8,7 +8,7 @@ import {
SpreadsheetIssuesColumn, SpreadsheetIssuesColumn,
SpreadsheetQuickAddIssueForm, SpreadsheetQuickAddIssueForm,
} from "components/issues"; } from "components/issues";
import { Spinner } from "@plane/ui"; import { Spinner, LayersIcon } from "@plane/ui";
// types // types
import { IIssue, IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueLabel, IState, IUserLite } from "types"; import { IIssue, IIssueDisplayFilterOptions, IIssueDisplayProperties, IIssueLabel, IState, IUserLite } from "types";
import { EIssueActions } from "../types"; import { EIssueActions } from "../types";
@ -95,9 +95,14 @@ export const SpreadsheetView: React.FC<Props> = observer((props) => {
> >
<div className="flex items-center text-sm font-medium z-[2] h-11 w-full sticky top-0 bg-custom-background-90 border border-l-0 border-custom-border-100"> <div className="flex items-center text-sm font-medium z-[2] h-11 w-full sticky top-0 bg-custom-background-90 border border-l-0 border-custom-border-100">
{displayProperties.key && ( {displayProperties.key && (
<span className="flex items-center px-4 py-2.5 h-full w-24 flex-shrink-0">ID</span> <span className="flex items-center px-4 py-2.5 h-full w-24 flex-shrink-0">
<span className="mr-1.5 text-custom-text-400">#</span>ID
</span>
)} )}
<span className="flex items-center justify-center px-4 py-2.5 h-full w-full flex-grow">Issue</span> <span className="flex items-center justify-center px-4 py-2.5 h-full w-full flex-grow">
<LayersIcon className="h-4 w-4 text-custom-text-400 mr-1.5" />
Issue
</span>
</div> </div>
{issues.map((issue, index) => {issues.map((issue, index) =>

View File

@ -5,8 +5,8 @@ import { observer } from "mobx-react-lite";
// mobx store // mobx store
import { useMobxStore } from "lib/mobx/store-provider"; import { useMobxStore } from "lib/mobx/store-provider";
// ui icons // ui icons
import { DiceIcon, DoubleCircleIcon, UserGroupIcon } from "@plane/ui"; import { DiceIcon, DoubleCircleIcon, UserGroupIcon, ContrastIcon } from "@plane/ui";
import { CalendarDays, ContrastIcon, Link2, Plus, Signal, Tag, Triangle, User2 } from "lucide-react"; import { CalendarDays, Link2, Plus, Signal, Tag, Triangle, LayoutPanelTop } from "lucide-react";
import { import {
SidebarAssigneeSelect, SidebarAssigneeSelect,
SidebarCycleSelect, SidebarCycleSelect,
@ -289,7 +289,7 @@ export const PeekOverviewProperties: FC<IPeekOverviewProperties> = observer((pro
{/* parent */} {/* parent */}
<div className="flex items-center gap-2 w-full"> <div className="flex items-center gap-2 w-full">
<div className="flex items-center gap-2 w-40 text-sm flex-shrink-0"> <div className="flex items-center gap-2 w-40 text-sm flex-shrink-0">
<User2 className="h-4 w-4 flex-shrink-0" /> <LayoutPanelTop className="h-4 w-4 flex-shrink-0" />
<p>Parent</p> <p>Parent</p>
</div> </div>
<div> <div>

View File

@ -32,7 +32,7 @@ import {
// ui // ui
import { CustomDatePicker } from "components/ui"; import { CustomDatePicker } from "components/ui";
// icons // icons
import { Bell, CalendarDays, LinkIcon, Plus, Signal, Tag, Trash2, Triangle, User2 } from "lucide-react"; import { Bell, CalendarDays, LinkIcon, Plus, Signal, Tag, Trash2, Triangle, LayoutPanelTop } from "lucide-react";
import { Button, ContrastIcon, DiceIcon, DoubleCircleIcon, StateGroupIcon, UserGroupIcon } from "@plane/ui"; import { Button, ContrastIcon, DiceIcon, DoubleCircleIcon, StateGroupIcon, UserGroupIcon } from "@plane/ui";
// helpers // helpers
import { copyTextToClipboard } from "helpers/string.helper"; import { copyTextToClipboard } from "helpers/string.helper";
@ -421,7 +421,7 @@ export const IssueDetailsSidebar: React.FC<Props> = observer((props) => {
{(fieldsToShow.includes("all") || fieldsToShow.includes("parent")) && ( {(fieldsToShow.includes("all") || fieldsToShow.includes("parent")) && (
<div className="flex flex-wrap items-center py-2"> <div className="flex flex-wrap items-center py-2">
<div className="flex items-center gap-x-2 text-sm text-custom-text-200 sm:basis-1/2"> <div className="flex items-center gap-x-2 text-sm text-custom-text-200 sm:basis-1/2">
<User2 className="h-4 w-4 flex-shrink-0" /> <LayoutPanelTop className="h-4 w-4 flex-shrink-0" />
<p>Parent</p> <p>Parent</p>
</div> </div>
<div className="sm:basis-1/2"> <div className="sm:basis-1/2">

View File

@ -1,4 +1,8 @@
import { TIssueOrderByOptions } from "types"; import { TIssueOrderByOptions } from "types";
import { LayersIcon, DoubleCircleIcon, UserGroupIcon } from "@plane/ui";
import { CalendarDays, Link2, Signal, Tag, Triangle, Paperclip } from "lucide-react";
import { FC } from "react";
import { ISvgIcons } from "@plane/ui/src/icons/type";
export const SPREADSHEET_PROPERTY_DETAILS: { export const SPREADSHEET_PROPERTY_DETAILS: {
[key: string]: { [key: string]: {
@ -7,6 +11,7 @@ export const SPREADSHEET_PROPERTY_DETAILS: {
ascendingOrderTitle: string; ascendingOrderTitle: string;
descendingOrderKey: TIssueOrderByOptions; descendingOrderKey: TIssueOrderByOptions;
descendingOrderTitle: string; descendingOrderTitle: string;
icon: FC<ISvgIcons>;
}; };
} = { } = {
assignee: { assignee: {
@ -15,6 +20,7 @@ export const SPREADSHEET_PROPERTY_DETAILS: {
ascendingOrderTitle: "A", ascendingOrderTitle: "A",
descendingOrderKey: "-assignees__first_name", descendingOrderKey: "-assignees__first_name",
descendingOrderTitle: "Z", descendingOrderTitle: "Z",
icon: UserGroupIcon,
}, },
created_on: { created_on: {
title: "Created on", title: "Created on",
@ -22,6 +28,7 @@ export const SPREADSHEET_PROPERTY_DETAILS: {
ascendingOrderTitle: "New", ascendingOrderTitle: "New",
descendingOrderKey: "created_at", descendingOrderKey: "created_at",
descendingOrderTitle: "Old", descendingOrderTitle: "Old",
icon: CalendarDays,
}, },
due_date: { due_date: {
title: "Due date", title: "Due date",
@ -29,6 +36,7 @@ export const SPREADSHEET_PROPERTY_DETAILS: {
ascendingOrderTitle: "New", ascendingOrderTitle: "New",
descendingOrderKey: "target_date", descendingOrderKey: "target_date",
descendingOrderTitle: "Old", descendingOrderTitle: "Old",
icon: CalendarDays,
}, },
estimate: { estimate: {
title: "Estimate", title: "Estimate",
@ -36,6 +44,7 @@ export const SPREADSHEET_PROPERTY_DETAILS: {
ascendingOrderTitle: "Low", ascendingOrderTitle: "Low",
descendingOrderKey: "-estimate_point", descendingOrderKey: "-estimate_point",
descendingOrderTitle: "High", descendingOrderTitle: "High",
icon: Triangle,
}, },
labels: { labels: {
title: "Labels", title: "Labels",
@ -43,6 +52,7 @@ export const SPREADSHEET_PROPERTY_DETAILS: {
ascendingOrderTitle: "A", ascendingOrderTitle: "A",
descendingOrderKey: "-labels__name", descendingOrderKey: "-labels__name",
descendingOrderTitle: "Z", descendingOrderTitle: "Z",
icon: Tag,
}, },
priority: { priority: {
title: "Priority", title: "Priority",
@ -50,6 +60,7 @@ export const SPREADSHEET_PROPERTY_DETAILS: {
ascendingOrderTitle: "None", ascendingOrderTitle: "None",
descendingOrderKey: "-priority", descendingOrderKey: "-priority",
descendingOrderTitle: "Urgent", descendingOrderTitle: "Urgent",
icon: Signal,
}, },
start_date: { start_date: {
title: "Start date", title: "Start date",
@ -57,6 +68,7 @@ export const SPREADSHEET_PROPERTY_DETAILS: {
ascendingOrderTitle: "New", ascendingOrderTitle: "New",
descendingOrderKey: "start_date", descendingOrderKey: "start_date",
descendingOrderTitle: "Old", descendingOrderTitle: "Old",
icon: CalendarDays,
}, },
state: { state: {
title: "State", title: "State",
@ -64,6 +76,7 @@ export const SPREADSHEET_PROPERTY_DETAILS: {
ascendingOrderTitle: "A", ascendingOrderTitle: "A",
descendingOrderKey: "-state__name", descendingOrderKey: "-state__name",
descendingOrderTitle: "Z", descendingOrderTitle: "Z",
icon: DoubleCircleIcon,
}, },
updated_on: { updated_on: {
title: "Updated on", title: "Updated on",
@ -71,6 +84,7 @@ export const SPREADSHEET_PROPERTY_DETAILS: {
ascendingOrderTitle: "New", ascendingOrderTitle: "New",
descendingOrderKey: "updated_at", descendingOrderKey: "updated_at",
descendingOrderTitle: "Old", descendingOrderTitle: "Old",
icon: CalendarDays,
}, },
link: { link: {
title: "Link", title: "Link",
@ -78,6 +92,7 @@ export const SPREADSHEET_PROPERTY_DETAILS: {
ascendingOrderTitle: "Most", ascendingOrderTitle: "Most",
descendingOrderKey: "link_count", descendingOrderKey: "link_count",
descendingOrderTitle: "Least", descendingOrderTitle: "Least",
icon: Link2,
}, },
attachment_count: { attachment_count: {
title: "Attachment", title: "Attachment",
@ -85,6 +100,7 @@ export const SPREADSHEET_PROPERTY_DETAILS: {
ascendingOrderTitle: "Most", ascendingOrderTitle: "Most",
descendingOrderKey: "attachment_count", descendingOrderKey: "attachment_count",
descendingOrderTitle: "Least", descendingOrderTitle: "Least",
icon: Paperclip,
}, },
sub_issue_count: { sub_issue_count: {
title: "Sub-issue", title: "Sub-issue",
@ -92,5 +108,6 @@ export const SPREADSHEET_PROPERTY_DETAILS: {
ascendingOrderTitle: "Most", ascendingOrderTitle: "Most",
descendingOrderKey: "sub_issues_count", descendingOrderKey: "sub_issues_count",
descendingOrderTitle: "Least", descendingOrderTitle: "Least",
icon: LayersIcon,
}, },
}; };