diff --git a/cypress/e2e/reactions.cy.ts b/cypress/e2e/reactions.cy.ts deleted file mode 100644 index 18754ce4..00000000 --- a/cypress/e2e/reactions.cy.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { startDemoEnv, sendAndEnterMessage, checkElement } from "../test_utils"; - -describe( - "Reactions Test Cases", - { - retries: { - runMode: 3, - openMode: 2, - }, - }, - () => { - const testUserWithXmtpAccount = - "0x78BfD39428C32Be149892d64bEE6C6f90aedEec1"; - - const shortMessage = "hello"; - beforeEach(() => { - startDemoEnv(); - // In connected flow, conversation list header should render before any tests run - checkElement("conversation-list-header"); - // Message should be sent as well before testing reactions - sendAndEnterMessage(testUserWithXmtpAccount, shortMessage); - }); - - it("can react to a message", () => { - checkElement("reactions-container").children().should("have.length", 0); - - // When clicking on the message (or hovering), the bar should appear - checkElement("message-tile-text").children().first().click(); - checkElement("reactions-bar"); - - // Click on first emoji - checkElement("reaction").children().first().click(); - - // Reactions should show now - checkElement("reactions-container").children().should("have.length", 1); - checkElement("reactions-container") - .children() - .first() - .should("have.text", "❤️"); - }); - it("can unreact to a message", () => { - // React to message like above - checkElement("message-tile-text").children().first().click(); - checkElement("reactions-bar"); - checkElement("reaction").children().first().click(); - checkElement("reactions-container").children().should("have.length", 1); - - // Unreact to message - checkElement("reactions-container").children().first().click(); - checkElement("reactions-container").children().should("have.length", 0); - }); - it("can react in multiple ways to a message", () => { - // React to message like above - checkElement("message-tile-text").children().first().click(); - checkElement("reactions-bar"); - checkElement("reaction").children().first().click(); - checkElement("reactions-container").children().should("have.length", 1); - checkElement("reactions-container") - .children() - .first() - .should("have.text", "❤️"); - - // React with a different emoji - checkElement("message-tile-text").children().first().click(); - checkElement("reactions-bar"); - checkElement("reaction").children().last().click(); - checkElement("reactions-container").children().should("have.length", 2); - checkElement("reactions-container") - .children() - .last() - .should("have.text", "❓"); - }); - }, -); diff --git a/cypress/e2e/replies.cy.ts b/cypress/e2e/replies.cy.ts index 16dd7761..e7dfb80e 100644 --- a/cypress/e2e/replies.cy.ts +++ b/cypress/e2e/replies.cy.ts @@ -52,24 +52,7 @@ describe( checkElement("message-tile-text").children().first(); checkMissingElement("reply-icon"); }); - it("can react to a reply", () => { - sendMessages(1, replyMessage, testUserWithXmtpAccount, false); - checkElement("reactions-container").children().should("have.length", 0); - - // When clicking on the message (or hovering), the bar should appear - checkElement("message-tile-text").children().last().click(); - checkElement("reactions-bar"); - // Click on first emoji - checkElement("reaction").children().first().click(); - - // Reactions should show now - checkElement("reactions-container").children().should("have.length", 1); - checkElement("reactions-container") - .children() - .first() - .should("have.text", "❤️"); - }); it("cannot toggle replies view when there are no replies", () => { checkElement("replies-close-icon").click(); diff --git a/src/component-library/components/ReactionsBar/ReactionsBar.tsx b/src/component-library/components/ReactionsBar/ReactionsBar.tsx index 9ad12524..7a532067 100644 --- a/src/component-library/components/ReactionsBar/ReactionsBar.tsx +++ b/src/component-library/components/ReactionsBar/ReactionsBar.tsx @@ -1,12 +1,5 @@ -import { useSendMessage } from "@xmtp/react-sdk"; -import type { CachedMessageWithId, CachedConversation } from "@xmtp/react-sdk"; -import { useCallback } from "react"; -import { - ContentTypeReaction, - type Reaction, -} from "@xmtp/content-type-reaction"; +import type { CachedConversation, CachedMessageWithId } from "@xmtp/react-sdk"; import { useTranslation } from "react-i18next"; -import styles from "./ReactionsBar.module.css"; import { useXmtpStore } from "../../../store/xmtp"; export type ReactionsBarProps = { @@ -15,62 +8,27 @@ export type ReactionsBarProps = { setOnHover: (hover: boolean) => void; }; -const availableReactionEmojis = ["❤️", "👍", "👎", "🤣", "❗", "❓"]; - -export const ReactionsBar: React.FC = ({ - conversation, - message, - setOnHover, -}) => { - const { sendMessage } = useSendMessage(); - +export const ReactionsBar: React.FC = ({ message }) => { // For replies const activeMessage = useXmtpStore((state) => state.activeMessage); const setActiveMessage = useXmtpStore((state) => state.setActiveMessage); const { t } = useTranslation(); - const handleClick = useCallback( - (emoji: string) => { - void sendMessage( - conversation, - { - content: emoji, - schema: "unicode", - reference: message.xmtpID, - action: "added", - }, - ContentTypeReaction, - ); - setOnHover(false); - }, - [conversation, sendMessage, setOnHover, message], - ); - return ( -
-
- {availableReactionEmojis.map((emoji) => ( +
+
+ {!activeMessage ? ( - ))} + ) : null}
- {!activeMessage ? ( - - ) : null}
); };