forked from github/plane
c9337d4a41
* fix: created dashboard, widgets and dashboard widget model * fix: new user home dashboard * chore: recent projects list * chore: recent collaborators * chore: priority order change * chore: payload changes * chore: collaborator's active issue count * chore: all dashboard widgets added with services and typs * chore: centered metric for pie chart * chore: widget filters * chore: created issue filter * fix: created and assigned issues payload change * chore: created issue payload change * fix: date filter change * chore: implement filters * fix: added expansion fields * fix: changed issue structure with relation * chore: new issues response * fix: project member fix * chore: updated issue_relation structure * chore: code cleanup * chore: update issues response and added empty states * fix: button text wrap * chore: update empty state messages * fix: filters * chore: update dark mode empty states * build-error: Type check in the issue relation service * fix: issues redirection * fix: project empty state * chore: project member active check * chore: project member check in state and priority * chore: remove console logs and replace harcoded values with constants * fix: code refactoring * fix: key name changed * refactor: mapping through similar components using an array * fix: build errors --------- Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com> Co-authored-by: gurusainath <gurusainath007@gmail.com>
43 lines
1.5 KiB
TypeScript
43 lines
1.5 KiB
TypeScript
import { endOfMonth, endOfWeek, endOfYear, startOfMonth, startOfWeek, startOfYear } from "date-fns";
|
|
// helpers
|
|
import { renderFormattedPayloadDate } from "./date-time.helper";
|
|
// types
|
|
import { TDurationFilterOptions, TIssuesListTypes } from "@plane/types";
|
|
|
|
export const getCustomDates = (duration: TDurationFilterOptions): string => {
|
|
const today = new Date();
|
|
let firstDay, lastDay;
|
|
|
|
switch (duration) {
|
|
case "today":
|
|
firstDay = renderFormattedPayloadDate(today);
|
|
lastDay = renderFormattedPayloadDate(today);
|
|
return `${firstDay};after,${lastDay};before`;
|
|
case "this_week":
|
|
firstDay = renderFormattedPayloadDate(startOfWeek(today));
|
|
lastDay = renderFormattedPayloadDate(endOfWeek(today));
|
|
return `${firstDay};after,${lastDay};before`;
|
|
case "this_month":
|
|
firstDay = renderFormattedPayloadDate(startOfMonth(today));
|
|
lastDay = renderFormattedPayloadDate(endOfMonth(today));
|
|
return `${firstDay};after,${lastDay};before`;
|
|
case "this_year":
|
|
firstDay = renderFormattedPayloadDate(startOfYear(today));
|
|
lastDay = renderFormattedPayloadDate(endOfYear(today));
|
|
return `${firstDay};after,${lastDay};before`;
|
|
}
|
|
};
|
|
|
|
export const getRedirectionFilters = (type: TIssuesListTypes): string => {
|
|
const today = renderFormattedPayloadDate(new Date());
|
|
|
|
const filterParams =
|
|
type === "upcoming"
|
|
? `?target_date=${today};after`
|
|
: type === "overdue"
|
|
? `?target_date=${today};before`
|
|
: "?state_group=completed";
|
|
|
|
return filterParams;
|
|
};
|