fix anon mode was altering comment.author

This commit is contained in:
Tom (plebeius.eth)
2024-08-08 17:48:45 +02:00
parent 179a328941
commit 188d7b73b1
3 changed files with 46 additions and 25 deletions
+13 -5
View File
@@ -27,7 +27,8 @@ import useFetchGifFirstFrame from '../../hooks/use-fetch-gif-first-frame';
import useAnonMode from '../../hooks/use-anon-mode';
type SubmitState = {
author: any | undefined;
author?: any | undefined;
displayName?: string | undefined;
signer?: any | undefined;
subplebbitAddress: string | undefined;
title: string | undefined;
@@ -50,10 +51,11 @@ const useSubmitStore = create<SubmitState>((set) => ({
link: undefined,
spoiler: undefined,
publishCommentOptions: {},
setSubmitStore: ({ author, signer, subplebbitAddress, title, content, link, spoiler }) =>
setSubmitStore: ({ author, displayName, signer, subplebbitAddress, title, content, link, spoiler }) =>
set((state) => {
const updatedAuthor = displayName ? { ...author, displayName } : author;
const nextState = { ...state };
if (author !== undefined) nextState.author = author;
if (author !== undefined) nextState.author = updatedAuthor;
if (signer !== undefined) nextState.signer = signer;
if (subplebbitAddress !== undefined) nextState.subplebbitAddress = subplebbitAddress;
if (title !== undefined) nextState.title = title || undefined;
@@ -62,7 +64,6 @@ const useSubmitStore = create<SubmitState>((set) => ({
if (spoiler !== undefined) nextState.spoiler = spoiler || undefined;
const publishCommentOptions: PublishCommentOptions = {
author: nextState.author,
subplebbitAddress: nextState.subplebbitAddress,
title: nextState.title,
content: nextState.content,
@@ -80,6 +81,10 @@ const useSubmitStore = create<SubmitState>((set) => ({
publishCommentOptions.signer = nextState.signer;
}
if (nextState.author) {
publishCommentOptions.author = nextState.author;
}
nextState.publishCommentOptions = publishCommentOptions;
return nextState;
}),
@@ -269,7 +274,10 @@ const PostFormTable = ({ closeForm, postCid }: { closeForm: () => void; postCid:
type='text'
placeholder={!displayName ? _.capitalize(t('anonymous')) : undefined}
defaultValue={displayName || undefined}
onChange={(e) => setAccount({ ...account, author: { ...account?.author, displayName: e.target.value } })}
onChange={(e) => {
setAccount({ ...account, author: { ...account?.author, displayName: e.target.value } });
setSubmitStore({ displayName: e.target.value });
}}
/>
{isInPostView && <button onClick={onPublishReply}>{t('post')}</button>}
</td>
+26 -15
View File
@@ -42,18 +42,24 @@ const ReplyModal = ({ closeModal, parentCid, postCid, scrollY }: ReplyModalProps
const getAnonAddressForReply = useCallback(async () => {
if (anonMode && !hasCalledAnonAddressRef.current) {
hasCalledAnonAddressRef.current = true;
let signer = getExistingSigner(address);
if (!signer) {
signer = await getNewSigner();
if (signer) {
setPublishReplyOptions({
signer,
author: {
displayName,
address: signer.address,
},
});
}
const existingSigner = getExistingSigner(address);
if (existingSigner) {
setPublishReplyOptions({
signer: existingSigner,
author: {
displayName,
address: existingSigner.address,
},
});
} else {
const newSigner = await getNewSigner();
setPublishReplyOptions({
signer: newSigner,
author: {
displayName,
address: newSigner.address,
},
});
}
}
}, [anonMode, address, getExistingSigner, getNewSigner, displayName, setPublishReplyOptions]);
@@ -119,7 +125,9 @@ const ReplyModal = ({ closeModal, parentCid, postCid, scrollY }: ReplyModalProps
const setTextRef = (ref: HTMLTextAreaElement | null) => {
if (ref) {
textRef.current = ref;
!isMobile && ref.focus();
// if (!isMobile && !urlRef.current?.value) {
// ref.focus();
// }
}
};
@@ -166,7 +174,10 @@ const ReplyModal = ({ closeModal, parentCid, postCid, scrollY }: ReplyModalProps
type='text'
defaultValue={displayName}
placeholder={displayName ? undefined : _.capitalize(t('name'))}
onChange={(e) => setAccount({ ...account, author: { ...account?.author, displayName: e.target.value } })}
onChange={(e) => {
setAccount({ ...account, author: { ...account?.author, displayName: e.target.value } });
setPublishReplyOptions({ displayName: e.target.value || undefined });
}}
/>
</div>
<div className={styles.link}>
@@ -176,7 +187,7 @@ const ReplyModal = ({ closeModal, parentCid, postCid, scrollY }: ReplyModalProps
placeholder={_.capitalize(t('link'))}
onChange={(e) => {
setUrl(e.target.value);
setPublishReplyOptions({ link: e.target.value });
setPublishReplyOptions({ link: e.target.value || undefined });
}}
/>
</div>