mirror of
https://github.com/makeplane/plane
synced 2025-08-07 19:59:33 +00:00
[WEB-4130] fix: cycle charts minor optimizations (#7123)
This commit is contained in:
@@ -32,7 +32,7 @@ type Options = {
|
||||
|
||||
export const cycleEstimateOptions: Options[] = [
|
||||
{ value: "issues", label: "Work items" },
|
||||
{ value: "points", label: "Points" },
|
||||
{ value: "points", label: "Estimates" },
|
||||
];
|
||||
export const cycleChartOptions: Options[] = [
|
||||
{ value: "burndown", label: "Burn-down" },
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
import React from "react";
|
||||
import { observer } from "mobx-react-lite";
|
||||
import { TCycleEstimateType } from "@plane/types";
|
||||
import { EEstimateSystem } from "@plane/types/src/enums";
|
||||
import { CustomSelect } from "@plane/ui";
|
||||
import { useCycle, useProjectEstimates } from "@/hooks/store";
|
||||
import { cycleEstimateOptions } from "../analytics-sidebar";
|
||||
@@ -12,12 +14,13 @@ type TProps = {
|
||||
cycleId: string;
|
||||
};
|
||||
|
||||
export const EstimateTypeDropdown = (props: TProps) => {
|
||||
export const EstimateTypeDropdown = observer((props: TProps) => {
|
||||
const { value, onChange, projectId, cycleId, showDefault = false } = props;
|
||||
const { getIsPointsDataAvailable } = useCycle();
|
||||
const { areEstimateEnabledByProjectId } = useProjectEstimates();
|
||||
const { areEstimateEnabledByProjectId, currentProjectEstimateType } = useProjectEstimates();
|
||||
const isCurrentProjectEstimateEnabled = projectId && areEstimateEnabledByProjectId(projectId) ? true : false;
|
||||
return getIsPointsDataAvailable(cycleId) || isCurrentProjectEstimateEnabled ? (
|
||||
return (getIsPointsDataAvailable(cycleId) || isCurrentProjectEstimateEnabled) &&
|
||||
currentProjectEstimateType !== EEstimateSystem.CATEGORIES ? (
|
||||
<div className="relative flex items-center gap-2">
|
||||
<CustomSelect
|
||||
value={value}
|
||||
@@ -36,4 +39,4 @@ export const EstimateTypeDropdown = (props: TProps) => {
|
||||
) : showDefault ? (
|
||||
<span className="capitalize">{value}</span>
|
||||
) : null;
|
||||
};
|
||||
});
|
||||
|
||||
@@ -27,6 +27,7 @@ export interface IProjectEstimateStore {
|
||||
currentActiveEstimateId: string | undefined;
|
||||
currentActiveEstimate: IEstimate | undefined;
|
||||
archivedEstimateIds: string[] | undefined;
|
||||
currentProjectEstimateType: TEstimateSystemKeys | undefined;
|
||||
areEstimateEnabledByProjectId: (projectId: string) => boolean;
|
||||
estimateIdsByProjectId: (projectId: string) => string[] | undefined;
|
||||
currentActiveEstimateIdByProjectId: (projectId: string) => string | undefined;
|
||||
@@ -63,6 +64,7 @@ export class ProjectEstimateStore implements IProjectEstimateStore {
|
||||
currentActiveEstimateId: computed,
|
||||
currentActiveEstimate: computed,
|
||||
archivedEstimateIds: computed,
|
||||
currentProjectEstimateType: computed,
|
||||
// actions
|
||||
getWorkspaceEstimates: action,
|
||||
getProjectEstimates: action,
|
||||
@@ -73,6 +75,11 @@ export class ProjectEstimateStore implements IProjectEstimateStore {
|
||||
}
|
||||
|
||||
// computed
|
||||
|
||||
get currentProjectEstimateType(): TEstimateSystemKeys | undefined {
|
||||
return this.currentActiveEstimateId ? this.estimates[this.currentActiveEstimateId]?.type : undefined;
|
||||
}
|
||||
|
||||
/**
|
||||
* @description get current active estimate id for a project
|
||||
* @returns { string | undefined }
|
||||
|
||||
Reference in New Issue
Block a user