diff --git a/web/components/cycles/sidebar.tsx b/web/components/cycles/sidebar.tsx index 1fd1cd05c..dcf86bb46 100644 --- a/web/components/cycles/sidebar.tsx +++ b/web/components/cycles/sidebar.tsx @@ -17,7 +17,16 @@ import { CycleDeleteModal } from "components/cycles/delete-modal"; import { CustomRangeDatePicker } from "components/ui"; import { Avatar, CustomMenu, Loader, LayersIcon } from "@plane/ui"; // icons -import { ChevronDown, LinkIcon, Trash2, UserCircle2, AlertCircle, ChevronRight, MoveRight } from "lucide-react"; +import { + ChevronDown, + LinkIcon, + Trash2, + UserCircle2, + AlertCircle, + ChevronRight, + CalendarCheck2, + CalendarClock, +} from "lucide-react"; // helpers import { copyUrlToClipboard } from "helpers/string.helper"; import { @@ -357,8 +366,7 @@ export const CycleDetailsSidebar: React.FC = observer((props) => { -
-

{cycleDetails.name}

+
{currentCycle && ( = observer((props) => { : `${currentCycle.label}`} )} -
- +
+

{cycleDetails.name}

+
+ + {cycleDetails.description && ( + + {cycleDetails.description} + + )} + +
+
+
+ + Start Date +
+
+ - {areYearsEqual ? renderShortDate(startDate, "_ _") : renderShortMonthDate(startDate, "_ _")} + + {areYearsEqual + ? renderShortDate(startDate, "No date selected") + : renderShortMonthDate(startDate, "No date selected")} + = observer((props) => { leaveFrom="opacity-100 translate-y-0" leaveTo="opacity-0 translate-y-1" > - + { @@ -410,16 +442,32 @@ export const CycleDetailsSidebar: React.FC = observer((props) => { - - +
+
+ +
+
+ + Target Date +
+
+ <> - {areYearsEqual ? renderShortDate(endDate, "_ _") : renderShortMonthDate(endDate, "_ _")} + + {areYearsEqual + ? renderShortDate(endDate, "No date selected") + : renderShortMonthDate(endDate, "No date selected")} + = observer((props) => { leaveFrom="opacity-100 translate-y-0" leaveTo="opacity-0 translate-y-1" > - + { @@ -451,15 +499,7 @@ export const CycleDetailsSidebar: React.FC = observer((props) => {
-
- {cycleDetails.description && ( - - {cycleDetails.description} - - )} - -
diff --git a/web/components/modules/select/lead.tsx b/web/components/modules/select/lead.tsx index d84d67237..8f376618c 100644 --- a/web/components/modules/select/lead.tsx +++ b/web/components/modules/select/lead.tsx @@ -7,7 +7,7 @@ import { ProjectMemberService } from "services/project"; import { Avatar, CustomSearchSelect } from "@plane/ui"; // icons import { Combobox } from "@headlessui/react"; -import { UserCircle } from "lucide-react"; +import { UserCircle, UserCircle2 } from "lucide-react"; // fetch-keys import { PROJECT_MEMBERS } from "constants/fetch-keys"; @@ -65,9 +65,10 @@ export const ModuleLeadSelect: React.FC = ({ value, onChange }) => { value="" className="flex cursor-pointer select-none items-center justify-between gap-2 truncate rounded px-1 py-1.5 text-custom-text-200" > - - No Lead - +
+ + No lead +
} onChange={onChange} diff --git a/web/components/modules/sidebar-select/select-lead.tsx b/web/components/modules/sidebar-select/select-lead.tsx index f675925c4..91a70504f 100644 --- a/web/components/modules/sidebar-select/select-lead.tsx +++ b/web/components/modules/sidebar-select/select-lead.tsx @@ -31,6 +31,17 @@ export const SidebarLeadSelect: FC = (props) => { : null ); + const noLeadOption = { + value: "", + query: "No lead", + content: ( +
+ + No lead +
+ ), + }; + const options = members?.map((member) => ({ value: member.member.id, query: member.member.display_name, @@ -42,6 +53,8 @@ export const SidebarLeadSelect: FC = (props) => { ), })); + const leadOption = (options || []).concat(noLeadOption); + const selectedOption = members?.find((m) => m.member.id === value)?.member; return ( @@ -69,7 +82,7 @@ export const SidebarLeadSelect: FC = (props) => {
) } - options={options} + options={leadOption} maxHeight="md" onChange={onChange} /> diff --git a/web/components/modules/sidebar.tsx b/web/components/modules/sidebar.tsx index 3c9552465..3fe7bf57e 100644 --- a/web/components/modules/sidebar.tsx +++ b/web/components/modules/sidebar.tsx @@ -15,7 +15,17 @@ import ProgressChart from "components/core/sidebar/progress-chart"; import { CustomRangeDatePicker } from "components/ui"; import { CustomMenu, Loader, LayersIcon, CustomSelect, ModuleStatusIcon } from "@plane/ui"; // icon -import { AlertCircle, ChevronDown, ChevronRight, Info, LinkIcon, MoveRight, Plus, Trash2 } from "lucide-react"; +import { + AlertCircle, + CalendarCheck2, + CalendarClock, + ChevronDown, + ChevronRight, + Info, + LinkIcon, + Plus, + Trash2, +} from "lucide-react"; // helpers import { isDateGreaterThanToday, @@ -227,7 +237,13 @@ export const ModuleDetailsSidebar: React.FC = observer((props) => { else newValues.push(value); } - updateFilters(workspaceSlug.toString(), projectId.toString(), EFilterType.FILTERS, { [key]: newValues }, moduleId); + updateFilters( + workspaceSlug.toString(), + projectId.toString(), + EFilterType.FILTERS, + { [key]: newValues }, + moduleId + ); }, [workspaceSlug, projectId, moduleId, issueFilters, updateFilters] ); @@ -328,8 +344,7 @@ export const ModuleDetailsSidebar: React.FC = observer((props) => {
-

{moduleDetails.name}

-
+
= observer((props) => { )} /> +
+

{moduleDetails.name}

+
-
- + {moduleDetails.description && ( + + {moduleDetails.description} + + )} + +
+
+
+ + + Start Date +
+
+ - {areYearsEqual ? renderShortDate(startDate, "_ _") : renderShortMonthDate(startDate, "_ _")} + + {areYearsEqual + ? renderShortDate(startDate, "No date selected") + : renderShortMonthDate(startDate, "No date selected")} + = observer((props) => { leaveFrom="opacity-100 translate-y-0" leaveTo="opacity-0 translate-y-1" > - + { @@ -402,16 +441,32 @@ export const ModuleDetailsSidebar: React.FC = observer((props) => { - - +
+
+ +
+
+ + Target Date +
+
+ <> - {areYearsEqual ? renderShortDate(endDate, "_ _") : renderShortMonthDate(endDate, "_ _")} + + {areYearsEqual + ? renderShortDate(endDate, "No date selected") + : renderShortMonthDate(endDate, "No date selected")} + = observer((props) => { leaveFrom="opacity-100 translate-y-0" leaveTo="opacity-0 translate-y-1" > - + { @@ -442,15 +497,6 @@ export const ModuleDetailsSidebar: React.FC = observer((props) => {
-
- - {moduleDetails.description && ( - - {moduleDetails.description} - - )} - -
{ > Favorites {open ? ( - + ) : ( - + )} {isAuthorizedUser && ( @@ -215,9 +215,9 @@ export const ProjectSidebarList: FC = observer(() => { > Projects {open ? ( - + ) : ( - + )} {isAuthorizedUser && (