Update use-publish-reply.ts

This commit is contained in:
Tom (plebeius.eth)
2024-08-30 12:08:53 +02:00
parent 3d2d510259
commit f79e3c3512
+18 -6
View File
@@ -87,7 +87,7 @@ const useReplyStore = create<ReplyState>((set) => ({
const useReply = ({ cid, subplebbitAddress }: { cid: string; subplebbitAddress: string }) => { const useReply = ({ cid, subplebbitAddress }: { cid: string; subplebbitAddress: string }) => {
const parentCid = cid; const parentCid = cid;
const { author, displayName, signer, content, link, spoiler, publishCommentOptions } = useReplyStore((state) => ({ const { author, signer, content, link, spoiler, publishCommentOptions } = useReplyStore((state) => ({
author: state.author[parentCid], author: state.author[parentCid],
displayName: state.displayName[parentCid], displayName: state.displayName[parentCid],
signer: state.signer[parentCid], signer: state.signer[parentCid],
@@ -107,17 +107,29 @@ const useReply = ({ cid, subplebbitAddress }: { cid: string; subplebbitAddress:
const newOptions: Partial<SetReplyStoreData> = { const newOptions: Partial<SetReplyStoreData> = {
subplebbitAddress, subplebbitAddress,
parentCid, parentCid,
content: options.content || content, content: options.content ?? content,
displayName: options.displayName || displayName, link: options.link ?? link,
link: options.link || link,
spoiler: options.spoiler ?? spoiler, spoiler: options.spoiler ?? spoiler,
author: anonMode ? signer?.author || options.author || author || { displayName } : undefined,
signer: anonMode ? signer || options.signer : undefined, signer: anonMode ? signer || options.signer : undefined,
}; };
if ('displayName' in options) {
newOptions.displayName = options.displayName;
}
if (anonMode) {
const currentAuthor = signer?.author || author || {};
newOptions.author = {
...currentAuthor,
...('displayName' in options && { displayName: options.displayName }),
};
} else {
newOptions.author = undefined;
}
setReplyStore(newOptions as SetReplyStoreData); setReplyStore(newOptions as SetReplyStoreData);
}, },
[subplebbitAddress, parentCid, author, displayName, signer, content, link, spoiler, setReplyStore, anonMode], [subplebbitAddress, parentCid, author, signer, content, link, spoiler, setReplyStore, anonMode],
); );
const resetPublishReplyOptions = useCallback(() => resetReplyStore(parentCid), [parentCid, resetReplyStore]); const resetPublishReplyOptions = useCallback(() => resetReplyStore(parentCid), [parentCid, resetReplyStore]);