zhengyiming
2025-02-10 0f686ea1fe4700a909a6159efcf1fcb0e1f88a17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import * as messageServices from '@12333/services/api/Message';
import { useQuery, useQueryClient } from '@tanstack/vue-query';
import { MessageChatTypeEnum } from '@12333/constants';
import { MaybeRef, unref } from 'vue';
 
type UseMyMessageCountOptions = {
  messageChatType?: MaybeRef<MessageChatTypeEnum>;
  enabled?: MaybeRef<boolean>;
  isContainLikeFavoriteAddFollowMessageCount?: MaybeRef<boolean>;
};
 
export function useMyMessageCount(options: UseMyMessageCountOptions = {}) {
  const {
    messageChatType,
    enabled = true,
    isContainLikeFavoriteAddFollowMessageCount = true,
  } = options;
 
  const { data } = useQuery({
    queryKey: [
      'messageCount',
      'messageServices/getMyMessageCount',
      messageChatType,
      isContainLikeFavoriteAddFollowMessageCount,
    ],
    queryFn: async () => {
      return await messageServices.getMyMessageCount(
        {
          messageChatType: unref(messageChatType),
          isContainLikeFavoriteAddFollowMessageCount: unref(
            isContainLikeFavoriteAddFollowMessageCount
          ),
        },
        { showLoading: false }
      );
    },
    placeholderData: () => ({} as API.MyMessageCountOutput),
    enabled: enabled,
  });
 
  return {
    myMessageCount: data,
  };
}
 
export function useSetMessageIsRead() {
  const queryClient = useQueryClient();
 
  async function setAllMessageIsRead(params: API.APIsetAllMessageIsReadParams) {
    try {
      let res = await messageServices.setAllMessageIsRead(params, {
        showLoading: false,
      });
      if (res) {
        queryClient.invalidateQueries({
          queryKey: ['messageCount'],
        });
      }
    } catch (error) {}
  }
 
  async function setAllMessageIsReadByChatType(params: API.MessageChatTypeEnum) {
    try {
      let res = await messageServices.setAllMessageIsReadByChatType(params, {
        showLoading: false,
      });
      if (res) {
        queryClient.invalidateQueries({
          queryKey: ['messageCount'],
        });
      }
    } catch (error) {}
  }
 
  return {
    setAllMessageIsRead,
    setAllMessageIsReadByChatType,
  };
}