UNPKG

@contentstack/live-preview-utils

Version:

Contentstack provides the Live Preview SDK to establish a communication channel between the various Contentstack SDKs and your website, transmitting live changes to the preview pane.

1 lines 5.63 kB
{"version":3,"sources":["../../../../../../src/visualBuilder/components/Collab/ThreadPopup/CommentActionBar.tsx"],"sourcesContent":["/** @jsxImportSource preact */\nimport React from \"preact/compat\";\nimport { useContext, useState } from \"preact/hooks\";\nimport {\n IThreadPopupState,\n ICommentActionBar,\n} from \"../../../types/collab.types\";\nimport Icon from \"../Icon/Icon\";\nimport { ThreadProvider } from \"./ContextProvider\";\nimport { collabStyles } from \"../../../collab.style\";\nimport classNames from \"classnames\";\n\nconst CommentActionBar: React.FC<ICommentActionBar> = ({\n mode,\n commentUser,\n currentUser,\n commentUID,\n}) => {\n const { setThreadState, onDeleteComment, activeThread, onDeleteThread } =\n useContext(ThreadProvider)!;\n const [isDeleting, setIsDeleting] = useState(false);\n\n const setEditComment = (uid: string | null) => {\n setThreadState((prevState: IThreadPopupState) => ({\n ...prevState,\n editComment: uid || \"\",\n }));\n };\n\n const handleCancel = () => {\n setEditComment(null);\n };\n\n const handleCommentEdit = () => {\n if (commentUID) {\n setEditComment(commentUID);\n }\n };\n\n const handleCommentDelete = async () => {\n if (!commentUID || isDeleting) {\n return;\n }\n\n setIsDeleting(true);\n\n try {\n const deleteResponse = await onDeleteComment({\n threadUid: activeThread?._id,\n commentUid: commentUID,\n });\n\n setThreadState((prevState: IThreadPopupState) => {\n const updatedComments = prevState.comments.filter(\n (comment) => comment._id !== commentUID\n );\n if (prevState.commentCount - 1 === 0) {\n onDeleteThread({ threadUid: activeThread?._id });\n }\n return {\n ...prevState,\n comments: updatedComments,\n commentCount: prevState.commentCount - 1,\n };\n });\n } catch (error: any) {\n } finally {\n setIsDeleting(false);\n }\n };\n\n if (mode === \"edit\" && commentUID) {\n return (\n <div\n className={classNames(\n \"collab-thread-comment-action--wrapper\",\n collabStyles()[\"collab-thread-comment-action--wrapper\"]\n )}\n >\n <Icon\n icon=\"Cancel\"\n withTooltip\n tooltipContent=\"Cancel\"\n onClick={handleCancel}\n />\n </div>\n );\n }\n\n if (commentUser?.uid !== currentUser?.uid || !commentUID) {\n return null;\n }\n\n return (\n <div\n className={classNames(\n \"collab-thread-comment-action--wrapper\",\n collabStyles()[\"collab-thread-comment-action--wrapper\"]\n )}\n data-testid=\"collab-thread-comment-action--wrapper\"\n >\n <Icon\n icon=\"Edit\"\n tooltipContent=\"Edit\"\n withTooltip\n testId=\"collab-thread-comment-edit\"\n onClick={handleCommentEdit}\n />\n <Icon\n icon=\"Delete\"\n tooltipContent=\"Delete\"\n withTooltip\n testId=\"collab-thread-comment-delete\"\n onClick={handleCommentDelete}\n disabled={isDeleting}\n />\n </div>\n );\n};\n\nexport default CommentActionBar;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAqC;AAKrC,kBAAiB;AACjB,6BAA+B;AAC/B,oBAA6B;AAC7B,wBAAuB;AAqEP;AAnEhB,IAAM,mBAAgD,CAAC;AAAA,EACnD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MAAM;AACF,QAAM,EAAE,gBAAgB,iBAAiB,cAAc,eAAe,QAClE,yBAAW,qCAAc;AAC7B,QAAM,CAAC,YAAY,aAAa,QAAI,uBAAS,KAAK;AAElD,QAAM,iBAAiB,CAAC,QAAuB;AAC3C,mBAAe,CAAC,eAAkC;AAAA,MAC9C,GAAG;AAAA,MACH,aAAa,OAAO;AAAA,IACxB,EAAE;AAAA,EACN;AAEA,QAAM,eAAe,MAAM;AACvB,mBAAe,IAAI;AAAA,EACvB;AAEA,QAAM,oBAAoB,MAAM;AAC5B,QAAI,YAAY;AACZ,qBAAe,UAAU;AAAA,IAC7B;AAAA,EACJ;AAEA,QAAM,sBAAsB,YAAY;AACpC,QAAI,CAAC,cAAc,YAAY;AAC3B;AAAA,IACJ;AAEA,kBAAc,IAAI;AAElB,QAAI;AACA,YAAM,iBAAiB,MAAM,gBAAgB;AAAA,QACzC,WAAW,cAAc;AAAA,QACzB,YAAY;AAAA,MAChB,CAAC;AAED,qBAAe,CAAC,cAAiC;AAC7C,cAAM,kBAAkB,UAAU,SAAS;AAAA,UACvC,CAAC,YAAY,QAAQ,QAAQ;AAAA,QACjC;AACA,YAAI,UAAU,eAAe,MAAM,GAAG;AAClC,yBAAe,EAAE,WAAW,cAAc,IAAI,CAAC;AAAA,QACnD;AACA,eAAO;AAAA,UACH,GAAG;AAAA,UACH,UAAU;AAAA,UACV,cAAc,UAAU,eAAe;AAAA,QAC3C;AAAA,MACJ,CAAC;AAAA,IACL,SAAS,OAAY;AAAA,IACrB,UAAE;AACE,oBAAc,KAAK;AAAA,IACvB;AAAA,EACJ;AAEA,MAAI,SAAS,UAAU,YAAY;AAC/B,WACI;AAAA,MAAC;AAAA;AAAA,QACG,eAAW,kBAAAA;AAAA,UACP;AAAA,cACA,4BAAa,EAAE,uCAAuC;AAAA,QAC1D;AAAA,QAEA;AAAA,UAAC,YAAAC;AAAA,UAAA;AAAA,YACG,MAAK;AAAA,YACL,aAAW;AAAA,YACX,gBAAe;AAAA,YACf,SAAS;AAAA;AAAA,QACb;AAAA;AAAA,IACJ;AAAA,EAER;AAEA,MAAI,aAAa,QAAQ,aAAa,OAAO,CAAC,YAAY;AACtD,WAAO;AAAA,EACX;AAEA,SACI;AAAA,IAAC;AAAA;AAAA,MACG,eAAW,kBAAAD;AAAA,QACP;AAAA,YACA,4BAAa,EAAE,uCAAuC;AAAA,MAC1D;AAAA,MACA,eAAY;AAAA,MAEZ;AAAA;AAAA,UAAC,YAAAC;AAAA,UAAA;AAAA,YACG,MAAK;AAAA,YACL,gBAAe;AAAA,YACf,aAAW;AAAA,YACX,QAAO;AAAA,YACP,SAAS;AAAA;AAAA,QACb;AAAA,QACA;AAAA,UAAC,YAAAA;AAAA,UAAA;AAAA,YACG,MAAK;AAAA,YACL,gBAAe;AAAA,YACf,aAAW;AAAA,YACX,QAAO;AAAA,YACP,SAAS;AAAA,YACT,UAAU;AAAA;AAAA,QACd;AAAA;AAAA;AAAA,EACJ;AAER;AAEA,IAAO,2BAAQ;","names":["classNames","Icon"]}