mirror of
https://github.com/makeplane/plane
synced 2024-06-14 14:31:34 +00:00
daa3094911
* chore: dynamic position dropdown (#2138) * chore: dynamic position state dropdown for issue view * style: state select dropdown styling * fix: state icon attribute names * chore: state select dynamic dropdown * chore: member select dynamic dropdown * chore: label select dynamic dropdown * chore: priority select dynamic dropdown * chore: label select dropdown improvement * refactor: state dropdown location * chore: dropdown improvement and code refactor * chore: dynamic dropdown hook type added --------- Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com> * fix: fields not getting selected in the create issue form (#2212) * fix: hydration error and draft issue workflow * fix: build error * fix: properties getting de-selected after create, module & cycle not getting auto-select on the form * fix: display layout, props being updated directly * chore: sub issues count in individual issue (#2221) * Implemented nested issues in the sub issues section in issue detail page (#2233) * feat: subissues infinte level * feat: updated UI for sub issues * feat: subissues new ui and nested sub issues in issue detail * chore: removed repeated code * refactor: product updates modal layout (#2225) * fix: handle no issues in custom analytics (#2226) * fix: activity label color (#2227) * fix: profile issues layout switch (#2228) * chore: update service imports * chore: update issue detail store to handle peek overview --------- Co-authored-by: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com> Co-authored-by: Dakshesh Jain <65905942+dakshesh14@users.noreply.github.com> Co-authored-by: Bavisetti Narayan <72156168+NarayanBavisetti@users.noreply.github.com> Co-authored-by: guru_sainath <gurusainath007@gmail.com>
26 lines
832 B
TypeScript
26 lines
832 B
TypeScript
export interface IProgressBar {
|
|
total: number;
|
|
done: number;
|
|
}
|
|
|
|
export const ProgressBar = ({ total = 0, done = 0 }: IProgressBar) => {
|
|
const calPercentage = (doneValue: number, totalValue: number): string => {
|
|
if (doneValue === 0 || totalValue === 0) return (0).toFixed(0);
|
|
return ((100 * doneValue) / totalValue).toFixed(0);
|
|
};
|
|
|
|
return (
|
|
<div className="relative flex items-center gap-2">
|
|
<div className="w-full">
|
|
<div className="w-full rounded-full bg-custom-background-80 overflow-hidden shadow">
|
|
<div
|
|
className="bg-green-500 h-[6px] rounded-full"
|
|
style={{ width: `${calPercentage(done, total)}%` }}
|
|
/>
|
|
</div>
|
|
</div>
|
|
<div className="flex-shrink-0 text-xs font-medium">{calPercentage(done, total)}% Done</div>
|
|
</div>
|
|
);
|
|
};
|