Skip to content

Commit 4465d64

Browse files
lourouthierryskoda
andauthored
feat(reactions): add tap-to-remove for own reactions in drawer (#1595)
Co-authored-by: Thierry <[email protected]> Co-authored-by: Thierry Skoda <[email protected]>
1 parent 33b94da commit 4465d64

13 files changed

+294
-3376
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,20 @@
1-
import { RolledUpReactions } from "../conversation-message-reactions.types";
1+
import { MessageId } from "@xmtp/react-native-sdk";
22
import {
33
resetMessageReactionsStore,
44
useMessageReactionsStore,
5-
IMessageReactionsStore,
65
} from "./conversation-message-reaction-drawer.store";
6+
import { createBottomSheetModalRef } from "@/design-system/BottomSheet/BottomSheet.utils";
77

8-
export function openMessageReactionsDrawer(
9-
rolledUpReactions: RolledUpReactions
10-
) {
11-
const store = useMessageReactionsStore.getState();
12-
store.setRolledUpReactions(rolledUpReactions);
13-
}
8+
export const conversationMessageDrawerBottomSheetRef =
9+
createBottomSheetModalRef();
1410

15-
export function closeMessageReactionsDrawer(arg?: { resetStore?: boolean }) {
16-
const { resetStore = true } = arg ?? {};
17-
if (resetStore) {
18-
resetMessageReactionsStore();
19-
}
11+
export function openMessageReactionsDrawer(args: { messageId: MessageId }) {
12+
const { messageId } = args;
13+
const store = useMessageReactionsStore.getState();
14+
store.actions.setMessageId(messageId);
2015
}
2116

22-
export function resetMessageReactionsDrawer() {
17+
export function closeMessageReactionsDrawer() {
18+
conversationMessageDrawerBottomSheetRef.current?.close();
2319
resetMessageReactionsStore();
2420
}
25-
26-
export function useMessageReactionsRolledUpReactions() {
27-
return useMessageReactionsStore((state) => state.rolledUpReactions);
28-
}
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,24 @@
1+
import { MessageId } from "@xmtp/react-native-sdk";
12
import { create } from "zustand";
2-
import { RolledUpReactions } from "../conversation-message-reactions.types";
33

44
export type IMessageReactionsStore = {
5-
rolledUpReactions: RolledUpReactions;
6-
setRolledUpReactions: (reactions: RolledUpReactions) => void;
5+
messageId: MessageId | null;
6+
actions: {
7+
setMessageId: (messageId: MessageId | null) => void;
8+
};
79
};
810

911
export const useMessageReactionsStore = create<IMessageReactionsStore>(
1012
(set) => ({
11-
rolledUpReactions: {
12-
preview: [],
13-
detailed: [],
14-
totalCount: 0,
15-
userReacted: false,
13+
messageId: null,
14+
actions: {
15+
setMessageId: (messageId) => set({ messageId }),
1616
},
17-
setRolledUpReactions: (reactions) => set({ rolledUpReactions: reactions }),
1817
})
1918
);
2019

2120
export function resetMessageReactionsStore() {
2221
useMessageReactionsStore.setState({
23-
rolledUpReactions: {
24-
preview: [],
25-
detailed: [],
26-
totalCount: 0,
27-
userReacted: false,
28-
},
22+
messageId: null,
2923
});
3024
}

features/conversation/conversation-message/conversation-message-reactions/conversation-message-reaction-drawer/conversation-message-reaction-drawer.store.tsx

+2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
import { create } from "zustand";
22

33
import { RolledUpReactions } from "../conversation-message-reactions.types";
4+
import { MessageId } from "@xmtp/react-native-sdk";
45

56
const initialMessageReactionsState: RolledUpReactions = {
67
totalCount: 0,
78
userReacted: false,
89
preview: [],
910
detailed: [],
11+
messageId: "" as MessageId,
1012
};
1113

1214
export type IMessageReactionsStore = {

0 commit comments

Comments
 (0)