add cid quote insertion logic in ReplyModal

This commit is contained in:
plebeius.eth
2023-06-24 12:38:14 +02:00
parent 91e51f828d
commit 79afa78142
6 changed files with 52 additions and 12 deletions
+17
View File
@@ -14,11 +14,13 @@ const ReplyModal = ({ isOpen, closeModal }) => {
setIsCaptchaOpen,
setPendingComment,
setPendingCommentIndex,
replyQuoteCid,
setResolveCaptchaPromise,
selectedAddress,
selectedParentCid,
selectedShortCid,
selectedStyle,
triggerInsertion,
} = useGeneralStore(state => state);
const account = useAccount();
@@ -53,6 +55,21 @@ const ReplyModal = ({ isOpen, closeModal }) => {
};
const insertAtCursor = (inputElement, valueToInsert) => {
const startPos = inputElement.selectionStart || inputElement.value.length;
const endPos = startPos + valueToInsert.length;
inputElement.setRangeText(valueToInsert, startPos, startPos, 'end');
inputElement.setSelectionRange(endPos, endPos);
}
useEffect(() => {
if (replyQuoteCid && commentRef.current) {
const prefixedReplyQuoteCid = `c/${replyQuoteCid}\n`;
insertAtCursor(commentRef.current, prefixedReplyQuoteCid);
}
}, [triggerInsertion, replyQuoteCid]);
const getSelectedText = useCallback(() => {
const text = document.getSelection().toString();
setSelectedText(text ? `>${text}\n` : '');
+9 -4
View File
@@ -63,6 +63,7 @@ const All = () => {
selectedStyle,
setSelectedThread,
setSelectedTitle,
setTriggerInsertion,
} = useGeneralStore(state => state);
const { anonymousMode } = useAnonModeStore();
@@ -706,7 +707,8 @@ const All = () => {
setSelectedThreadCid(thread.cid);
setSelectedAddress(thread.subplebbitAddress);
if (isReplyOpen) {
setReplyQuoteCid(thread.shortCid)
setReplyQuoteCid(thread.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(thread.shortCid);
@@ -990,7 +992,8 @@ const All = () => {
setSelectedThreadCid(thread.cid);
setSelectedAddress(thread.subplebbitAddress);
if (isReplyOpen) {
setReplyQuoteCid(reply.shortCid)
setReplyQuoteCid(reply.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(reply.shortCid);
@@ -1524,7 +1527,8 @@ const All = () => {
setSelectedThreadCid(thread.cid);
setSelectedAddress(thread.subplebbitAddress);
if (isReplyOpen) {
setReplyQuoteCid(thread.shortCid)
setReplyQuoteCid(thread.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(thread.shortCid);
@@ -1701,7 +1705,8 @@ const All = () => {
setSelectedThreadCid(thread.cid);
setSelectedAddress(thread.subplebbitAddress);
if (isReplyOpen) {
setReplyQuoteCid(reply.shortCid)
setReplyQuoteCid(reply.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(reply.shortCid);
+9 -4
View File
@@ -67,6 +67,7 @@ const Board = () => {
selectedTitle, setSelectedTitle,
showPostForm,
showPostFormLink,
setTriggerInsertion,
} = useGeneralStore(state => state);
const { anonymousMode } = useAnonModeStore();
@@ -1150,7 +1151,8 @@ const Board = () => {
e.preventDefault();
setSelectedThreadCid(thread.cid);
if (isReplyOpen) {
setReplyQuoteCid(thread.shortCid)
setReplyQuoteCid(thread.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(thread.shortCid);
@@ -1432,7 +1434,8 @@ const Board = () => {
e.preventDefault();
setSelectedThreadCid(thread.cid);
if (isReplyOpen) {
setReplyQuoteCid(reply.shortCid)
setReplyQuoteCid(reply.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(reply.shortCid);
@@ -1937,7 +1940,8 @@ const Board = () => {
e.preventDefault();
setSelectedThreadCid(thread.cid);
if (isReplyOpen) {
setReplyQuoteCid(thread.shortCid)
setReplyQuoteCid(thread.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(thread.shortCid);
@@ -2092,7 +2096,8 @@ const Board = () => {
e.preventDefault();
setSelectedThreadCid(thread.cid);
if (isReplyOpen) {
setReplyQuoteCid(reply.shortCid)
setReplyQuoteCid(reply.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(reply.shortCid);
+9 -4
View File
@@ -63,6 +63,7 @@ const Subscriptions = () => {
selectedStyle,
setSelectedThread,
setSelectedTitle,
setTriggerInsertion,
} = useGeneralStore(state => state);
const { anonymousMode } = useAnonModeStore();
@@ -714,7 +715,8 @@ const Subscriptions = () => {
setSelectedThreadCid(thread.cid);
setSelectedAddress(thread.subplebbitAddress);
if (isReplyOpen) {
setReplyQuoteCid(thread.shortCid)
setReplyQuoteCid(thread.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(thread.shortCid);
@@ -998,7 +1000,8 @@ const Subscriptions = () => {
setSelectedThreadCid(thread.cid);
setSelectedAddress(thread.subplebbitAddress);
if (isReplyOpen) {
setReplyQuoteCid(reply.shortCid)
setReplyQuoteCid(reply.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(reply.shortCid);
@@ -1532,7 +1535,8 @@ const Subscriptions = () => {
setSelectedThreadCid(thread.cid);
setSelectedAddress(thread.subplebbitAddress);
if (isReplyOpen) {
setReplyQuoteCid(thread.shortCid)
setReplyQuoteCid(thread.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(thread.shortCid);
@@ -1709,7 +1713,8 @@ const Subscriptions = () => {
setSelectedThreadCid(thread.cid);
setSelectedAddress(thread.subplebbitAddress);
if (isReplyOpen) {
setReplyQuoteCid(reply.shortCid)
setReplyQuoteCid(reply.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(reply.shortCid);
+5
View File
@@ -66,6 +66,7 @@ const Thread = () => {
selectedTitle, setSelectedTitle,
showPostForm,
showPostFormLink,
setTriggerInsertion,
} = useGeneralStore(state => state);
const { anonymousMode } = useAnonModeStore();
@@ -845,6 +846,7 @@ const Thread = () => {
onClick={() => {
if (isReplyOpen) {
setReplyQuoteCid(comment.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(comment.shortCid);
@@ -1085,6 +1087,7 @@ const Thread = () => {
onClick={() => {
if (isReplyOpen) {
setReplyQuoteCid(reply.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(reply.shortCid);
@@ -1462,6 +1465,7 @@ const Thread = () => {
onClick={() => {
if (isReplyOpen) {
setReplyQuoteCid(comment.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(comment.shortCid);
@@ -1586,6 +1590,7 @@ const Thread = () => {
onClick={() => {
if (isReplyOpen) {
setReplyQuoteCid(reply.shortCid);
setTriggerInsertion(Date.now());
} else {
setIsReplyOpen(true);
setSelectedShortCid(reply.shortCid);
+3
View File
@@ -86,6 +86,9 @@ const useGeneralStore = create((set) => ({
showPostFormLink: true,
setShowPostFormLink: (show) => set({ showPostFormLink: show }),
triggerInsertion: 0,
setTriggerInsertion: (trigger) => set({ triggerInsertion: trigger }),
}));
export default useGeneralStore;