diff --git a/react/package.json b/react/package.json index a6e4872..67c8f45 100644 --- a/react/package.json +++ b/react/package.json @@ -1,6 +1,6 @@ { "private": true, - "author": "chenxuting ", + "author": "netease", "scripts": { "dev": "umi dev", "build": "umi build", @@ -9,7 +9,7 @@ "dependencies": { "@xkit-yx/call-kit": "^2.0.1", "@xkit-yx/call-kit-react-ui": "^0.4.1", - "@xkit-yx/im-kit-ui": "^9.6.2", + "@xkit-yx/im-kit-ui": "^9.6.4", "react-dom": "^16.8.0", "umi": "^3.5.40" }, diff --git a/react/src/YXUIKit/im-kit-ui/package.json b/react/src/YXUIKit/im-kit-ui/package.json index c88e8d6..0cbae24 100644 --- a/react/src/YXUIKit/im-kit-ui/package.json +++ b/react/src/YXUIKit/im-kit-ui/package.json @@ -1,45 +1,27 @@ { - "_from": "@xkit-yx/im-kit-ui@^9.6.2", - "_id": "@xkit-yx/im-kit-ui@9.6.2", - "_inBundle": false, - "_integrity": "sha512-vFleF0DzxDgYJQnOWQKU6gkOC7Okqk8X1xvADTHVSK7toL8lHPP2PL/qEnQWOa0lffdQOYFy3B3OJxS+It1/+Q==", - "_location": "/@xkit-yx/im-kit-ui", - "_phantomChildren": { - "axios": "0.27.2", - "eventemitter3": "4.0.7" + "name": "@xkit-yx/im-kit-ui", + "version": "9.6.4", + "description": "云信即时通讯组件", + "license": "MIT", + "main": "lib/index.js", + "module": "es/index.js", + "typings": "es/index.d.ts", + "publishConfig": { + "access": "public" }, - "_requested": { - "type": "range", - "registry": true, - "raw": "@xkit-yx/im-kit-ui@^9.6.2", - "name": "@xkit-yx/im-kit-ui", - "escapedName": "@xkit-yx%2fim-kit-ui", - "scope": "@xkit-yx", - "rawSpec": "^9.6.2", - "saveSpec": null, - "fetchSpec": "^9.6.2" + "scripts": { + "start": "rollup -cw --environment DEV", + "dev": "gulp watch", + "build": "gulp", + "p": "npm run build && npm publish" }, - "_requiredBy": [ - "/" + "files": [ + "src", + "lib", + "es", + "copySourceCode.js" ], - "_resolved": "https://registry.npmjs.org/@xkit-yx/im-kit-ui/-/im-kit-ui-9.6.2.tgz", - "_shasum": "e9dd04a9d359c36fa404900ec28aca70bc8ee022", - "_spec": "@xkit-yx/im-kit-ui@^9.6.2", - "_where": "/Users/leeing/Documents/yunxin-projects/nim-uikit-web/react", "author": "", - "bundleDependencies": false, - "dependencies": { - "@ant-design/icons": "^5.0.1", - "@xkit-yx/core-kit": "^0.10.8", - "@xkit-yx/im-store": "^0.0.13", - "@xkit-yx/utils": "^0.5.6", - "antd": "^4.16.3", - "mobx": "^6.6.1", - "mobx-react": "^7.5.2", - "react-string-replace": "^1.1.0" - }, - "deprecated": false, - "description": "云信即时通讯组件", "devDependencies": { "@rollup/plugin-commonjs": "^17.1.0", "@rollup/plugin-json": "^4.1.0", @@ -63,17 +45,6 @@ "sass": "^1.58.3", "typescript": "^4.6.4" }, - "files": [ - "src", - "lib", - "es", - "copySourceCode.js" - ], - "gitHead": "3b90601cf3d29a01c3aa986043a84af0c04562d0", - "license": "MIT", - "main": "lib/index.js", - "module": "es/index.js", - "name": "@xkit-yx/im-kit-ui", "peerDependencies": { "@xkit-yx/core-kit": "^0.3.2", "@xkit-yx/utils": "^0.4.3", @@ -83,15 +54,14 @@ "react": ">=16.8.0", "react-dom": ">=16.8.0" }, - "publishConfig": { - "access": "public" - }, - "scripts": { - "build": "gulp", - "dev": "gulp watch", - "p": "npm run build && npm publish", - "start": "rollup -cw --environment DEV" - }, - "typings": "es/index.d.ts", - "version": "9.6.2" + "dependencies": { + "@ant-design/icons": "^5.0.1", + "@xkit-yx/core-kit": "^0.10.8", + "@xkit-yx/im-store": "^0.0.15", + "@xkit-yx/utils": "^0.5.6", + "antd": "^4.16.3", + "mobx": "^6.6.1", + "mobx-react": "^7.5.2", + "react-string-replace": "^1.1.0" + } } diff --git a/react/src/YXUIKit/im-kit-ui/src/chat/components/ChatP2pMessageList/index.tsx b/react/src/YXUIKit/im-kit-ui/src/chat/components/ChatP2pMessageList/index.tsx index 3e7842b..7b8e8cb 100644 --- a/react/src/YXUIKit/im-kit-ui/src/chat/components/ChatP2pMessageList/index.tsx +++ b/react/src/YXUIKit/im-kit-ui/src/chat/components/ChatP2pMessageList/index.tsx @@ -124,7 +124,7 @@ const ChatP2pMessageList = observer( ) : null} - {store.uiStore.getRelation(member.account) === 'stranger' ? ( + {store.uiStore.getRelation(member.account).relation === 'stranger' ? ( = observer( avatar={ } diff --git a/react/src/YXUIKit/im-kit-ui/src/common/components/ComplexAvatar/Container.tsx b/react/src/YXUIKit/im-kit-ui/src/common/components/ComplexAvatar/Container.tsx index 5eb8903..d9da732 100644 --- a/react/src/YXUIKit/im-kit-ui/src/common/components/ComplexAvatar/Container.tsx +++ b/react/src/YXUIKit/im-kit-ui/src/common/components/ComplexAvatar/Container.tsx @@ -43,7 +43,7 @@ export const ComplexAvatarContainer: FC = observer( const [visible, setVisible] = useState(false) // const [relation, setRelation] = useState('stranger') - const relation = store.uiStore.getRelation(account) + const { relation, isInBlacklist } = store.uiStore.getRelation(account) const userInfo = store.uiStore.getFriendWithUserNameCard(account) @@ -72,6 +72,8 @@ export const ComplexAvatarContainer: FC = observer( await store.friendStore.addFriendActive(account) message.success(t('addFriendSuccessText')) } + // 发送申请或添加好友成功后解除黑名单 + await store.relationStore.setBlackActive({ account, isAdd: false }) setVisible(false) afterAddFriend?.(account) } catch (error) { @@ -154,6 +156,7 @@ export const ComplexAvatarContainer: FC = observer( return ( = observer( = ({ const [signature, setSignature] = useState(undefined) useEffect(() => { - if (props.nick) { + if (props.nick !== void 0) { setNick(props.nick) } }, [props.nick]) useEffect(() => { - if (props.avatar) { + if (props.avatar !== void 0) { setAvatar(props.avatar) } }, [props.avatar]) useEffect(() => { - if (props.gender) { + if (props.gender !== void 0) { setGender(props.gender) } }, [props.gender]) useEffect(() => { - if (props.tel) { + if (props.tel !== void 0) { setTel(props.tel) } }, [props.tel]) useEffect(() => { - if (props.email) { + if (props.email !== void 0) { setEmail(props.email) } }, [props.email]) useEffect(() => { - if (props.signature) { + if (props.signature !== void 0) { setSignature(props.signature) } }, [props.signature]) diff --git a/react/src/YXUIKit/im-kit-ui/src/common/components/UserCard/index.tsx b/react/src/YXUIKit/im-kit-ui/src/common/components/UserCard/index.tsx index d756d4f..6a8c4f0 100644 --- a/react/src/YXUIKit/im-kit-ui/src/common/components/UserCard/index.tsx +++ b/react/src/YXUIKit/im-kit-ui/src/common/components/UserCard/index.tsx @@ -16,6 +16,7 @@ export interface UserCardProps alias?: string visible: boolean relation: Relation + isInBlacklist: boolean onChangeAlias?: (alias: string) => void onSendMsglick?: () => void onAddFriendClick?: () => void @@ -29,6 +30,7 @@ export interface UserCardProps export const UserCard: FC = ({ visible, relation, + isInBlacklist, onChangeAlias, onAddFriendClick, onDeleteFriendClick, @@ -55,24 +57,28 @@ export const UserCard: FC = ({ ) const controlsMenuRenderer = useMemo(() => { - const items = [ - relation === 'friend' - ? { - key: 'block', - label: t('blackText'), - icon: , - } - : { - key: 'removeBlock', - label: t('removeBlackText'), - icon: , - }, - { - key: 'deleteFriend', - label: t('deleteFriendText'), - icon: , - }, - ] as any + const items = ( + [ + isInBlacklist + ? { + key: 'removeBlock', + label: t('removeBlackText'), + icon: , + } + : { + key: 'block', + label: t('blackText'), + icon: , + }, + relation === 'friend' + ? { + key: 'deleteFriend', + label: t('deleteFriendText'), + icon: , + } + : null, + ] as any + ).filter((item) => !!item) return ( = ({ }, [ t, relation, + isInBlacklist, onBlockFriendClick, onRemoveBlockFriendClick, onDeleteFriendClick, @@ -124,18 +131,16 @@ export const UserCard: FC = ({ {props.alias || props.nick || props.account} - {relation !== 'stranger' ? ( - - - - ) : null} + + +
- {['friend', 'blacklist'].includes(relation) ? ( + {relation === 'friend' ? (
= observer( selectedContactType={store.uiStore.selectedContactType} onItemClick={handleItemClick} renderCustomContact={renderCustomContact} - systemMsgUnread={store.uiStore.systemMsgUnread} + systemMsgUnread={store.sysMsgStore.unreadSysMsgCount} prefix={prefix} /> ) diff --git a/react/src/YXUIKit/im-kit-ui/src/index.ts b/react/src/YXUIKit/im-kit-ui/src/index.ts index 7dbc199..7ee6d2c 100644 --- a/react/src/YXUIKit/im-kit-ui/src/index.ts +++ b/react/src/YXUIKit/im-kit-ui/src/index.ts @@ -42,12 +42,14 @@ import RootStore from '@xkit-yx/im-store' import { NIMInitializeOptions } from 'nim-web-sdk-ng/dist/NIM_BROWSER_SDK/NIMInterface' export class IMUIKit { - context: { + get context(): { nim: NimKitCoreTypes.INimKitCore store: RootStore initOptions: NIMInitializeOptions + } | void { // @ts-ignore - } | void = window.__xkit_store__ + return window.__xkit_store__ + } constructor(private providerProps: Omit) {} render< diff --git a/react/src/YXUIKit/im-kit-ui/src/search/add/components/AddFriendModal/index.tsx b/react/src/YXUIKit/im-kit-ui/src/search/add/components/AddFriendModal/index.tsx index 6b21e75..cc5d85e 100644 --- a/react/src/YXUIKit/im-kit-ui/src/search/add/components/AddFriendModal/index.tsx +++ b/react/src/YXUIKit/im-kit-ui/src/search/add/components/AddFriendModal/index.tsx @@ -72,6 +72,11 @@ const AddFriendModal: React.FC = observer( await store.friendStore.addFriendActive(searchRes.account) message.success(t('addFriendSuccessText')) } + // 发送申请或添加好友成功后解除黑名单 + await store.relationStore.setBlackActive({ + account: searchRes.account, + isAdd: false, + }) } setAdding(false) } catch (error) { @@ -143,7 +148,8 @@ const AddFriendModal: React.FC = observer( {searchRes.account}
- {store.uiStore.getRelation(searchRes.account) !== 'stranger' ? ( + {store.uiStore.getRelation(searchRes.account).relation !== + 'stranger' ? ( diff --git a/react/src/components/IMApp/index.tsx b/react/src/components/IMApp/index.tsx index 5d8c207..c273899 100644 --- a/react/src/components/IMApp/index.tsx +++ b/react/src/components/IMApp/index.tsx @@ -305,7 +305,7 @@ const IMApp: React.FC = observer((props) => {
{t('session')}
- +
= observer((props) => { teamMsgReceiptVisible, sdkVersion, renderP2pCustomMessage, - store.uiStore.systemMsgUnread, + store.sysMsgStore.unreadSysMsgCount, ]) // IM elite(IM 2) sdk 没有信令, 无法初始化呼叫组件 return sdkVersion === 1 ? ( diff --git a/vue/package.json b/vue/package.json index bc03436..1c91341 100644 --- a/vue/package.json +++ b/vue/package.json @@ -11,7 +11,7 @@ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" }, "dependencies": { - "@xkit-yx/im-kit-ui": "^9.6.2", + "@xkit-yx/im-kit-ui": "^9.6.4", "react": "^16.8.0", "react-dom": "^16.8.0", "vue": "^3.2.45"