From ee631595d77aff5593a47bf6e133f3e3d0415617 Mon Sep 17 00:00:00 2001 From: srgooglo Date: Wed, 12 Oct 2022 00:01:22 +0200 Subject: [PATCH] improve `postCard` data handling --- .../app/src/components/PostCard/index.jsx | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/packages/app/src/components/PostCard/index.jsx b/packages/app/src/components/PostCard/index.jsx index fb7c3bb9..cd21b70d 100644 --- a/packages/app/src/components/PostCard/index.jsx +++ b/packages/app/src/components/PostCard/index.jsx @@ -17,6 +17,8 @@ export default React.memo(({ events = {}, fullmode }) => { + const isSelf = app.permissions.checkUserIdIsSelf(data.user_id) + const [loading, setLoading] = React.useState(true) const [likes, setLikes] = React.useState(data.likes ?? []) @@ -61,6 +63,15 @@ export default React.memo(({ return await events.onClickOpen(data) } + const onClickEdit = async () => { + if (typeof events.onClickEdit !== "function") { + console.warn("onClickEdit event is not a function") + return + } + + return await events.onClickEdit(data) + } + const onDataUpdate = (data) => { console.log("onDataUpdate", data) @@ -82,6 +93,9 @@ export default React.memo(({ app.eventBus.emit("style.compactMode", true) } + app.eventBus.on(`post.${data._id}.delete`, onClickDelete) + app.eventBus.on(`post.${data._id}.update`, onClickEdit) + // first listen to post changes window.app.api.namespaces["main"].listenEvent(`post.dataUpdate.${data._id}`, onDataUpdate) @@ -93,6 +107,9 @@ export default React.memo(({ app.eventBus.emit("style.compactMode", false) } + app.eventBus.off(`post.${data._id}.delete`, onClickDelete) + app.eventBus.off(`post.${data._id}.update`, onClickEdit) + // remove the listener window.app.api.namespaces["main"].unlistenEvent(`post.dataUpdate.${data._id}`, onDataUpdate) } @@ -125,6 +142,9 @@ export default React.memo(({ { ["noHide"]: !expansibleActions }, { ["fullmode"]: fullmode }, )} + context-menu={"postCard-context"} + user-id={data.user_id} + self-post={isSelf.toString()} >