mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
fix anon mode was altering comment.author
This commit is contained in:
@@ -27,7 +27,8 @@ import useFetchGifFirstFrame from '../../hooks/use-fetch-gif-first-frame';
|
|||||||
import useAnonMode from '../../hooks/use-anon-mode';
|
import useAnonMode from '../../hooks/use-anon-mode';
|
||||||
|
|
||||||
type SubmitState = {
|
type SubmitState = {
|
||||||
author: any | undefined;
|
author?: any | undefined;
|
||||||
|
displayName?: string | undefined;
|
||||||
signer?: any | undefined;
|
signer?: any | undefined;
|
||||||
subplebbitAddress: string | undefined;
|
subplebbitAddress: string | undefined;
|
||||||
title: string | undefined;
|
title: string | undefined;
|
||||||
@@ -50,10 +51,11 @@ const useSubmitStore = create<SubmitState>((set) => ({
|
|||||||
link: undefined,
|
link: undefined,
|
||||||
spoiler: undefined,
|
spoiler: undefined,
|
||||||
publishCommentOptions: {},
|
publishCommentOptions: {},
|
||||||
setSubmitStore: ({ author, signer, subplebbitAddress, title, content, link, spoiler }) =>
|
setSubmitStore: ({ author, displayName, signer, subplebbitAddress, title, content, link, spoiler }) =>
|
||||||
set((state) => {
|
set((state) => {
|
||||||
|
const updatedAuthor = displayName ? { ...author, displayName } : author;
|
||||||
const nextState = { ...state };
|
const nextState = { ...state };
|
||||||
if (author !== undefined) nextState.author = author;
|
if (author !== undefined) nextState.author = updatedAuthor;
|
||||||
if (signer !== undefined) nextState.signer = signer;
|
if (signer !== undefined) nextState.signer = signer;
|
||||||
if (subplebbitAddress !== undefined) nextState.subplebbitAddress = subplebbitAddress;
|
if (subplebbitAddress !== undefined) nextState.subplebbitAddress = subplebbitAddress;
|
||||||
if (title !== undefined) nextState.title = title || undefined;
|
if (title !== undefined) nextState.title = title || undefined;
|
||||||
@@ -62,7 +64,6 @@ const useSubmitStore = create<SubmitState>((set) => ({
|
|||||||
if (spoiler !== undefined) nextState.spoiler = spoiler || undefined;
|
if (spoiler !== undefined) nextState.spoiler = spoiler || undefined;
|
||||||
|
|
||||||
const publishCommentOptions: PublishCommentOptions = {
|
const publishCommentOptions: PublishCommentOptions = {
|
||||||
author: nextState.author,
|
|
||||||
subplebbitAddress: nextState.subplebbitAddress,
|
subplebbitAddress: nextState.subplebbitAddress,
|
||||||
title: nextState.title,
|
title: nextState.title,
|
||||||
content: nextState.content,
|
content: nextState.content,
|
||||||
@@ -80,6 +81,10 @@ const useSubmitStore = create<SubmitState>((set) => ({
|
|||||||
publishCommentOptions.signer = nextState.signer;
|
publishCommentOptions.signer = nextState.signer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (nextState.author) {
|
||||||
|
publishCommentOptions.author = nextState.author;
|
||||||
|
}
|
||||||
|
|
||||||
nextState.publishCommentOptions = publishCommentOptions;
|
nextState.publishCommentOptions = publishCommentOptions;
|
||||||
return nextState;
|
return nextState;
|
||||||
}),
|
}),
|
||||||
@@ -269,7 +274,10 @@ const PostFormTable = ({ closeForm, postCid }: { closeForm: () => void; postCid:
|
|||||||
type='text'
|
type='text'
|
||||||
placeholder={!displayName ? _.capitalize(t('anonymous')) : undefined}
|
placeholder={!displayName ? _.capitalize(t('anonymous')) : undefined}
|
||||||
defaultValue={displayName || 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>}
|
{isInPostView && <button onClick={onPublishReply}>{t('post')}</button>}
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -42,18 +42,24 @@ const ReplyModal = ({ closeModal, parentCid, postCid, scrollY }: ReplyModalProps
|
|||||||
const getAnonAddressForReply = useCallback(async () => {
|
const getAnonAddressForReply = useCallback(async () => {
|
||||||
if (anonMode && !hasCalledAnonAddressRef.current) {
|
if (anonMode && !hasCalledAnonAddressRef.current) {
|
||||||
hasCalledAnonAddressRef.current = true;
|
hasCalledAnonAddressRef.current = true;
|
||||||
let signer = getExistingSigner(address);
|
const existingSigner = getExistingSigner(address);
|
||||||
if (!signer) {
|
if (existingSigner) {
|
||||||
signer = await getNewSigner();
|
setPublishReplyOptions({
|
||||||
if (signer) {
|
signer: existingSigner,
|
||||||
setPublishReplyOptions({
|
author: {
|
||||||
signer,
|
displayName,
|
||||||
author: {
|
address: existingSigner.address,
|
||||||
displayName,
|
},
|
||||||
address: signer.address,
|
});
|
||||||
},
|
} else {
|
||||||
});
|
const newSigner = await getNewSigner();
|
||||||
}
|
setPublishReplyOptions({
|
||||||
|
signer: newSigner,
|
||||||
|
author: {
|
||||||
|
displayName,
|
||||||
|
address: newSigner.address,
|
||||||
|
},
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}, [anonMode, address, getExistingSigner, getNewSigner, displayName, setPublishReplyOptions]);
|
}, [anonMode, address, getExistingSigner, getNewSigner, displayName, setPublishReplyOptions]);
|
||||||
@@ -119,7 +125,9 @@ const ReplyModal = ({ closeModal, parentCid, postCid, scrollY }: ReplyModalProps
|
|||||||
const setTextRef = (ref: HTMLTextAreaElement | null) => {
|
const setTextRef = (ref: HTMLTextAreaElement | null) => {
|
||||||
if (ref) {
|
if (ref) {
|
||||||
textRef.current = 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'
|
type='text'
|
||||||
defaultValue={displayName}
|
defaultValue={displayName}
|
||||||
placeholder={displayName ? undefined : _.capitalize(t('name'))}
|
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>
|
||||||
<div className={styles.link}>
|
<div className={styles.link}>
|
||||||
@@ -176,7 +187,7 @@ const ReplyModal = ({ closeModal, parentCid, postCid, scrollY }: ReplyModalProps
|
|||||||
placeholder={_.capitalize(t('link'))}
|
placeholder={_.capitalize(t('link'))}
|
||||||
onChange={(e) => {
|
onChange={(e) => {
|
||||||
setUrl(e.target.value);
|
setUrl(e.target.value);
|
||||||
setPublishReplyOptions({ link: e.target.value });
|
setPublishReplyOptions({ link: e.target.value || undefined });
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ import useAnonMode from './use-anon-mode';
|
|||||||
type SetReplyStoreData = {
|
type SetReplyStoreData = {
|
||||||
subplebbitAddress: string;
|
subplebbitAddress: string;
|
||||||
parentCid: string;
|
parentCid: string;
|
||||||
author: any | undefined;
|
author?: any | undefined;
|
||||||
|
displayName?: string | undefined;
|
||||||
content: string | undefined;
|
content: string | undefined;
|
||||||
link: string | undefined;
|
link: string | undefined;
|
||||||
signer?: any | undefined;
|
signer?: any | undefined;
|
||||||
@@ -37,11 +38,12 @@ const useReplyStore = create<ReplyState>((set) => ({
|
|||||||
publishCommentOptions: {},
|
publishCommentOptions: {},
|
||||||
setReplyStore: (data: SetReplyStoreData) =>
|
setReplyStore: (data: SetReplyStoreData) =>
|
||||||
set((state) => {
|
set((state) => {
|
||||||
const { subplebbitAddress, parentCid, author, content, link, signer, spoiler } = data;
|
const { subplebbitAddress, parentCid, author, displayName, content, link, signer, spoiler } = data;
|
||||||
|
const updatedAuthor = displayName ? { ...author, displayName } : author;
|
||||||
const publishCommentOptions = {
|
const publishCommentOptions = {
|
||||||
subplebbitAddress,
|
subplebbitAddress,
|
||||||
parentCid,
|
parentCid,
|
||||||
author,
|
...(data.author ? { author: updatedAuthor } : {}),
|
||||||
...(data.signer ? { signer: data.signer } : {}),
|
...(data.signer ? { signer: data.signer } : {}),
|
||||||
content,
|
content,
|
||||||
link,
|
link,
|
||||||
@@ -56,7 +58,7 @@ const useReplyStore = create<ReplyState>((set) => ({
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
return {
|
return {
|
||||||
author: { ...state.author, [parentCid]: author },
|
author: { ...state.author, [parentCid]: updatedAuthor },
|
||||||
signer: { ...state.signer, [parentCid]: signer },
|
signer: { ...state.signer, [parentCid]: signer },
|
||||||
content: { ...state.content, [parentCid]: content },
|
content: { ...state.content, [parentCid]: content },
|
||||||
link: { ...state.link, [parentCid]: link },
|
link: { ...state.link, [parentCid]: link },
|
||||||
@@ -97,7 +99,7 @@ const useReply = ({ cid, subplebbitAddress }: { cid: string; subplebbitAddress:
|
|||||||
setReplyStore({
|
setReplyStore({
|
||||||
subplebbitAddress,
|
subplebbitAddress,
|
||||||
parentCid,
|
parentCid,
|
||||||
author,
|
...(anonMode ? { author } : {}),
|
||||||
content,
|
content,
|
||||||
link,
|
link,
|
||||||
spoiler,
|
spoiler,
|
||||||
|
|||||||
Reference in New Issue
Block a user