import { observer } from "mobx-react-lite"; import { Droppable } from "@hello-pangea/dnd"; // mobx store import { useMobxStore } from "lib/mobx/store-provider"; // components import { CalendarIssueBlocks, ICalendarDate, CalendarQuickAddIssueForm } from "components/issues"; // helpers import { renderDateFormat } from "helpers/date-time.helper"; // constants import { MONTHS_LIST } from "constants/calendar"; import { IIssue } from "types"; import { EIssueActions } from "../types"; import { IGroupedIssues, IIssueResponse } from "store/issues/types"; type Props = { date: ICalendarDate; issues: IIssueResponse | undefined; groupedIssueIds: IGroupedIssues; handleIssues: (date: string, issue: IIssue, action: EIssueActions) => void; quickActions: (issue: IIssue) => React.ReactNode; enableQuickIssueCreate?: boolean; quickAddCallback?: ( workspaceSlug: string, projectId: string, data: IIssue, viewId?: string ) => Promise; viewId?: string; }; export const CalendarDayTile: React.FC = observer((props) => { const { date, issues, groupedIssueIds, handleIssues, quickActions, enableQuickIssueCreate, quickAddCallback, viewId, } = props; const { issueFilter: issueFilterStore } = useMobxStore(); const calendarLayout = issueFilterStore.userDisplayFilters.calendar?.layout ?? "month"; const issueIdList = groupedIssueIds ? groupedIssueIds[renderDateFormat(date.date)] : null; return ( <>
{/* header */}
{date.date.getDate() === 1 && MONTHS_LIST[date.date.getMonth() + 1].shortTitle + " "} {date.date.getDate()}
{/* content */}
{(provided, snapshot) => (
{enableQuickIssueCreate && (
)} {provided.placeholder}
)}
); });