fix: reddot not show when apply friend

This commit is contained in:
tangtaoit 2024-11-18 15:36:14 +08:00
parent 3d9c0b1b50
commit 8298b2cf06

View File

@ -1,100 +1,75 @@
import { ChatPage, EndpointCategory, WKApp, Menus } from "@tsdaodao/base"; import { ChatPage, EndpointCategory, WKApp, Menus } from '@tsdaodao/base';
import { ContactsList } from "@tsdaodao/contacts"; import { ContactsList } from '@tsdaodao/contacts';
import React from "react"; import React from 'react';
import "./index.css"; import './index.css';
import AppLayout from "../Layout"; import AppLayout from '../Layout';
import { WKSDK } from "wukongimjssdk"; import { WKSDK } from 'wukongimjssdk';
function App() { function App() {
registerMenus(); registerMenus()
return <AppLayout />; return (
<AppLayout />
);
} }
function registerMenus() { async function registerMenus() {
WKSDK.shared().conversationManager.addConversationListener(() => { WKSDK.shared().conversationManager.addConversationListener(() => {
WKApp.menus.refresh(); WKApp.menus.refresh()
}); })
WKApp.endpointManager.setMethod( WKApp.endpointManager.setMethod("menus.friendapply.change", () => {
"menus.friendapply.change", WKApp.menus.refresh()
() => { }, {
WKApp.menus.refresh(); category: EndpointCategory.friendApplyDataChange,
}, })
{
category: EndpointCategory.friendApplyDataChange, WKApp.menus.register("chat", (_context) => {
const m = new Menus("chat", "/", "会话",
<img alt='会话' src={require("./assets/HomeTab.svg").default}></img>,
<img alt='会话' src={require("./assets/HomeTabSelected.svg").default}></img>)
let badge = 0;
for (const conversation of WKSDK.shared().conversationManager.conversations) {
badge += conversation.unread
} }
);
WKApp.menus.register( m.badge = badge;
"chat",
(context) => { if ((window as any).__POWERED_ELECTRON__) {
const m = new Menus( (window as any).ipc.send("conversation-anager-unread-count", badge);
"chat", }
"/",
"会话", return m
<img alt="会话" src={require("./assets/HomeTab.svg").default}></img>, }, 1000)
(
<img
alt="会话"
src={require("./assets/HomeTabSelected.svg").default}
></img>
)
);
let badge = 0;
for (const conversation of WKSDK.shared().conversationManager
.conversations) {
if (!conversation.channelInfo?.mute) {
badge += conversation.unread;
}
}
m.badge = badge;
return m;
},
1000
);
// 获取好友未申请添加数量 // 获取好友未申请添加数量
let unreadCount = 0; // let unreadCount = 0;
if (WKApp.loginInfo.isLogined()) { if (WKApp.loginInfo.isLogined()) {
WKApp.apiClient.get(`/user/reddot/friendApply`).then((res) => { WKApp.apiClient.get(`/user/reddot/friendApply`).then(res => {
unreadCount = res.count; // unreadCount = res.count;
WKApp.mittBus.emit('friend-applys-unread-count', res.count)
WKApp.loginInfo.setStorageItem(`${WKApp.loginInfo.uid}-friend-applys-unread-count`, res.count)
WKApp.menus.refresh(); WKApp.menus.refresh();
}); })
} }
WKApp.menus.register( WKApp.menus.register("contacts", (param) => {
"contacts", const m = new Menus("contacts", "/contacts", "通讯录",
(param) => { <img alt='通讯录' src={require("./assets/ContactsTab.svg").default}></img>,
const m = new Menus( <img alt='通讯录' src={require("./assets/ContactsTabSelected.svg").default} ></img>)
"contacts", m.badge = WKApp.shared.getFriendApplysUnreadCount();
"/contacts", return m
"通讯录", }, 4000)
(
<img
alt="通讯录"
src={require("./assets/ContactsTab.svg").default}
></img>
),
(
<img
alt="通讯录"
src={require("./assets/ContactsTabSelected.svg").default}
></img>
)
);
m.badge = unreadCount;
return m;
},
2000
);
WKApp.route.register("/", () => { WKApp.route.register("/", () => {
return <ChatPage></ChatPage>; return <ChatPage></ChatPage>
}); })
WKApp.route.register("/contacts", () => { WKApp.route.register("/contacts", () => {
return <ContactsList></ContactsList>; return <ContactsList></ContactsList>
}); })
} }
export default App; export default App;