From 14dd498d085b9de83ed2d5c03aa7ec1678e41d9e Mon Sep 17 00:00:00 2001 From: Anmol Singh Bhatia <121005188+anmolsinghbhatia@users.noreply.github.com> Date: Thu, 6 Apr 2023 15:07:11 +0530 Subject: [PATCH] feat: issue attachments feature (#717) * chore: issue attachment services added * feat: attachment icons added * chore: fetch-key and icons export * feat: issue attachment upload section added * feat: issue attachment list section added * feat: date helper function added * style: responsiveness added * feat: attachment info added * style: attachment overflow fix * style: cursor pointer added * chore: issue attachment interface * style: uploading state added * feat: delete issue attachment modal * style: style improvement and refactor * style: consistent icon added , chore: refactor the code * fix: js icon import fix * fix: build fix * chore: refactor code --- apps/app/components/icons/attachment-icon.tsx | 61 +++++--- apps/app/components/icons/css-file-icon.tsx | 9 ++ apps/app/components/icons/csv-file-icon.tsx | 9 ++ apps/app/components/icons/doc-file-icon.tsx | 9 ++ apps/app/components/icons/figma-file-icon.tsx | 9 ++ apps/app/components/icons/html-file-icon.tsx | 9 ++ apps/app/components/icons/img-file-icon.tsx | 9 ++ apps/app/components/icons/index.ts | 15 +- apps/app/components/icons/jpg-file-icon.tsx | 9 ++ apps/app/components/icons/js-file-icon.tsx | 9 ++ apps/app/components/icons/pdf-file-icon.tsx | 9 ++ apps/app/components/icons/png-file-icon.tsx | 9 ++ apps/app/components/icons/sheet-file-icon.tsx | 9 ++ apps/app/components/icons/svg-file-icon.tsx | 9 ++ apps/app/components/icons/txt-file-icon.tsx | 9 ++ .../components/issues/attachment-upload.tsx | 100 ++++++++++++ apps/app/components/issues/attachments.tsx | 111 ++++++++++++++ .../issues/delete-attachment-modal.tsx | 144 ++++++++++++++++++ apps/app/components/issues/index.ts | 3 + apps/app/constants/fetch-keys.ts | 1 + apps/app/helpers/attachment.helper.ts | 22 +++ apps/app/helpers/date-time.helper.ts | 39 ++++- .../projects/[projectId]/issues/[issueId].tsx | 9 ++ apps/app/public/attachment/css-icon.png | Bin 0 -> 12703 bytes apps/app/public/attachment/csv-icon.png | Bin 0 -> 9681 bytes apps/app/public/attachment/doc-icon.png | Bin 0 -> 15175 bytes apps/app/public/attachment/excel-icon.png | Bin 0 -> 6708 bytes apps/app/public/attachment/figma-icon.png | Bin 0 -> 15614 bytes apps/app/public/attachment/html-icon.png | Bin 0 -> 6665 bytes apps/app/public/attachment/img-icon.png | Bin 0 -> 10447 bytes apps/app/public/attachment/jpg-icon.png | Bin 0 -> 12088 bytes apps/app/public/attachment/js-icon.png | Bin 0 -> 10992 bytes apps/app/public/attachment/pdf-icon.png | Bin 0 -> 13038 bytes apps/app/public/attachment/png-icon.png | Bin 0 -> 12486 bytes apps/app/public/attachment/svg-icon.png | Bin 0 -> 12899 bytes apps/app/public/attachment/txt-icon.png | Bin 0 -> 11142 bytes apps/app/services/issues.service.ts | 45 ++++++ apps/app/types/issues.d.ts | 16 ++ 38 files changed, 664 insertions(+), 19 deletions(-) create mode 100644 apps/app/components/icons/css-file-icon.tsx create mode 100644 apps/app/components/icons/csv-file-icon.tsx create mode 100644 apps/app/components/icons/doc-file-icon.tsx create mode 100644 apps/app/components/icons/figma-file-icon.tsx create mode 100644 apps/app/components/icons/html-file-icon.tsx create mode 100644 apps/app/components/icons/img-file-icon.tsx create mode 100644 apps/app/components/icons/jpg-file-icon.tsx create mode 100644 apps/app/components/icons/js-file-icon.tsx create mode 100644 apps/app/components/icons/pdf-file-icon.tsx create mode 100644 apps/app/components/icons/png-file-icon.tsx create mode 100644 apps/app/components/icons/sheet-file-icon.tsx create mode 100644 apps/app/components/icons/svg-file-icon.tsx create mode 100644 apps/app/components/icons/txt-file-icon.tsx create mode 100644 apps/app/components/issues/attachment-upload.tsx create mode 100644 apps/app/components/issues/attachments.tsx create mode 100644 apps/app/components/issues/delete-attachment-modal.tsx create mode 100644 apps/app/helpers/attachment.helper.ts create mode 100644 apps/app/public/attachment/css-icon.png create mode 100644 apps/app/public/attachment/csv-icon.png create mode 100644 apps/app/public/attachment/doc-icon.png create mode 100644 apps/app/public/attachment/excel-icon.png create mode 100644 apps/app/public/attachment/figma-icon.png create mode 100644 apps/app/public/attachment/html-icon.png create mode 100644 apps/app/public/attachment/img-icon.png create mode 100644 apps/app/public/attachment/jpg-icon.png create mode 100644 apps/app/public/attachment/js-icon.png create mode 100644 apps/app/public/attachment/pdf-icon.png create mode 100644 apps/app/public/attachment/png-icon.png create mode 100644 apps/app/public/attachment/svg-icon.png create mode 100644 apps/app/public/attachment/txt-icon.png diff --git a/apps/app/components/icons/attachment-icon.tsx b/apps/app/components/icons/attachment-icon.tsx index 6fe435493..59c32ea60 100644 --- a/apps/app/components/icons/attachment-icon.tsx +++ b/apps/app/components/icons/attachment-icon.tsx @@ -1,19 +1,46 @@ -import React from "react"; +import { + CssIcon, + CsvIcon, + DocIcon, + FigmaIcon, + HtmlIcon, + JavaScriptIcon, + JpgIcon, + PdfIcon, + PngIcon, + SheetIcon, + SvgIcon, + TxtIcon, +} from "components/icons"; -import type { Props } from "./types"; +export const getFileIcon = (fileType: string) => { + switch (fileType) { + case "pdf": + return ; + case "csv": + return ; + case "xlsx": + return ; + case "css": + return ; + case "doc": + return ; + case "fig": + return ; + case "html": + return ; + case "png": + return ; + case "jpg": + return ; + case "js": + return ; + case "txt": + return ; + case "svg": + return ; -export const AttachmentIcon: React.FC = ({ width, height, className }) => ( - - - - ); + default: + return ; + } +}; diff --git a/apps/app/components/icons/css-file-icon.tsx b/apps/app/components/icons/css-file-icon.tsx new file mode 100644 index 000000000..54b563d37 --- /dev/null +++ b/apps/app/components/icons/css-file-icon.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import Image from "next/image"; + +import type { Props } from "./types"; +import CssFileIcon from "public/attachment/css-icon.png"; + +export const CssIcon: React.FC = ({ width, height }) => ( + CssFileIcon +); diff --git a/apps/app/components/icons/csv-file-icon.tsx b/apps/app/components/icons/csv-file-icon.tsx new file mode 100644 index 000000000..63f01205e --- /dev/null +++ b/apps/app/components/icons/csv-file-icon.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import Image from "next/image"; + +import type { Props } from "./types"; +import CSVFileIcon from "public/attachment/csv-icon.png"; + +export const CsvIcon: React.FC = ({ width , height }) => ( + CSVFileIcon +); diff --git a/apps/app/components/icons/doc-file-icon.tsx b/apps/app/components/icons/doc-file-icon.tsx new file mode 100644 index 000000000..173d40df1 --- /dev/null +++ b/apps/app/components/icons/doc-file-icon.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import Image from "next/image"; + +import type { Props } from "./types"; +import DocFileIcon from "public/attachment/doc-icon.png"; + +export const DocIcon: React.FC = ({ width , height }) => ( + DocFileIcon +); diff --git a/apps/app/components/icons/figma-file-icon.tsx b/apps/app/components/icons/figma-file-icon.tsx new file mode 100644 index 000000000..7ff9f6ac0 --- /dev/null +++ b/apps/app/components/icons/figma-file-icon.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import Image from "next/image"; + +import type { Props } from "./types"; +import FigmaFileIcon from "public/attachment/figma-icon.png"; + +export const FigmaIcon: React.FC = ({ width , height }) => ( + FigmaFileIcon +); diff --git a/apps/app/components/icons/html-file-icon.tsx b/apps/app/components/icons/html-file-icon.tsx new file mode 100644 index 000000000..9de4080b0 --- /dev/null +++ b/apps/app/components/icons/html-file-icon.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import Image from "next/image"; + +import type { Props } from "./types"; +import HtmlFileIcon from "public/attachment/html-icon.png"; + +export const HtmlIcon: React.FC = ({ width, height }) => ( + HtmlFileIcon +); diff --git a/apps/app/components/icons/img-file-icon.tsx b/apps/app/components/icons/img-file-icon.tsx new file mode 100644 index 000000000..1333957c1 --- /dev/null +++ b/apps/app/components/icons/img-file-icon.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import Image from "next/image"; + +import type { Props } from "./types"; +import ImgFileIcon from "public/attachment/img-icon.png"; + +export const ImgIcon: React.FC = ({ width , height }) => ( + ImgFileIcon +); diff --git a/apps/app/components/icons/index.ts b/apps/app/components/icons/index.ts index a4f95eb4e..cd83cb5c6 100644 --- a/apps/app/components/icons/index.ts +++ b/apps/app/components/icons/index.ts @@ -56,4 +56,17 @@ export * from "./users"; export * from "./import-layers"; export * from "./check"; export * from "./water-drop-icon"; -export * from "./transfer-icon"; \ No newline at end of file +export * from "./transfer-icon"; +export * from "./pdf-file-icon"; +export * from "./csv-file-icon"; +export * from "./sheet-file-icon"; +export * from "./doc-file-icon"; +export * from "./html-file-icon"; +export * from "./css-file-icon"; +export * from "./js-file-icon"; +export * from "./figma-file-icon"; +export * from "./img-file-icon"; +export * from "./png-file-icon"; +export * from "./jpg-file-icon"; +export * from "./svg-file-icon"; +export * from "./txt-file-icon"; \ No newline at end of file diff --git a/apps/app/components/icons/jpg-file-icon.tsx b/apps/app/components/icons/jpg-file-icon.tsx new file mode 100644 index 000000000..e88f0e47f --- /dev/null +++ b/apps/app/components/icons/jpg-file-icon.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import Image from "next/image"; + +import type { Props } from "./types"; +import JpgFileIcon from "public/attachment/jpg-icon.png"; + +export const JpgIcon: React.FC = ({ width, height }) => ( + JpgFileIcon +); diff --git a/apps/app/components/icons/js-file-icon.tsx b/apps/app/components/icons/js-file-icon.tsx new file mode 100644 index 000000000..9f879ba6b --- /dev/null +++ b/apps/app/components/icons/js-file-icon.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import Image from "next/image"; + +import type { Props } from "./types"; +import JsFileIcon from "public/attachment/js-icon.png"; + +export const JavaScriptIcon: React.FC = ({ width, height }) => ( + JsFileIcon +); diff --git a/apps/app/components/icons/pdf-file-icon.tsx b/apps/app/components/icons/pdf-file-icon.tsx new file mode 100644 index 000000000..5467f0812 --- /dev/null +++ b/apps/app/components/icons/pdf-file-icon.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import Image from "next/image"; + +import type { Props } from "./types"; +import PDFFileIcon from "public/attachment/pdf-icon.png"; + +export const PdfIcon: React.FC = ({ width , height }) => ( + PDFFileIcon +); diff --git a/apps/app/components/icons/png-file-icon.tsx b/apps/app/components/icons/png-file-icon.tsx new file mode 100644 index 000000000..21b5dc116 --- /dev/null +++ b/apps/app/components/icons/png-file-icon.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import Image from "next/image"; + +import type { Props } from "./types"; +import PngFileIcon from "public/attachment/png-icon.png"; + +export const PngIcon: React.FC = ({ width, height }) => ( + PngFileIcon +); diff --git a/apps/app/components/icons/sheet-file-icon.tsx b/apps/app/components/icons/sheet-file-icon.tsx new file mode 100644 index 000000000..9e57ce71c --- /dev/null +++ b/apps/app/components/icons/sheet-file-icon.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import Image from "next/image"; + +import type { Props } from "./types"; +import SheetFileIcon from "public/attachment/excel-icon.png"; + +export const SheetIcon: React.FC = ({ width, height }) => ( + SheetFileIcon +); diff --git a/apps/app/components/icons/svg-file-icon.tsx b/apps/app/components/icons/svg-file-icon.tsx new file mode 100644 index 000000000..d04ae3167 --- /dev/null +++ b/apps/app/components/icons/svg-file-icon.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import Image from "next/image"; + +import type { Props } from "./types"; +import SvgFileIcon from "public/attachment/svg-icon.png"; + +export const SvgIcon: React.FC = ({ width, height }) => ( + SvgFileIcon +); diff --git a/apps/app/components/icons/txt-file-icon.tsx b/apps/app/components/icons/txt-file-icon.tsx new file mode 100644 index 000000000..f0150a4cd --- /dev/null +++ b/apps/app/components/icons/txt-file-icon.tsx @@ -0,0 +1,9 @@ +import React from "react"; +import Image from "next/image"; + +import type { Props } from "./types"; +import TxtFileIcon from "public/attachment/txt-icon.png"; + +export const TxtIcon: React.FC = ({ width, height }) => ( + TxtFileIcon +); diff --git a/apps/app/components/issues/attachment-upload.tsx b/apps/app/components/issues/attachment-upload.tsx new file mode 100644 index 000000000..487981f7e --- /dev/null +++ b/apps/app/components/issues/attachment-upload.tsx @@ -0,0 +1,100 @@ +import React, { useCallback, useState } from "react"; + +import { useRouter } from "next/router"; + +import { mutate } from "swr"; + +// react-dropzone +import { useDropzone } from "react-dropzone"; +// toast +import useToast from "hooks/use-toast"; +// fetch key +import { ISSUE_ATTACHMENTS } from "constants/fetch-keys"; +// services +import issuesService from "services/issues.service"; +// type +import { IIssueAttachment } from "types"; + +const maxFileSize = 5 * 1024 * 1024; // 5 MB + +export const IssueAttachmentUpload = () => { + const [isLoading, setIsLoading] = useState(false); + + const router = useRouter(); + const { workspaceSlug, projectId, issueId } = router.query; + + const { setToastAlert } = useToast(); + + const onDrop = useCallback((acceptedFiles: File[]) => { + setIsLoading(true); + if (!acceptedFiles[0] || !workspaceSlug) return; + + const formData = new FormData(); + formData.append("asset", acceptedFiles[0]); + formData.append( + "attributes", + JSON.stringify({ + name: acceptedFiles[0].name, + size: acceptedFiles[0].size, + }) + ); + + issuesService + .uploadIssueAttachment( + workspaceSlug as string, + projectId as string, + issueId as string, + formData + ) + .then((res) => { + mutate(ISSUE_ATTACHMENTS(issueId as string)); + setToastAlert({ + type: "success", + title: "Success!", + message: "File added successfully.", + }); + setIsLoading(false); + }) + .catch((err) => { + setIsLoading(false); + setToastAlert({ + type: "error", + title: "error!", + message: "Something went wrong. please check file type & size (max 5 MB)", + }); + }); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []); + + const { getRootProps, getInputProps, isDragActive, isDragReject, fileRejections } = useDropzone({ + onDrop, + maxSize: maxFileSize, + multiple: false, + }); + + const fileError = + fileRejections.length > 0 + ? `Invalid file type or size (max ${maxFileSize / 1024 / 1024} MB)` + : null; + + return ( +
+ + + {isDragActive ? ( +

Drop here...

+ ) : isLoading ? ( +

Uploading....

+ ) : ( +

Drag & Drop or Click to add new file

+ )} + {fileError &&

{fileError}

} +
+
+ ); +}; diff --git a/apps/app/components/issues/attachments.tsx b/apps/app/components/issues/attachments.tsx new file mode 100644 index 000000000..3408e5af0 --- /dev/null +++ b/apps/app/components/issues/attachments.tsx @@ -0,0 +1,111 @@ +import { useState } from "react"; + +import Link from "next/link"; +import { useRouter } from "next/router"; + +import useSWR from "swr"; + +// ui +import { Tooltip } from "components/ui"; +import { DeleteAttachmentModal } from "./delete-attachment-modal"; +// icons +import { XMarkIcon } from "@heroicons/react/24/outline"; +import { ExclamationIcon, getFileIcon } from "components/icons"; +// services +import issuesService from "services/issues.service"; +import projectService from "services/project.service"; +// fetch-key +import { ISSUE_ATTACHMENTS, PROJECT_MEMBERS } from "constants/fetch-keys"; +// helper +import { truncateText } from "helpers/string.helper"; +import { renderLongDateFormat } from "helpers/date-time.helper"; +import { convertBytesToSize, getFileExtension, getFileName } from "helpers/attachment.helper"; +// type +import { IIssueAttachment } from "types"; + +export const IssueAttachments = () => { + const [deleteAttachment, setDeleteAttachment] = useState(null); + const [attachmentDeleteModal, setAttachmentDeleteModal] = useState(false); + + const router = useRouter(); + const { workspaceSlug, projectId, issueId } = router.query; + + const { data: attachments } = useSWR( + workspaceSlug && projectId && issueId ? ISSUE_ATTACHMENTS(issueId as string) : null, + workspaceSlug && projectId && issueId + ? () => + issuesService.getIssueAttachment( + workspaceSlug as string, + projectId as string, + issueId as string + ) + : null + ); + + const { data: people } = useSWR( + workspaceSlug && projectId ? PROJECT_MEMBERS(projectId as string) : null, + workspaceSlug && projectId + ? () => projectService.projectMembers(workspaceSlug as string, projectId as string) + : null + ); + + return ( + <> + + {attachments && + attachments.length > 0 && + attachments.map((file) => ( + + ))} + + ); +}; diff --git a/apps/app/components/issues/delete-attachment-modal.tsx b/apps/app/components/issues/delete-attachment-modal.tsx new file mode 100644 index 000000000..92906244a --- /dev/null +++ b/apps/app/components/issues/delete-attachment-modal.tsx @@ -0,0 +1,144 @@ +import React, { useState } from "react"; + +import { useRouter } from "next/router"; + +import { mutate } from "swr"; + +// headless ui +import { Dialog, Transition } from "@headlessui/react"; +// services +import issuesService from "services/issues.service"; +// hooks +import useToast from "hooks/use-toast"; +// ui +import { SecondaryButton, DangerButton } from "components/ui"; +// icons +import { ExclamationTriangleIcon } from "@heroicons/react/24/outline"; +// helper +import { getFileName } from "helpers/attachment.helper"; +// types +import type { IIssueAttachment } from "types"; +// fetch-keys +import { ISSUE_ATTACHMENTS } from "constants/fetch-keys"; + +type Props = { + isOpen: boolean; + setIsOpen: React.Dispatch>; + data: IIssueAttachment | null; +}; + +export const DeleteAttachmentModal: React.FC = ({ isOpen, setIsOpen, data }) => { + const [isDeleteLoading, setIsDeleteLoading] = useState(false); + + const router = useRouter(); + const { workspaceSlug, projectId, issueId } = router.query; + + const { setToastAlert } = useToast(); + + const handleClose = () => { + setIsOpen(false); + setIsDeleteLoading(false); + }; + + const handleDeletion = async (assetId: string) => { + setIsDeleteLoading(true); + + if (!workspaceSlug || !projectId || !data) return; + + mutate(ISSUE_ATTACHMENTS(issueId as string)); + + await issuesService + .deleteIssueAttachment( + workspaceSlug as string, + projectId as string, + issueId as string, + assetId as string + ) + .then((res) => { + mutate(ISSUE_ATTACHMENTS(issueId as string)); + setToastAlert({ + type: "success", + title: "Success!", + message: "File removed successfully.", + }); + handleClose(); + }) + .catch((err) => { + setToastAlert({ + type: "error", + title: "error!", + message: "Something went wrong please try again.", + }); + setIsDeleteLoading(false); + }); + }; + + return ( + data && ( + + + +
+ + +
+
+ + +
+
+
+
+
+ + Delete Attachment + +
+

+ Are you sure you want to delete attachment-{" "} + {getFileName(data.attributes.name)}? + This attachment will be permanently removed. This action cannot be + undone. +

+
+
+
+
+
+ Cancel + handleDeletion(data.id)} loading={isDeleteLoading}> + {isDeleteLoading ? "Deleting..." : "Delete"} + +
+
+
+
+
+
+
+ ) + ); +}; diff --git a/apps/app/components/issues/index.ts b/apps/app/components/issues/index.ts index 18253c6d3..1b6c63b4a 100644 --- a/apps/app/components/issues/index.ts +++ b/apps/app/components/issues/index.ts @@ -9,3 +9,6 @@ export * from "./my-issues-list-item"; export * from "./parent-issues-list-modal"; export * from "./sidebar"; export * from "./sub-issues-list"; +export * from "./attachment-upload"; +export * from "./attachments"; +export * from "./delete-attachment-modal"; diff --git a/apps/app/constants/fetch-keys.ts b/apps/app/constants/fetch-keys.ts index f94ca2bff..25ce6096d 100644 --- a/apps/app/constants/fetch-keys.ts +++ b/apps/app/constants/fetch-keys.ts @@ -115,6 +115,7 @@ export const VIEW_DETAILS = (viewId: string) => `VIEW_DETAILS_${viewId.toUpperCa // Issues export const ISSUE_DETAILS = (issueId: string) => `ISSUE_DETAILS_${issueId.toUpperCase()}`; export const SUB_ISSUES = (issueId: string) => `SUB_ISSUES_${issueId.toUpperCase()}`; +export const ISSUE_ATTACHMENTS = (issueId: string) => `ISSUE_ATTACHMENTS_${issueId.toUpperCase()}`; // integrations export const APP_INTEGRATIONS = "APP_INTEGRATIONS"; diff --git a/apps/app/helpers/attachment.helper.ts b/apps/app/helpers/attachment.helper.ts new file mode 100644 index 000000000..24cfb2c49 --- /dev/null +++ b/apps/app/helpers/attachment.helper.ts @@ -0,0 +1,22 @@ +export const getFileExtension = (filename: string) => + filename.slice(((filename.lastIndexOf(".") - 1) >>> 0) + 2); + +export const getFileName = (fileName: string) => { + const dotIndex = fileName.lastIndexOf("."); + + const nameWithoutExtension = fileName.substring(0, dotIndex); + + return nameWithoutExtension; +}; + +export const convertBytesToSize = (bytes: number) => { + let size; + + if (bytes < 1024 * 1024) { + size = Math.round(bytes / 1024) + " KB"; + } else { + size = Math.round(bytes / (1024 * 1024)) + " MB"; + } + + return size; +}; diff --git a/apps/app/helpers/date-time.helper.ts b/apps/app/helpers/date-time.helper.ts index 397e87c9d..65789fd2e 100644 --- a/apps/app/helpers/date-time.helper.ts +++ b/apps/app/helpers/date-time.helper.ts @@ -89,7 +89,10 @@ export const timeAgo = (time: any) => { return time; }; -export const getDateRangeStatus = (startDate: string | null | undefined, endDate: string | null | undefined) => { +export const getDateRangeStatus = ( + startDate: string | null | undefined, + endDate: string | null | undefined +) => { if (!startDate || !endDate) return "draft"; const today = renderDateFormat(new Date()); @@ -173,3 +176,37 @@ export const renderShortTime = (date: string | Date) => { export const isDateRangeValid = (startDate: string, endDate: string) => new Date(startDate) < new Date(endDate); + +export const renderLongDateFormat = (dateString: string) => { + const date = new Date(dateString); + const day = date.getDate(); + const year = date.getFullYear(); + const monthNames = [ + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December", + ]; + const monthIndex = date.getMonth(); + const monthName = monthNames[monthIndex]; + const suffixes = ["st", "nd", "rd", "th"]; + let suffix = ""; + if (day === 1 || day === 21 || day === 31) { + suffix = suffixes[0]; + } else if (day === 2 || day === 22) { + suffix = suffixes[1]; + } else if (day === 3 || day === 23) { + suffix = suffixes[2]; + } else { + suffix = suffixes[3]; + } + return `${day}${suffix} ${monthName} ${year}`; +}; diff --git a/apps/app/pages/[workspaceSlug]/projects/[projectId]/issues/[issueId].tsx b/apps/app/pages/[workspaceSlug]/projects/[projectId]/issues/[issueId].tsx index 6a271428d..cf582439a 100644 --- a/apps/app/pages/[workspaceSlug]/projects/[projectId]/issues/[issueId].tsx +++ b/apps/app/pages/[workspaceSlug]/projects/[projectId]/issues/[issueId].tsx @@ -20,6 +20,8 @@ import { IssueDetailsSidebar, IssueActivitySection, AddComment, + IssueAttachmentUpload, + IssueAttachments, } from "components/issues"; // ui import { Loader, CustomMenu } from "components/ui"; @@ -198,6 +200,13 @@ const IssueDetailsPage: NextPage = (props) => { +
+

Attachments

+
+ + +
+

Comments/Activity

diff --git a/apps/app/public/attachment/css-icon.png b/apps/app/public/attachment/css-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cfb502d97ca7eca6032d84fb443c433c1422f461 GIT binary patch literal 12703 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 R-Ufg_+8PEI^40Bb{|9`Cf=d7Z literal 0 HcmV?d00001 diff --git a/apps/app/public/attachment/doc-icon.png b/apps/app/public/attachment/doc-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..d1433721b5be387b3f5419a0cd5fc4fe1d36a48a GIT binary patch literal 15175 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 ZWNU-hCU-9EgW6F@Q&s0-sq*s={|}OkY&8G? literal 0 HcmV?d00001 diff --git a/apps/app/public/attachment/excel-icon.png b/apps/app/public/attachment/excel-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b3a1b851edfa8f3327ccb12edea2aaae33612ed1 GIT binary patch literal 6708 zcmc&(c{tST+kd`e$V4%gtf@wkav~I2nmL7J&k{wIJU@?nNFReNRF~(Nt95Q zk~9^jvQ)Ona>`gTn2^y}8d=|a>UaJA`CZrVec$Unzw4dra(%y_=eeKzx$ozDZ_h2- z(SFymrOHbYLd$krnL8nbgI6397lX%ScC$vx+yUBS)#wX$u!CT-Tj}t_RfwPA1+%0#~%^cFle48{yOZhQfCLPyp+w@yr84$H{4&OOyXPxfFJK(6vEi#*( zSzNeSIW@{Q$sBUxVYea%m-G}5R=F=em*clYy;HEfIYByj0EojB0_gmEt5hR;<)7%x z#OiRnadsML@0)gqr=ce&t8R3dR}Bz{o`GelqjxjVC%XSaArBDr!2V zZc;XBJamlMmP$IfL7?V$zvFt?p1Z@b)gNScSs?8*NHOc!s>q3&eCK(4>oyhAL2V#9 za~)4Hk3#O}?0Hy0NSkZ=u_uM$2SR)Utn+53KKDuOy!V*g-nn_|ijL=kuiK(0?}s-A zI4Y}=`K5vDZzA9oS-8;Uh$F#cryqKBtr|5u6!ey>Gyj|(xf>|g;;4*=V~_i`l)rnY zLdw71P%diSmyX;`G2PV;J@Yv|g;_HR8~S3{9+~Fd1V%Lx)wxE$Coye%o=^P@h(QKxmY zO|Vq54zAY)M~$CptEWdt-3D^)v|8+QIF3qe>6A>FbG8bd3ZILPQKa?h0LE-N8> zxQ;EOk4VK1q@!sM9QE|_ySs~Gg@)CSRvvx+m3^I4WbhalZ7vq+O)GKbT=?;|pLzLW6;GRZ3(P;vJA?uW+Ls zsGjq4{dTfIj5=^al|sO?OpW8`M#*xoIq1DTs?U}|js`?ZDuHpr)px)P^$*yhW9!hM zbM-a0EMqQ>kQs|-opiG8&p@qbYOx2gDET@W!>bJhqGPZfcUC0rIdFO|p~@lwe-&}W zSSO7cq$A``B2p3vh~We9DnJb)MHV0iFcu+2X_y6KOa?Rf1E4O<0$d}FwZd9O86qVe zh}Xzqt*};6k4RYwP<}NoR|P}GJIqli38B50#WOeI5o@U|)_NMDmlXWvRCt)~gqXj~(G2+y9u&uHTCJ9S(wTLWT*hg6w zlZ3Uo+W^9>m^3DN4Iw{qB5O6wiV-o%3jh@X3TI_7?IeKfiL4+Yl*P0`WIrP!%L(8L zX-qp2Ac4p_D1<~z`wBoMB5Q{b%3x`i0K&c}@rZIU8fC-)gnea+2#HE#rm%MXS@GU6 z8GuA=?kvC<@zpyJlG}}6jnL9{xYru+(7?T32M$M0;W1>KAepY-v9CYs+3V>%}$FZe~gn5Gd{jvfKRl-x5DRB z_E~H`!_+L6Y{a*o2RQKT(0NXL$|0ujw;`|!2 zA_558aXy)aJEVP%W)#2<+i}P*jZ>l@So=aSnDLAeu6kL>c4$x}Y%qg`PN)`-=1e+)$;i|=Y!U0!#e)Xzu zMc1n|!kNK9)@M+ynP)QYcv8Ts06w@lk#jZ(#R^Jk0hgAJOK^SNHlPzzXWU@YHqmCFPmp#>Cyh^j%7nzOoK%9>Ja7%eQCs-C~Oj`*#+m zNA9H9*nO$xd{uc^eW}zVyK`tT;{`+2I51?8Cg?fQ%yX-luVa=$*hoH)7++L|Ci{*g zr1qsG_|~+)nu?#>@Bj3L=A{O9(C3UKdcTibq?RDjcp_mt7`Bg6T%>=>ft4P&4Xab$ zsvI00-qO4~-8dusW4hhL z=XD%NqU}sS5g^ff&&fO>B6PCD!Q2{lcHI)JCpfzwyvrf0B*I`ORa1RxF8}7KITw+7 z_1MX*$`c!m56!ckshJS>j@fyP6FAL1A3f0&gr;*h^|#B++ijA~%9wM(N$yb|s(zVR3h+26QXJaC_SuoZ zVJ5M%0a{xT%ZFT>y~)H^x5f5|04veZy>XU8G5fii($qh0#dovMi^V>+jS@ypvAoXc zg&eIULOg`Km+Pv5)rhA?)oYL`B~-H}tL(@ICpS@{=TVl0Skjt%?r$|#Zxj`J9>q?0 zgsGb85>yLN(RlX}o+qR3tfC%<9CvP#J@}W9B(!GN;C7wNo(8i&RzRHFk~q`#F(Bna zV}3l_*-r^5!?Y~uFO<1B#q}6^Bi;3i|1rRwqqjy3qO^gPZ(9^F6es_PmQ8&0*&+OR ze!4(M5lUV2>ZAQ7ZpMzCkXCZ6|Dp8sofSGk@%p@;bQ9H&dN(YESHT^)#Dux6F-}KzxafLRzw?=+b};i> zdRumLkEv1~*C(fNt`6zS9l6Q%q{I@y@HIkB$lDckp^A-L18!3&*PQA#s(0fW@VOiH z?MvBN3`Y#*i7YNfcat0a0(fetVe8s4fzF6+9*0Gvzz6n(kqMQnC0cDk&%5R1O=cz;z zoLp9AB$uO1?F&54`Am`L9famt~a-+XhMLa{#_p5^YYMm7^A5q^MtoO#0O zk*!|}aEWb8SG?GrlV^26z8I1b!*b-?mp&F^8Ns}50JT*n->FP?zM)Z6`y7CkPS;En zbjx2e8KO{yJg^Q6GL2C2)Ce(#rR`r|`Rp*=27+w76>0cAbULoapjrY`|Jz8_3dHYG7i0)Pv^i$ki+k9$5-W^@b4@wd0l=Zq^mW$hCi$Et*V@vId7_#`A`*iGch9l*QaCL$gYdz*r^HM#gM1m=Vj)GU$@wpeSLK^ zF>>NWrJN2s#EYj?tgX{Mem8t1*gJtHX1WHWjGCSba(>E7(P=Of5$lWP&Yv;zZKz@E z_Xgro>BOLK`RmS{2bM)|W9eVgyz9+G)M^9v9lg~tRAZ4b`&O^$ubHQcqhErX7|!D8 zs88+tf(3S5`@XJK7r6!W{XC`LmSU6wf3Gd+G@NAhzB?V<40Kx>wZ5MGXwD<(%BAit zXfVU<*Pz_1_Tx7WJa9G)4R#Q+LhCOh#K3`L{ks=O9RX5&7&rRWdaiSXe2rFffjK_s zR(qAZ_~LYA!<~Sqn+hxV4ohaXjC@*2A1e)f^+f_Cy)nKV0vH4_%4smt|MW`)a|x?> zG zlbo`_3~c8*bPZ0&4o8A`EoPv9o%}UXytUr)1PPm;NRD8S~cBKa7W**sLl*KXOG@Qyv>%~ zY-Su!v&=rGdi_Ey$C>GiMEW64|NW+r3)Q7$X9thDZTmy+MyBuGWN)L{-^1J9DM(KK z5(#xRf9RAUytcnv*QpbuaI8C?CMJ0mWlr%-C$pz*f7J2f+MBKO+R|HeVq|BS!j#!$ zp929Z@c-5`{&_h6hnJ}!DaKDGheAjh!8Oi8%T=kpeQtb<&5T;cW;i~aWI71y71%z( zk@qztgXKPf1OM)0|0~PQ+E=DYnBVzqO^2#g-IGKA2y(&GRn5~~0VhrKbAudC`_Q;$+vNqOL8}Fl;i?$r zhf@(fhJ9UzUP&}D?YcsbO1V|cfhGtenrl&RfiT8Ij?Bc>5a?vP7jVa!t(blHXt=1b z!Avy61;SHuQ?20Sx{AP_0=^1)Dz4Af*ZVSUd0M+6{efZk*8+#?W%l#V!8peIPTJ>; zX|8v<#=}A{1&H@gg~nW)%%D{@VRBLpI)-umYS7kL*=Uy82;HuHqboEV zvib5G4-3^mg9&|99s#-?!uw^i+vAM_97@!%DAf_1GnPdYR(noCa}6ctT<8y*Hih=u zVNpa$__`AAm%4GkhE!aoi69#nz^eeqFNk;-%_$Km92esGT1(#I9k$7^Ewt!zE|O1} zTFm+IRw8Zt3)ACv3iR=C-b&csUj5c&3R?xar)|h@8tit2rl)~@+TFs~s03*H6;t&~ z<`-&%<8n=~-;~LZ=B_EDDbpAAjN3dIs zR`fpfXq-!kdZZ;-j_k89qzZW3Cg}Yc&3GJjP2uCCTl1&q+4?Bi`)dB8wA+CJ69P#T}w|Xby35#cU?HzROC5P6E#`Lc1BBsrn)_@2mPV2IKW@dV)#S1 zxyOY#Cf?)B_$e>z0=-;N+7aGKM^D|Cz4_AR_VjUnzLZ7PW3~s{Ke&)DyEysKn>k1y zP-|I%qp~s6~~k#lA|jNfl@O^u6&tKx}(LI=GX! z4cT2GsU^n_hXp*Dst-!nck~TXeXq?jYz0-5)O1C1B!xSKcDs`>uExTx%i{(<& zN@`d!F5}^BY^rhd2@jWh`lR;3ZV^Z4B~J2VcMh8@9vK_yrg`%=AJc??H*8xq({``> z<;y$1>YE&hMKMwF>{O&@vSQEt*oNv|#=q1Sc1}o)ZBL{*YT+pw* z*cZj8Pqe*0ZOnQn8S4aLc8-3IpT)R)9!A`}*Xd59{!VJ*4Q_w&y@iKF??^uzd&=AH z3o~y=`RhIQ4_9zj-SKf(S<=cxTgz+p(&iav9fCfVH4l|F%@6PW zVRWZi8+?{GHyX#Mh*?`zH3#5qncveN zKrwNBR)&i^$Hl$$z79WKxXF_Lqe@mC(nT8E{oXn5iq_>`xSy(DMR5S+fF+(Qpy;Yd@x|NNp>YT|E=-^M zP}fpLdPE0V4F!C;j>w@#Fh`1HOC)~tH(g{<-z;E6FjW;$BW&|VS83_}wmXl=@7)el z|K8jF5e+^0IWyxIz>{diyPEcVn=oI6o5FXiSf@l{14g(YKLC+AUs>4hx>0^Lv@0X_ z5Ba)m(CwP~N6@fRo+e6s|GUhkL~ykF+t(5pK0Nh%T)L%RIwE&5sZ{4duerFm&W-`5 z1~RAxBFMywd$@L7f@Sp~$^e1jk5>4jT%udnGzGue!P|iUFgOuntJ}T^&y7-<`~cz9 zlqW)__fiLK=3Oo?jxL?69%UWl`=480F%PS$sfqitxWn+FlVLkn0W7x(R^joW!*`Cr zeMrETKH*uPt88M6v;Dj$NkM?-;@3_uLtq`68=*{wP#m9`5qpp^d|6(5h>tRW)^)jQ zBIbO6!Dg(&t}YM}nBT6gsS!{-&B=`i;`FlaN!ooOaJqL#O)R=9QYsr#i2;V$C!| z0`M-K4c*OTRZe)z9Q}1L#uN=BMqF5iC({!JW1Pl{bwZnmaLI@W79bsMZ9mzO$4ECw zv4MVspS1ilm zX`LLF1N7~-SS}*?(5yPo{FxwMO+CGW7e6PTiL@sPIZhe9YQH#aDS?viK4G{_!kHlM zNg96N$eV86%0E9kqbK6r=bb_bhAp-U7c}?qI&DOKyu-lL!#Lr4u zFfn*ux9m4WQDsJ+Z_sx;FxgPcYjQ5#Pn@e{sK?N8Z0)${!B4HrQ8=l2pgLq4RC@?R zQA5Y6wTE~mdgYiTFsCgWT9*T>T#JeH1gmT%8}oS178RtQ;-H=&{GZ@Vh-3KiCX9Lv z&w@u)MF-vJ@F$GO5Q&w*Bgn9%fsKgBzTLmFX9m02ALaD~UunTti*WBm5h3W%ge7$_ z0KGq|*4_=jX|6`~$D{K3m$0PVZ$S0xHP0s<4$lA`ZQtQH7vj|+4~sH!wUO(9awt{eEU1O78H1B_U8m7_)7CcKo6YxqMFH6mu)(t4q_FR%fx1&;@qDFqpN1=-pk4Izyw=v5-bpu)~+-RL7Dsd_Nkgh zKk01K;Nw{B+iE~;+(vcWOsfKbj5s#?jdg$%MLU1oV-2?4ZGwfzz&Cg)9$;5A8J}w0 z@j9=!&G0{b0=|+VR?^mB5Mso(O#Fp|!}_M%u()Rsn)|8{QOBNs9&zTq(pti($jCYG zIq#K0*EE7oS)7kGR(&xQxt2g6H}8UNxg8xHJ#XUNNf3dozL&%f#c*bOY06aHu@rq9N!tN5*h_U48vgq%v=7%{ZI_pP0bhxElL~EAd;| z+U6$aBwo+dU=>FE`VH>G$ic^uNc^`Y(|YS~2}W}VNY6@I4x-n%4_{S+DIW)Ih9_(6 zMxUjxd@;6tvP$fSqu=P77hUrm82rB@X!!t*n*Zx<`V&qOSJy#_c*?}5ECyXgMCFdI z)|Z*JV@lFjWU*6;{BSD9hdk17Adh&}g3Hy_f(#5lE2PD`O(1nU)fw8()8>Q^Vzq2H zy!RPdow=_LPmc8jSP)XV?Su7q4xC^#yU}LwmwqD@HK`Lx> zDw@fF;tIlFUSgQ!!$XhZJ+VdDbtRbvVgz5vnIjI_8wD}?%k!QH+VX6CbAJ3bNZ-B@ zMIlxB4*2MDcXxMVxoaIkfXth{kkqZp@q`;UZUnmREe}#Q4!!=}vp@)aDR6an-|yKQ z65SF*JyCCAhamO0rM0zPU0sqQM>B52K#gDCg8)jl-_S^ypMSTDn5SWZ3}vA1hXw5} zt&Mo|=8dH9XzHAMHkzBAhYW()UB{>L!7-j;?DZ?S91ak?0SH*{Weg9~QBfVQ8qMt{ zFa!CyWI~YC`>#u`#J;}1PR+-^Kct%223=}EQ0Ch|dnaF7TU+Z*UHe!=n}%=$bFi>| zORmaTSpVtiIggKM?rmNW<;7(>2u)X6_C}huTx>XHY{7`nu>`YnrVi5Ag5eBP@1=M* zV}My5i`kk#d9m)*tk39}p4sdl033`3=85h5)a0_*!(iq%C`f{=?vMoR-Go380H+ml zI8I;jJ^+IZ*uk4%a0cwr<#w^*5@4pAfZ%&lF@1mXu#i8=FJgTV!UW@cuF zIbf;s;=^2?U{n?hN*oax8Bmjxvv`rd65mMr=5rQ^YMFq#F5BSf@e=Xj578^tq(u|URnJZ42BjaD$2Vj z#=8!?o=-{uLEB8@Q^jpdvxXE8{`o*X3f8U^hwr`J5HOfLeI5v=J&>Q{k+%7QX<15jF|K; zb{GYQM*wrP$B~{bi|i-^XLBH5gn!JSjS&n6YjYdZ(R<*TMsOAd*qg8gzPRv#QQge( zrf0iv5t@5K5-W@V#e&gZ;8_9}Q|ytCyWte;qF9pKLA0hdH9g(#vQdko2S##80+w`^ z0FO74JtTww+wSs3EqoiHV7&RADDf0~j^7?Zny>6gwCm9^T^nE#UzJ zFq9u~sunRUVVp@>Sy@L;vrPwY(pLlH;=+Q;`=d{7qK&#}yD z6CE8L1v+Ho{{$wng2k%!U}S#&vXV~J!+6QtGy?sQ3RoIMCT(D5Hh7c(2$b z6bBHiE)oxvmNDJvwqgy;w~6$QJHRQ`sc&E6~W`DP~ zBuTM(*L?0+<)x*4EkeM$(zxrJ?b8v*OJM z;6nhsGaImp$u|G9gPfe4@*^?cHJI8*tg)yrxi$tH)j2d;I5;@eu6W-96JBE{@FaeF zu=)3IgG98#CzWgL*MWpOD6wWSm?|6yqJ4%fZ_^2Qx+a#%V>zKzlS;6|d2N9M5F54( zPm#WB3?a&`_>-B1U(Fn!fMEYRtNEI92dfaj2gxdJE&%S5XBA`yaksIQ9o>H4 z?Tyub#foWLSP>Ey3aH2rMEXYQ;OWVMucwYuL}9 z%gM=Mionj#5Fa-B4O8L6T2EL6H9dWs4SKw6YhTPM8vXFgKheu&0snjCG~afiG`vUA zM5-134+Z(=*4E`$pp&^x?>RA)MHtqs)d!gT{rwp>*49o5u_jEarScD0Z+vugZwKt= z4`Rcqi!hbSOt7BP6KhY;qx-%-KG-l$1)%t6EVoN*bwoWkTae}DTe!n}HVs3Io>+6~ zs~8`Ldw2x60{e`>TI|rGEp}Y7a$Lw^x^BZwMn=ZgH(huZPT!6doKhsPjp;ha40>wn z$6Z)k_C9|HRL!n<;ukOk(n85cLPCeI;k`BEl^t3j)l4g_anRAxWkmEY0`FJilGdw+ zB|j$N+Y*J-T+4}8pVh85)~r`{h_Ms?fC+i2LXJ&5@k(ibyiN1aVgXV>7x>ax1F;*; zSF@>}j0LXUIjy($9rpMw4+#k|mY3RrRaIB-r2$9s3iZU;5>yjz3arR7MSC`r{-ObL zy!o^iiPs8+?6CYz_AUuA)MPx`ebtSa%s$B8p1Vl{l+VRK|YRPF#}C70~? z9+QlF_6`>zWkmDsZ$nt_P@&QbJ8sb(osyl$h%; z><#I0*Bj2n%!up%Zueb?*MM${SSXg4hoR5cG|Ec9t}i!J(I|!RX$sx9b~98r$s!md zhdKRH5g(l_ncuqmllM&iXPQd0>NPTO76obKweXaFK+ml4(cK+vjKoXiH=yG$Pz)VN zE#i_}Y_eQIyqcZLIbi-$Pk}pOMh3;TBvm%$+NdOshrblUlg!;Q2pTwM%?Nw(lyb;^ zBzP~yUEVgMt-exu!}3}$PEe6Nj+CO2N%HsRf`}K20*?YlxrjgS5Y34+Kd~MBgk*5s z7?0Qx6-dc@nC-3ssmIvJSNW*Tz8flzj4EG=r8=+FlV;4R=lxWqmAbZnQc$;snPWsn zBRD$cq}U&?jD@e(Jr;%QKHEL%WSEdA=KOYGCQqMzgI-9DaZaB72_QEvN|&~uP0sm9(WGREOqd7?8@VQE zd8)a%aNLnmU3w^Q!5RZ|>J#%12cP-CXH{iyO|vu!mf%wDVm0)ec4}sWk`Fe|Mtw=s zR$wF*W&k_q-si{uId=LMT}pw+h}tICAKWHY&LL=)4v8En^M&@?(ze;}1t|}SF$=s5 z{$tW~!eu@1>*g8ikh(ydNP*s-<@z8gL%*V#gF$xwZW5Sh3g)pJ>(ZgFMc0s7H%j__ zHPlHAKFHIGbWOvbuqT6#=YGG?Wq5Iy>XMS@tgF1#{V7YXr_gwlD(*Tt5#+b^=-CAk z-);^SOH9+@TXI+fvLAliJc=FKt_>`t8~s%o-tdD#mXR!`=XTSpRcVwWLOdJls9)=P zeBpNS4o%e|!T%Cj@{`t9xB=vaOaLP~qkyFN^_@Vnq9Zz(+N~~HDvT@+f_L!R%0Yh0 zTdRhR8()fwxQputoLuSfCO{PHw>outD|lj=Qg)N>gKde}Kri?Cdrvk$+W?82YMY)s zF();$`Vf6>$^mN%2-AI^+ixYNNh3JM;rPwScGL&kN(!j$DGs7MF0^#WQAyeORQ`RE z)~(SU_!!a>;(Y?XeA0bfobqX@E-)_g)7S|iNE~s!u7QP@28wG~@-H={!)sppl+irb z0PIm_K^?+0Opob|q5*wL#=2p_GB9tOG$88_>d*phN&iS#ztRjQRMT<~R%wxfCi`!^ zSDVE|9?E|=W}lBLX1WXNRbC*zZMzxcZe?IdRDF7b_3K;hJA#H9M!#U!w(o+~ErR${ zCO*<=Y*GJkD5DmE0jHT!4j%Lv`-wlA+`^rYQ7u z*t>Ojj`0Ed3iiar=QEd4BXt$U#u1fCXetB?Kz;9dZt}PicB@*mU~)Ov^x8t6 zY2$yyeKpKMezKs0luX&2YQz9*sRG^|yY}oq#*aTgD&nWW&Hm#^qg=H` z?g#QmGyTNpSD?JDqUZ+n)ebkX1%e}0w5J=cBW|OFM3!N=|Fp))yZYnl0N9lM*R88w z($T=_@ct>fl1&GIJhaA4NoGHdB*f_i>D_h&;qN6S7p{9s8gqX!7zq@|f97>%k5T-S z6$O;n!^ylFHEVns+75{1@{G`Fh=f#lQc-U%y4Gxo&5y4G74HV_5Rpt)ST!2auzr3E zpH4_aYW-){EW2{;cWo#j*3UGKifsE*^B;kcDg#WSlGH`Ia}`uKSv!;@XKJ(_+te(` z09T-@CsZmb$7RwBk?IHXl$kl%9!O#{S+mn|^9aB*4*%)aAy3}kr;Dx(Kz*L$TYcL_HyhZYt`_1|*pVf9p?x(MR&uLvh ziu#R3I2lcXPC?2g;B^SM)fXw(J8rlD_XI*ovb5Twq?XMqC_ZSmu2tU5Zhjed<)1fK z3Jgy~cZrXh^hzOS>&oOajzy2oa=gF+S+hw~@?B7rHm<7lnv}&wVUBW!*XvG(FIf6K z0<(?v+y#ptF(fdBwBkOjE!__;s9*blPCk_10p9#?ZQk?K(2ZxOMwd^oL2Rj&N;Z#9 zrHn!YTD%L;0v)-TP$tX%pU*x=6Q+K;0*d34Wm+_x3q$L#hE z8Tz}I%H=dxSS68k1T{PQM$H|f?vF|IU@+_tZlQ1xeTUOQFU#mS67_^LQ79XhZ=a#{ z<^uWKO_)_jpTa1T0QD4bWGNa|-|{akSM+4n^3j|9m>^eu$LOlom2Dyi)11d8TTYuJ zM?!GU;b{Waa9l);$FP3#CUt5SI6Fr2;MWF;S9(7{)wmO~5>9a6m5*)pE~$0*HIa*u zRwM|gj(42XUeT6~$?CY6=!@nO@bOXKbQj`H{`kAGW%KX)=%A5Ljh(5X&Cr)1aF{Hmlo6*I6JNoR7p5h>xg6wUzRUa5uLvL8H~Mh#qi#d!b{XS)k1df5DxTWMP;Y2hZ0!l|fZtMucRD|mN;v@>Lgrqvcu5- zRnHS|`kd?HclT7p`zL3OozqJEnj&m@A-MzH8$Ojp2e~6JHyFl3yyODu6xVis)$o_D z;{k7oSXuuncToM~ik&u5k>VI*33YUw%@@-$*7zJlbD=^GN=-+W;*_u4!77cM(j)uo zx?k!uJ2-9K!ff;WUaDt>|M2?8k*TiVAFj0e$BVGids3nCw@_}SgQ+){tc=_(=HLi2 zen#2P8nV)i)WLB=jMk+BHf3@#b|jJR_Rl6AYHhj3MyE^C(>?Os8pV4cY+l_G-clN} zr}=eAS4>iQXNHNSdoJ^&@{KlaT9$%UWO$M0KwJ@%F^85rft1pp@Xe`x3vr2kyJevs?+)rrurot9(MhR9oD_+-|;OAg6?Ez@eh{i7r!aiwbSsf&e!A7 zbaap8ER7pfPX5R?q}_XI(Gytw+(h`5jHX_(W>+$9#!36vWBURd?w@~u^>PKMS8G;N za6MizpHx`So5#3{+y5p)NXLxCRNXO)Qs`gNX}h3~KX5NREeh2h!xZ-Wc!e?C1L3+e zndU%Ld$XzFtwbDwCJT#Xm?HlZc5Td%Mb_*rFW zN!Y4eL``gZPGTS~`Ejen_CCLB44J0ukcHCFV-=YP<*_U}j>jd%!eZG|9Ol!d+r@ihA0m_4)oUzKXYJl}_ez1Bom`2{gMY=Y;jHo+s;z-$g|oKBov zp)1^`d|%iU>D=IO{z2j{LMehoe(d7Zv+(Hcw|HL9>LK$$tCE5uG)ektRI5~Vz=h6O zS?f1Ai+MkYbgM{99-G<@o@Uy_s~OwdEbzXIw!UAyH*>@#xMw}COZI+$-+RjS3#Il^ z{iwhh%1qncxd5%ukqdn1pSRDnR|YU2O+_z$@9;j{rc_z+X3*SHOl*wgdt55u-i;Ql z+kY{L>7&%1KNLm1|1Ysf)@svsO7Trw*5QWJv8uXgsP zia?W1-tycbbu#x2QfWKjgstvsc!tdJZ#^PPy?XzGK)`DzdCFtc)+)yWrID|yKqIp0 zmuJI}eIo3yP}#PDyn{nHAg_jlb2$J0ncm-#6EpR9o$Z-Es;!zv!)GlH+{SUkPp9m4 zHBG~Kjgcf<&9XbP53rMfQ_A){EWPoU z$LCK$euIZS$3z1+duxk#9FdmzLy^K4B|d8Y&1kBj2?dqZ^3$dey;2W4f(a*Ztd;Gp zT&9|eZb+l}aBX`D76A+TPW|o|(kp%v>Ev-WvTu;^acd>8d^#4 z!NlGXt^}4w1N}Xkw1A0r@uRC=WIYp|@+EsSfi84i^}E*bYYl7Ys;t{>e7bN`g@4-^sohb8=Z!tWb-l3aVbJ8s?xZ z0q8DE1^j-#JV@V(LdHVA!2nxD)9T9y#bW*N@Q&4hSy4fcuRoBMWKsM@dw*_lK1Qqm zFTFXkiD$?jdxW&P($o=CePe8>8o6YlbjHM6q%w87tkwu}Cs1Z=^ZYfV_VwW@glkPkuEjCQg3kXsR!RN+)5(JId?`H4rTu-4`&;PT5u&k|r+Q>aOQB z8vP5C+j*pU=|agd`*0Y3d%+q&DOaiotETUe278C97MUdK{`pq?(`}7hwJMGYc&8QW zEe{Z<8u+z*PBb+M4C;TDhNfb5LiNQ5Sq^C-W6nQGAHROsK;%JY4lv z%K$uF>gv`AjUiSf;P2}01-Qu84&HvS<3fT9$1=!EyfoX;6l)D1s zs)9$*7w1rY_kIH3Kf$BSJnC zmHoPEp8t!%UG*Q>UIyQeiA!zx$?w-~r&^64q@$fv4x58tUw912mJ`rMzTq_6fXSI# zeU2IIW>wsIV|2IR8sejX&%-UJWBG14v|#XoGfG=FX=RAAzvf9%iK}|D9dX>ZaV2B# zWJ9?yUcU${>6pQ0RlJ9I&}EWYt8|ECAaTABSA^_m8u33@Q5v|+f|fy=&xnC-VzV7) zw{Hpku4iVQR+gH{#pD^y(qQY}xw{iQh-8LhK-hdO=c7#zMRVjWZaE_PlK2$23N%Yl z%qO>Z=&S#dxop@-W(ZaDck-A)gZQyQy}C-p-!bl;xwMV=P#{nhCC&4_hRgPjDxtEf z{>S~h+ZnI>e-6iy?3jl70-mM)-Rsa-gJSDA;&p~J({a_+lbfjfb%jA_4pN01@E_Dj zW_(p$gJ7=wZz0E2>{MLVTm@Xh{wZh{2xNrnGSikutk?WWi58>6}Cj z5jq$&qObnLn;ORc#YTX@I>JiE*wdvm#1e=Dko%_cISD9RgUV)``e>|9%M?7!oKKhE zd->AjVPnmIb06xbX?l;q!!j$0mRuK!N7dEY`cmn@t;Pbe%#T~L{75bQP{Ekp$FkL> zE!^x}9QT8}x_}D+*k$-1b<-elt74>2T9}dr9zg`QCtX;W1hyLR8r;K0+$3tQnv{pi7Muk zT%gjJ`k2A+LRU*Jg3Oz2`SqN_NO&q<5>Shi!~6Qi$eZlqW19YAb^|JN*27o)hMEoFVO{>W%X6zMfMefVt2jsMA2xAHLPt3^Pl7jMT)P1 z4fD2??0tB~sopCG_$M~1;wc6fI-Gx*Z&koP4v-r&FNc5&zv1*LVS&Nx4y)1PfVC&U znXF(lTeXOD4exK_Bf%f9DU(m`#M{-{UlyvfEs1E@l^9&w%F0dR+{9ojHP@}14u1Z< z0Ed^VRfF1?n)6ISc>Ed$oYnuO&Ytx2$Bo?edE~}jW&xWp>AtXTLha^+Z`|9IK)NeM zzX%1pt8s{!$h|QuV`>)$m2(d^KgU&^h6WC@QXFFoGM4cu|5i!haBjLbueZ(|7o^VO zbGSqtUH*jQFR)^>Uim9ddi;{W$@WbjOcIZdpDXv z&82T~_NH@ay+q|vWVuT}JMtS=OwhF2^&V_N(_(8+;M#M(sr`r|Vz~+H;6u)wG^`qW z;o&h4FM={S$LnW-Tf#bTqsOT~oSKn=t73xr+U&6->+^n-@bGL()yS92CT769{W~hk z;D31>sTUca1nXXYr7NB|^+fT7O$~^?QWxP{11YHyu1F3(ROGOmd&b}fjwNPL%lv!^ z4^&R|(lqZJY&dH!4mh;{Yso96_-|2ax9w5?cTQ%$m>JozVC@zhlTHoXlP6QH7VelU zJe!_BYS1Hg@|#x{Ch7PPci=E`p5gx$)Kbbp z&a4d!VHn-YIQ?@hnka}vpf!ehw|u_4cXx00YF5r%aNK%SSe!;s%r1eAgf1sB)EC|hx;A;l4nvL^I$d~iywrBTj^@j!+UHkb*ZyVu zFWaXu9JAAxcuSvSETRoN2O2jXy*%wYGU;{hQeaCR$)+vW*_gU?OS|$fylNHoG%oke zIDH)x4;cSeI`3ytjaj+EQ6lw#G(7zJ%N-O_d+<)6D;0ngv#J)|bN5u8Nq0IpOU`b9v>C4cgQ48JYNG z>K7SXBQdl*8rHqAe<5hf;nxkr^D!W%N9L$BDFkLL&+l3cHZMt9RoS6j{*~1G`nbyH-2+T7XI*MNa?^E1c!Txt z>EEmlypVlxIxbmMS~3fd!%IwDqiLaDQP4(#1 zmvrZ4s^#s{@ueDtQ*Yq6H-0xoK%zGy z<miiyO0zc6`#6f-PO@kk*p^D9f~C#AW(!W@{Em+(%1UTCmkr8&iA*i*3X4;4vm z>G)rZUe2+a3Ulh>3~zlMT1;`%c(YEOn`Ngdah-7nnwm&5fT-Rr|?$VqSo4+MpCvqk&u(DZOA|zH?OmgF!Tz_1WZ<1UheaZ1> za-~5r{nb@BwiQ_i)1@@El2YI5m+3wV@w5zD2Ez$`CxLjfk+_h`*Qpwzyz!S>YbPdi z#oufT`NuO)i@l3^>__%f-e@zVm4z6`ayrz07Amb$h*x1*dw7CTzAoYb-BA(B>yNB0 zUZ;}WJgMSjwSAy#GxcdFP&K1uzh<&uXPnbamz9)uWe+B=~epoU5e!$+f)HIu6l`Yt|*4$3-Q43t`q2VTv96 z`lpI0uji8$K^Q2ACz&%dvQmuMyMMXPN-@qE;G9!+P-)WEr;yb`Hl)bLw{!LLkDYSL zthK6|uvKa$wnQBfVc?6^Zv*QSpe42Y^Ddc2+%F`=Ok6K{b%_@fl4wMgP8@Z~PVo2; z7Y`I$5K>CRrQ-{gdjb_Nvql~j-)}Q~>vjxPfcopzxSypo2kGALu0&;&`>jt_dtC{D zz>77hd%3pSMJwlB0?zBwlj<&}<%HNbmr{z=7CGs{ck}0}Ni~q%{fp(0IW7UjYM<+! z-^62z{Bv&N#D)if1lx7DvH~{WBz;kE_YaH+ItDdeR@TS$x<=&z5i!JTCg3rH8AztB zuD5!m*O_?7?OL~#;h3u(=RQ^ZEAI9l#%p)0ejle}E(;VZ;iglibB{>L-$+8($0}h{ zhu@+!FF8JRFWi96LYlKRYU<1ay0O0|^nk0)Lw-mZ3+#Umim90|fYWzBRWmG27v=#W z6cmOn(OSF92G^On#N~cMvqS1Xfe)dXJXLZ$=@nLHyH9a}(-8z#ec|rsoaahn8RM10 z0NrKBo>xO|2^F2mz>qchAuUy4}(tt8^oec@*tD--`cqI(0ys;yHz!am_aR2(NYioBCiG z8HE@)9g~+z`WsSwze%?4E#49~g%bV}ovyXdNq&B_IuXz)vCl=>knxMpB4ETByo4}&N19KDwxIwIl>6&$G?C(TFcLxMordvFw61AP>izXm z;JO7n=9hC`#KWPx43m@6*Kx>q#(5$KWUBp&A-0NJiR`s)LsEI>f!{40x7fkJlN~0%2=h+rEH~lXo|q2#N&katW51AerODV*3i0Z+SrY zuYv0{EAn?Byiu5}6kYgoTs%u5a0q_;Kj7%B+?P`xO_3T+t_EY5dD8%i1W@jlO0(^w ztpSeP)JlbiJF370jv9W8r4vt1yBE+McA242%CBelkuK&}>eArAD*Z9e1(Gp4|q<)MinZ2Q`o`-~|QV zIgal$7;LH?#0IZQ27?W0)q&=eL6Rpqkir`zp83%l!%T61gu{)N`CZ1r^QFbo0?71b z2OL7-nnB@wt;k0U@q=eWmSPPyk~$7F+KXF4;4DKw{KXN() zH7(g*{gM-5%q0AJM>+20q#DjguTzyK><89OAi#NLQ@JK8gorR;j zH~er43k(0obZhQ0RV?%f5*1X>v^G<&(a$17d?)t_Cn75Q`};d2$(XkZ%s~@}u4X9u z?nL!hDNW+G6Uz5#w5A#csKVvI#alphlG9>4lMF9{c%eH}CWIYxMHr*{{Bv z#H{>=`+0=c{9>DwUIZ#p?{T-eUkULtksLW{jyjEhxV`~6zn#oW zgkb5T>PpS}I&gXddv@9G7(?>j7r*yG%dg>LLxy9~R77j1Z5w#d%woS`h@!68TE@JH z$d{~8?bmIL{5|uz{9IPBZ00-eI*ICOj|Rj79@*b#A!!^6@)tf5RV&&FL^VhL3W>Lh zpzvR19Fu73g41N`U;nb`k}kjo*0uwW$sQ}-XdVi>cywkPIJTZqO4okZyo;!xHR!9e zG@;oM;m~=I|K9g*+kgcPDE%lC4NU|_cshRnTrOVd%#?MHo3zweGV_h(#eJPR!T?b> zbF&=-$spYA7Rd%u1fJHJLIFkKAy2$he^VrX9?hm5sxzZauM%8Y;hhBypI+;kGFM65 zjO1Ii{Qw>%et60hO|N*MiubF7ItTfIRBxCzp;&;2P`^)(jK0r)=)sK=OlKJq59iCv zd(jF4;=b4J{nyIl9njPOdM8$5=GJ*g*hXLMUElDs|DfsiQm01t9z#6KnE2saoB8wH zZ2vs*W*ik(%KZm5JkD%rOs8qj_$);?U(=H_SDSJ(2m(9z+Nd`2I>3Kg(KRa?6S9+`0 z2BNh$n5T8x;9kR*IEahdQA5$d*(Nye%hUfluS}PHoIx{0pwg-Nuh9-x5Cb_F#Qy$( z7W6n)VO`PXGSUmUcPY_dtD=s>n%>x{sZPy}!fZ?Ds%$(j>kKD*`?Ie| zv+Mu5r?&YC%t0%NayTFQi^=Vvgs9;76upu^pA4;OIOARwYkT;?+wJREnMXliPT{-zqZ@_fF3 zR##Ui*+lxw7TbXGF1H1J6GF5mB<^dV7|$bdD+mEmf${FK=(}L}a31`MY9#&TNrq^B zSV@6MZNTZc3}N*jfWLb#1)5&Kqs(c>)kV-s0UiD|o1Oxv2dTz&cF4D=s%p0+hTb&| z52`S-=j7sQUxhubG{4{B?=~l9h2ZZY=!}tLbquVdw!RT~6YKzLgnxy{ z#uU6KDbNi}-@biW#rp<4W;iR&&i?JA=-D)c19=T?f&Q=dWq|Y7?G6cJT(5C})CM4p z7x3M^g99CQdPJyQZ0&t+&x{HjfYw8Sv^&>N5m-9-Qql`H;kx&x8T)dQy5e!-rCr>J)`!HZ`J#dZ%s74Dz<_fLP* zpcupG2o@m6i3-O1t7Xq)??LQu2}^4!pZOjB29Yk?6CC(t7^g@!3`WI-xbpz+M_A(+p&Dgm0sGV#wDQwP(lfbb+xPn1Xq%!z91>PTrV zO?g*)vCCKT_spb#mbY!t2^HBiq#4EzX<2Pd)vkggCopc`PO)>&={9s25x@UFEG+Cp zhTm>qF8X0!m@UqFZ#8tN1Gd%Um;jcdSN&$!p|I(9xmqS`r>y?M?LEx=kW(TM7z6^k1dcOU2wp!e`*x@K0baZ`ODcWIhXc}1B5WI zih0G~BhX9*W+P&$5tP`rG}*;Of&@_#Tqw9&cSN$jw)UdW`rUtRoRP!`mIt6W==S@k za~!KMMH0|w*+I4%y}tuAYa%H&@Lzu@;s#Mib;1K9UAhRl^2+gmr<$#3G3cS99E(3Q z8IgY-(Armck}W~NIq^Bpwg!%uE|847;#TzjE5(S&MW_R_7Qb&6)AqYJ^cep?APXF? z@!h3wToHUu!aXg$hQ5UWV@2Y)@~IL};#nuQ|IeAu#`8Z{eB1zu*)R3Sv(ZOou&;6| zI>l&jirj|QIT=?eW7>=i47@Kv%ch@X!+*%xU*m2|->Jqeptj_x9#7}uSccs}bSNn{ zO;hc;Sq_vN8X1L}5KdA4=O4pLp%!&;TsTT(NIn~(jxpu6%UV=`l;+tK+Y{aOK(k>1 z;IA8=c|rc4R^JhKAc0m_Xf0JM#_8{`Dku)dyu90stKJgAS{A#XluO7e4)jtt=$PAg z=f5d$i8_#M`&Y9 yNxQOHHoI6po7h?pf1q%-M8*O`&_H^5Ba)XY?guH|J@AwmQj}GFij+2g{eJ+->jgRh literal 0 HcmV?d00001 diff --git a/apps/app/public/attachment/html-icon.png b/apps/app/public/attachment/html-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..b6259a2befb6e7b4d42a2d081080b5e9d4b9d797 GIT binary patch literal 6665 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 literal 0 HcmV?d00001 diff --git a/apps/app/public/attachment/img-icon.png b/apps/app/public/attachment/img-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6c5b8fce0c3be22f6ed457ad3174e3b040d55824 GIT binary patch literal 10447 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 bBy!U{KTiMrhindrKA^2(pkAbA_w;`Ok~r8N literal 0 HcmV?d00001 diff --git a/apps/app/public/attachment/txt-icon.png b/apps/app/public/attachment/txt-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1c1babf9c34f7e593bf1d02d691a29344afa5068 GIT binary patch literal 11142 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 literal 0 HcmV?d00001 diff --git a/apps/app/services/issues.service.ts b/apps/app/services/issues.service.ts index 3c9b28bce..c5a23b232 100644 --- a/apps/app/services/issues.service.ts +++ b/apps/app/services/issues.service.ts @@ -440,6 +440,51 @@ class ProjectIssuesServices extends APIService { throw error?.response?.data; }); } + + async uploadIssueAttachment( + workspaceSlug: string, + projectId: string, + issueId: string, + file: FormData + ): Promise { + return this.mediaUpload( + `/api/workspaces/${workspaceSlug}/projects/${projectId}/issues/${issueId}/issue-attachments/`, + file + ) + .then((response) => response?.data) + .catch((error) => { + throw error?.response?.data; + }); + } + + async getIssueAttachment( + workspaceSlug: string, + projectId: string, + issueId: string + ): Promise { + return this.get( + `/api/workspaces/${workspaceSlug}/projects/${projectId}/issues/${issueId}/issue-attachments/` + ) + .then((response) => response?.data) + .catch((error) => { + throw error?.response?.data; + }); + } + + async deleteIssueAttachment( + workspaceSlug: string, + projectId: string, + issueId: string, + assetId: string + ): Promise { + return this.delete( + `/api/workspaces/${workspaceSlug}/projects/${projectId}/issues/${issueId}/issue-attachments/${assetId}/` + ) + .then((response) => response?.data) + .catch((error) => { + throw error?.response?.data; + }); + } } export default new ProjectIssuesServices(); diff --git a/apps/app/types/issues.d.ts b/apps/app/types/issues.d.ts index e911cd5ef..d800b42ea 100644 --- a/apps/app/types/issues.d.ts +++ b/apps/app/types/issues.d.ts @@ -256,3 +256,19 @@ export interface IIssueViewOptions { filters: IIssueFilterOptions; target_date: string; } + +export interface IIssueAttachment { + asset: string; + attributes: { + name: string; + size: number; + }; + created_at: string; + created_by: string; + id: string; + issue: string; + project: string; + updated_at: string; + updated_by: string; + workspace: string; +} \ No newline at end of file