@tencentcloud/chat-uikit-react 3.0.0 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -1
- package/README.md +8 -8
- package/dist/{ChatSetting-C7QlwAiq.js → ChatSetting-BtQwjHr0.js} +4996 -4920
- package/dist/components/Chat/Chat.js +10 -9
- package/dist/components/ChatHeader/ChatHeader.js +12 -11
- package/dist/components/ChatHeader/ChatHeaderActions/ChatHeaderActions.js +10 -9
- package/dist/components/ChatHeader/ChatHeaderUI/ChatHeaderUI.js +10 -9
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/IconFont/Icon.js +1 -1
- package/dist/components/Modal/Modal.js +1 -1
- package/dist/components/Model/index.js +1 -1
- package/dist/components/Plugins/index.js +1 -1
- package/dist/components/Popup/index.js +1 -1
- package/dist/components/PopupNew/Popup.js +1 -1
- package/dist/components/Profile/Profile.d.ts +1 -1
- package/dist/components/Profile/Profile.js +16 -16
- package/dist/components/Profile/ProfileDefault.js +39 -39
- package/dist/components/Profile/myProfile/MyProfile.js +10 -9
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.js +25 -33
- package/dist/constant/avatar.d.ts +2 -1
- package/dist/constant/avatar.js +2 -1
- package/dist/context/ChatContext.js +6 -5
- package/dist/external_modules/{mui-CbGEJVT2.js → mui-BcA3SBHM.js} +1 -1
- package/dist/external_modules/{zustand-Dvydplxp.js → zustand-CDmQR4co.js} +7 -7
- package/dist/hooks/index.js +0 -1
- package/dist/index.js +2950 -1530
- package/dist/locales/en-US/TUIContact.d.ts +44 -0
- package/dist/locales/en-US/TUIContact.js +46 -1
- package/dist/locales/en-US/index.d.ts +44 -0
- package/dist/locales/ja-JP/TUIContact.d.ts +44 -0
- package/dist/locales/ja-JP/TUIContact.js +46 -1
- package/dist/locales/ja-JP/index.d.ts +44 -0
- package/dist/locales/ko-KR/TUIContact.d.ts +44 -0
- package/dist/locales/ko-KR/TUIContact.js +46 -1
- package/dist/locales/ko-KR/index.d.ts +44 -0
- package/dist/locales/zh-CN/TUIContact.d.ts +44 -0
- package/dist/locales/zh-CN/TUIContact.js +46 -1
- package/dist/locales/zh-CN/index.d.ts +44 -0
- package/dist/locales/zh-TW/TUIContact.d.ts +44 -0
- package/dist/locales/zh-TW/TUIContact.js +46 -1
- package/dist/locales/zh-TW/index.d.ts +44 -0
- package/dist/states/ChatHeaderState.js +23 -22
- package/dist/states/UIManagerState.js +1 -1
- package/dist/styles/ChatSetting.css +1 -1
- package/dist/styles/index.css +1 -1
- package/dist/styles/index2.css +1 -1
- package/dist/styles/index3.css +1 -1
- package/dist/styles/index4.css +1 -1
- package/dist/styles/index5.css +1 -1
- package/package.json +3 -3
- package/src/components/Profile/Profile.tsx +20 -17
- package/src/components/Profile/ProfileDefault.tsx +4 -6
- package/src/components/index.ts +0 -1
- package/src/constant/avatar.ts +2 -1
- package/src/hooks/index.ts +0 -2
- package/src/locales/en-US/TUIContact.ts +45 -0
- package/src/locales/ja-JP/TUIContact.ts +45 -0
- package/src/locales/ko-KR/TUIContact.ts +45 -0
- package/src/locales/zh-CN/TUIContact.ts +45 -0
- package/src/locales/zh-TW/TUIContact.ts +46 -0
- package/src/states/ChatHeaderState.ts +2 -2
- package/dist/components/Contact/Contact.d.ts +0 -3
- package/dist/components/Contact/Contact.js +0 -81
- package/dist/components/Contact/ContactInfo/ContactInfo.d.ts +0 -8
- package/dist/components/Contact/ContactInfo/ContactInfo.js +0 -27
- package/dist/components/Contact/ContactInfo/addFriendInfo.d.ts +0 -8
- package/dist/components/Contact/ContactInfo/addFriendInfo.js +0 -61
- package/dist/components/Contact/ContactInfo/basicInfo.d.ts +0 -8
- package/dist/components/Contact/ContactInfo/basicInfo.js +0 -48
- package/dist/components/Contact/ContactInfo/blockInfo.d.ts +0 -8
- package/dist/components/Contact/ContactInfo/blockInfo.js +0 -33
- package/dist/components/Contact/ContactInfo/friendApplication.d.ts +0 -8
- package/dist/components/Contact/ContactInfo/friendApplication.js +0 -47
- package/dist/components/Contact/ContactInfo/friendInfo.d.ts +0 -9
- package/dist/components/Contact/ContactInfo/friendInfo.js +0 -83
- package/dist/components/Contact/ContactInfo/groupInfo.d.ts +0 -9
- package/dist/components/Contact/ContactInfo/groupInfo.js +0 -45
- package/dist/components/Contact/ContactInfo/hooks/useContactInfo.d.ts +0 -11
- package/dist/components/Contact/ContactInfo/hooks/useContactInfo.js +0 -84
- package/dist/components/Contact/ContactList/ContactList.d.ts +0 -4
- package/dist/components/Contact/ContactList/ContactList.js +0 -152
- package/dist/components/Contact/hooks/useTUIContact.d.ts +0 -12
- package/dist/components/Contact/hooks/useTUIContact.js +0 -58
- package/dist/components/Contact/index.d.ts +0 -3
- package/dist/components/Contact/index.js +0 -10
- package/dist/components/ContactSearch/ContactSearch.d.ts +0 -3
- package/dist/components/ContactSearch/ContactSearch.js +0 -85
- package/dist/components/ContactSearch/hooks/useContactSearch.d.ts +0 -6
- package/dist/components/ContactSearch/hooks/useContactSearch.js +0 -28
- package/dist/styles/ContactInfo.css +0 -1
- package/dist/styles/ContactList.css +0 -1
- package/dist/styles/ContactSearch.css +0 -1
- package/dist/styles/index6.css +0 -1
- package/src/components/Contact/Contact.tsx +0 -97
- package/src/components/Contact/ContactInfo/ContactInfo.tsx +0 -36
- package/src/components/Contact/ContactInfo/addFriendInfo.tsx +0 -88
- package/src/components/Contact/ContactInfo/basicInfo.tsx +0 -52
- package/src/components/Contact/ContactInfo/blockInfo.tsx +0 -45
- package/src/components/Contact/ContactInfo/friendApplication.tsx +0 -68
- package/src/components/Contact/ContactInfo/friendInfo.tsx +0 -101
- package/src/components/Contact/ContactInfo/groupInfo.tsx +0 -62
- package/src/components/Contact/ContactInfo/hooks/useContactInfo.tsx +0 -101
- package/src/components/Contact/ContactInfo/index.scss +0 -136
- package/src/components/Contact/ContactList/ContactList.tsx +0 -174
- package/src/components/Contact/ContactList/index.scss +0 -111
- package/src/components/Contact/hooks/useTUIContact.tsx +0 -88
- package/src/components/Contact/index.scss +0 -91
- package/src/components/Contact/index.ts +0 -3
- package/src/components/ContactSearch/ContactSearch.tsx +0 -102
- package/src/components/ContactSearch/hooks/useContactSearch.tsx +0 -31
- package/src/components/ContactSearch/index.scss +0 -33
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
import { IGroupModel } from '@tencentcloud/chat-uikit-engine';
|
|
3
|
-
declare function useTUIContact(): {
|
|
4
|
-
friendList: never[];
|
|
5
|
-
groupList: IGroupModel[] | undefined;
|
|
6
|
-
blocklistProfile: never[];
|
|
7
|
-
friendApplicationList: never[];
|
|
8
|
-
blockList: never[];
|
|
9
|
-
isShowContactList: boolean;
|
|
10
|
-
setShowContactList: React.Dispatch<React.SetStateAction<boolean>>;
|
|
11
|
-
};
|
|
12
|
-
export default useTUIContact;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { useState as s, useEffect as p } from "react";
|
|
2
|
-
import n, { TUIStore as S, StoreName as w } from "@tencentcloud/chat-uikit-engine";
|
|
3
|
-
import { useUIManagerState as B } from "../../../states/UIManagerState.js";
|
|
4
|
-
import "../../../ChatSetting-C7QlwAiq.js";
|
|
5
|
-
import "@tencentcloud/uikit-base-component-react";
|
|
6
|
-
import "@tencentcloud/tui-core";
|
|
7
|
-
import "react/jsx-runtime";
|
|
8
|
-
function V() {
|
|
9
|
-
const { chat: i } = B(), [l, e] = s([]), [d, r] = s([]), [L, a] = s([]), [f, u] = s([]), [g, A] = s(), [E, T] = s(!0);
|
|
10
|
-
p(() => {
|
|
11
|
-
S.watch(w.GRP, {
|
|
12
|
-
groupList: I
|
|
13
|
-
}), m(), F(), U();
|
|
14
|
-
}, [i]);
|
|
15
|
-
const I = (t) => {
|
|
16
|
-
A(t);
|
|
17
|
-
};
|
|
18
|
-
p(() => {
|
|
19
|
-
i == null || i.on(n.EVENT.BLACKLIST_UPDATED, k), i == null || i.on(n.EVENT.FRIEND_LIST_UPDATED, D), i == null || i.on(
|
|
20
|
-
n.EVENT.FRIEND_APPLICATION_LIST_UPDATED,
|
|
21
|
-
P
|
|
22
|
-
);
|
|
23
|
-
}, [i]);
|
|
24
|
-
const U = async () => {
|
|
25
|
-
const { data: t } = await i.getFriendApplicationList();
|
|
26
|
-
a(t == null ? void 0 : t.friendApplicationList);
|
|
27
|
-
}, m = async () => {
|
|
28
|
-
const { code: t, data: o } = await (i == null ? void 0 : i.getFriendList());
|
|
29
|
-
t === 0 && e(o);
|
|
30
|
-
}, F = async () => {
|
|
31
|
-
const { data: t } = await (i == null ? void 0 : i.getBlacklist());
|
|
32
|
-
t.length !== 0 && (r(t), c(t));
|
|
33
|
-
}, c = async (t) => {
|
|
34
|
-
const { data: o } = await i.getUserProfile({
|
|
35
|
-
userIDList: t
|
|
36
|
-
});
|
|
37
|
-
u(o);
|
|
38
|
-
}, P = (t) => {
|
|
39
|
-
var o;
|
|
40
|
-
a((o = t == null ? void 0 : t.data) == null ? void 0 : o.friendApplicationList);
|
|
41
|
-
}, k = (t) => {
|
|
42
|
-
r(t.data), c(t.data);
|
|
43
|
-
}, D = (t) => {
|
|
44
|
-
e(t.data);
|
|
45
|
-
};
|
|
46
|
-
return {
|
|
47
|
-
friendList: l,
|
|
48
|
-
groupList: g,
|
|
49
|
-
blocklistProfile: f,
|
|
50
|
-
friendApplicationList: L,
|
|
51
|
-
blockList: d,
|
|
52
|
-
isShowContactList: E,
|
|
53
|
-
setShowContactList: T
|
|
54
|
-
};
|
|
55
|
-
}
|
|
56
|
-
export {
|
|
57
|
-
V as default
|
|
58
|
-
};
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { ContactList as n } from "./ContactList/ContactList.js";
|
|
2
|
-
import { ContactInfo as r, UnMemoizedContactInfo as a } from "./ContactInfo/ContactInfo.js";
|
|
3
|
-
import { Contact as f, UnMemoizedContact as m } from "./Contact.js";
|
|
4
|
-
export {
|
|
5
|
-
f as Contact,
|
|
6
|
-
r as ContactInfo,
|
|
7
|
-
n as ContactList,
|
|
8
|
-
m as UnMemoizedContact,
|
|
9
|
-
a as UnMemoizedContactInfo
|
|
10
|
-
};
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { jsxs as p, jsx as r } from "react/jsx-runtime";
|
|
2
|
-
import F, { useState as u } from "react";
|
|
3
|
-
import { useUIKit as N } from "@tencentcloud/uikit-base-component-react";
|
|
4
|
-
import { defaultUserAvatar as P } from "../../constant/avatar.js";
|
|
5
|
-
import { useTUIContactContext as T } from "../../context/ContactContext.js";
|
|
6
|
-
import "../../context/ChatContext.js";
|
|
7
|
-
import { useUIManagerState as k } from "../../states/UIManagerState.js";
|
|
8
|
-
import "@tencentcloud/chat-uikit-engine";
|
|
9
|
-
import { P as D } from "../../ChatSetting-C7QlwAiq.js";
|
|
10
|
-
import "@tencentcloud/tui-core";
|
|
11
|
-
import { Icon as b } from "../Icon/Icon.js";
|
|
12
|
-
import { IconTypes as V } from "../Icon/type.js";
|
|
13
|
-
import { Input as A } from "../Input/Input.js";
|
|
14
|
-
import B from "./hooks/useContactSearch.js";
|
|
15
|
-
import '../../styles/ContactSearch.css';function j() {
|
|
16
|
-
const { setActiveContact: o } = k("TUIContactSearch"), { t: l } = N(), { friendList: n, setShowContactList: c } = T("TUIContactList"), [C, m] = u(!1), { checkFriend: I, isBlock: S, getUserProfile: v } = B(), [s, h] = u(""), [d, f] = u([]), U = (t) => {
|
|
17
|
-
var e, a;
|
|
18
|
-
if (((e = t.target) == null ? void 0 : e.value) === "") {
|
|
19
|
-
c && c(!0), m(!1), f([]);
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
m(!0), h((a = t.target) == null ? void 0 : a.value), c && c(!1);
|
|
23
|
-
}, g = (t) => {
|
|
24
|
-
var e;
|
|
25
|
-
h((e = t.target) == null ? void 0 : e.value);
|
|
26
|
-
}, y = () => {
|
|
27
|
-
o();
|
|
28
|
-
}, x = async () => {
|
|
29
|
-
s && v(s).then((t) => {
|
|
30
|
-
const { data: e } = t;
|
|
31
|
-
f(e);
|
|
32
|
-
});
|
|
33
|
-
}, R = async (t) => {
|
|
34
|
-
if (await I(t)) {
|
|
35
|
-
const a = n == null ? void 0 : n.find((i) => i.userID === s);
|
|
36
|
-
a && o({ type: "friend", data: a });
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
if (S(t.userID)) {
|
|
40
|
-
o({ type: "block", data: t });
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
o({ type: "addFriend", data: t });
|
|
44
|
-
};
|
|
45
|
-
return /* @__PURE__ */ p("div", { className: "tui-contact-search", children: [
|
|
46
|
-
/* @__PURE__ */ r(
|
|
47
|
-
A,
|
|
48
|
-
{
|
|
49
|
-
className: "tui-contact-search-input",
|
|
50
|
-
placeholder: l("TUIContact.Enter a userID"),
|
|
51
|
-
clearable: !0,
|
|
52
|
-
value: s,
|
|
53
|
-
onBlur: g,
|
|
54
|
-
onFocus: y,
|
|
55
|
-
onChange: U,
|
|
56
|
-
onKeyDown: x,
|
|
57
|
-
prefix: /* @__PURE__ */ r(b, { type: V.SEARCH, height: 16, width: 16 })
|
|
58
|
-
}
|
|
59
|
-
),
|
|
60
|
-
C && d.length === 0 ? /* @__PURE__ */ r("div", { className: "tui-contact-search-item", children: l("TUIContact.No Result") }) : d.map((t, e) => {
|
|
61
|
-
const { userID: a, avatar: i, nick: w } = t;
|
|
62
|
-
return /* @__PURE__ */ p(
|
|
63
|
-
"div",
|
|
64
|
-
{
|
|
65
|
-
className: "tui-contact-search-item",
|
|
66
|
-
role: "button",
|
|
67
|
-
tabIndex: 0,
|
|
68
|
-
onClick: () => {
|
|
69
|
-
R(t);
|
|
70
|
-
},
|
|
71
|
-
children: [
|
|
72
|
-
/* @__PURE__ */ r(D, { src: i || P }),
|
|
73
|
-
/* @__PURE__ */ r("div", { className: "search-item-name", children: w || a })
|
|
74
|
-
]
|
|
75
|
-
},
|
|
76
|
-
a
|
|
77
|
-
);
|
|
78
|
-
})
|
|
79
|
-
] });
|
|
80
|
-
}
|
|
81
|
-
const Y = F.memo(j);
|
|
82
|
-
export {
|
|
83
|
-
Y as ContactSearch,
|
|
84
|
-
j as UnMemoizedContactSearch
|
|
85
|
-
};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import i from "@tencentcloud/chat-uikit-engine";
|
|
2
|
-
import { useTUIContactContext as n } from "../../../context/ContactContext.js";
|
|
3
|
-
import "../../../context/ChatContext.js";
|
|
4
|
-
import { useUIManagerState as a } from "../../../states/UIManagerState.js";
|
|
5
|
-
import "react";
|
|
6
|
-
import "../../../ChatSetting-C7QlwAiq.js";
|
|
7
|
-
import "@tencentcloud/uikit-base-component-react";
|
|
8
|
-
import "@tencentcloud/tui-core";
|
|
9
|
-
import "react/jsx-runtime";
|
|
10
|
-
function E() {
|
|
11
|
-
const { blockList: e } = n("TUIContactList"), { chat: o } = a();
|
|
12
|
-
return {
|
|
13
|
-
checkFriend: (t) => o.checkFriend({
|
|
14
|
-
userIDList: [t == null ? void 0 : t.userID],
|
|
15
|
-
type: i.TYPES.SNS_CHECK_TYPE_BOTH
|
|
16
|
-
}).then((r) => {
|
|
17
|
-
var c, s;
|
|
18
|
-
return ((s = (c = r == null ? void 0 : r.data) == null ? void 0 : c.successUserIDList[0]) == null ? void 0 : s.relation) === i.TYPES.SNS_TYPE_BOTH_WAY;
|
|
19
|
-
}),
|
|
20
|
-
isBlock: (t) => e == null ? void 0 : e.includes(t),
|
|
21
|
-
getUserProfile: (t) => o.getUserProfile({
|
|
22
|
-
userIDList: [t]
|
|
23
|
-
})
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
export {
|
|
27
|
-
E as default
|
|
28
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.tui-contact-info{width:100%;height:100%;display:flex;padding:60px;flex-direction:column;overflow:hidden}[data-uikit-theme=light] .tui-contact-info{background-color:var(--uikit-theme-light-bg-color-operate);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}[data-uikit-theme=dark] .tui-contact-info{background-color:var(--uikit-theme-dark-bg-color-operate);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}.tui-contact-info .tui-contact-info-header{padding-bottom:15px;border-bottom:1px solid #ddd;overflow:hidden;box-sizing:border-box;width:100%}.tui-contact-info .tui-contact-info-header .header-container{flex:1}.tui-contact-info .tui-contact-info-header .header-container .header-container-avatar{display:flex;align-items:center;padding:10px}.tui-contact-info .tui-contact-info-header .header-container .header-container-name{font-size:24px;padding:15px}[data-uikit-theme=light] .tui-contact-info .tui-contact-info-header .header-container .header-container-name{color:var(--uikit-theme-light-text-color-primary);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}[data-uikit-theme=dark] .tui-contact-info .tui-contact-info-header .header-container .header-container-name{color:var(--uikit-theme-dark-text-color-primary);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}.tui-contact-info .tui-contact-info-header .header-container .header-container-text{margin-top:20px;font-size:16px;word-break:break-all}[data-uikit-theme=light] .tui-contact-info .tui-contact-info-header .header-container .header-container-text{color:var(--uikit-theme-light-text-color-secondary);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}[data-uikit-theme=dark] .tui-contact-info .tui-contact-info-header .header-container .header-container-text{color:var(--uikit-theme-dark-text-color-secondary);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}.tui-contact-info .tui-contact-info-content{padding:15px 0;overflow:hidden}[data-uikit-theme=light] .tui-contact-info .tui-contact-info-content{color:var(--uikit-theme-light-text-color-secondary);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}[data-uikit-theme=dark] .tui-contact-info .tui-contact-info-content{color:var(--uikit-theme-dark-text-color-secondary);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}.tui-contact-info .tui-contact-info-content .content-item{display:flex;flex-direction:row;align-items:center;padding:6px 0;font-size:16px;min-height:56px}.tui-contact-info .tui-contact-info-content .content-item-wording{padding:6px 0;font-size:16px;min-height:56px}.tui-contact-info .tui-contact-info-content .content-item-wording-text{margin-top:5px;flex:1;border:1px solid #e8e8e9;border-radius:4px;padding:4px;color:inherit;resize:none;height:100px;width:95%}.tui-contact-info .tui-contact-info-content .content-item-label{margin-right:5px}.tui-contact-info .tui-contact-info-content .content-item-text{flex:1;display:flex;flex-direction:row;overflow:hidden}.tui-contact-info .tui-contact-info-content .content-btn-container{display:flex;padding:30px;justify-content:center}.tui-contact-info .tui-contact-info-content .content-btn-container .content-item-btn{margin:15px;padding:8px 20px;border-radius:25px;border:none;font-size:14px;text-align:center;letter-spacing:0;min-width:100px;cursor:pointer;-webkit-user-select:none;user-select:none}[data-uikit-theme=light] .tui-contact-info .tui-contact-info-content .content-btn-container .delete-btn{color:var(--uikit-theme-light-text-color-error);border:1px solid var(--uikit-color-border-color-error);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}[data-uikit-theme=dark] .tui-contact-info .tui-contact-info-content .content-btn-container .delete-btn{color:var(--uikit-theme-dark-text-color-error);border:1px solid var(--uikit-color-border-color-error);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}[data-uikit-theme=light] .tui-contact-info .tui-contact-info-content .content-btn-container .confirm-btn{color:#fff;background-color:var(--uikit-theme-light-text-color-link);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}[data-uikit-theme=dark] .tui-contact-info .tui-contact-info-content .content-btn-container .confirm-btn{color:#fff;background-color:var(--uikit-theme-dark-text-color-link);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}.tui-contact-info-h5{padding:8px}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.tui-contacts-list{flex:1 1 auto;min-width:360px;max-width:360px;display:flex;flex-direction:column;position:relative;text-align:initial;overflow:hidden scroll}[data-uikit-theme=light] .tui-contacts-list{color:var(--uikit-theme-light-text-color-primary);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}[data-uikit-theme=dark] .tui-contacts-list{color:var(--uikit-theme-dark-text-color-primary);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}.tui-contacts-list .tui-contacts-title{display:flex;justify-content:space-between}.tui-contacts-list .tui-contacts-list-title{display:flex;padding:10px 20px;cursor:pointer}.tui-contacts-list .tui-contacts-list-icon{display:flex;align-items:center;justify-content:center;margin-right:20px}.tui-contacts-list .tui-contacts-list-icon .contacts-list-icon{font-size:12px}[data-uikit-theme=light] .tui-contacts-list .tui-contacts-list-icon .contacts-list-icon{color:var(--uikit-theme-light-text-color-primary);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}[data-uikit-theme=dark] .tui-contacts-list .tui-contacts-list-icon .contacts-list-icon{color:var(--uikit-theme-dark-text-color-primary);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}.tui-contacts-list .tui-contacts-list-item{align-items:center;cursor:pointer;display:flex;padding:10px 20px;text-align:center;font-size:14px}.tui-contacts-list .tui-contacts-list-item .tui-contacts-list-item-card{display:flex;padding:0 10px;overflow:hidden;align-items:center;justify-content:space-between;flex:1}.tui-contacts-list .tui-contacts-list-item .tui-contacts-list-item-container{margin-left:10px}.tui-contacts-list .tui-contacts-list-item .text-ellipsis,.tui-contacts-list .tui-contacts-list-item .tui-contacts-list-item-name,.tui-contacts-list .tui-contacts-list-item .tui-contacts-list-item-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tui-contacts-list .tui-contacts-list-item .tui-contacts-list-item-text,.tui-contacts-list .tui-contacts-list-item .tui-contacts-list-btn-text{color:#999;font-size:12px;text-align:left}.tui-contacts-list .application-btn{width:30px;height:14px;padding:5px;border-radius:15px;font-size:10px;text-align:center;line-height:14px;letter-spacing:0;cursor:pointer;-webkit-user-select:none;user-select:none;border:1px solid #006eff;background:#006eff;color:#fff}.tui-contacts-list-h5{min-width:100%;width:100%;max-width:100%}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.tui-contact-search{width:100%;position:relative;text-align:initial;align-items:center;justify-content:space-between}.tui-contact-search .tui-contact-search-input{margin:0 10px}.tui-contact-search .tui-contact-search-text{color:#147aff;font-size:14px}.tui-contact-search .tui-contact-search-item{position:absolute;margin:10px 20px;display:flex;align-items:center}[data-uikit-theme=light] .tui-contact-search .tui-contact-search-item{color:var(--uikit-theme-light-text-color-primary);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}[data-uikit-theme=dark] .tui-contact-search .tui-contact-search-item{color:var(--uikit-theme-dark-text-color-primary);transition:color .3s ease-out,border-color .3s ease-out,background-color .3s ease-out}.tui-contact-search .tui-contact-search-item .search-item-name{padding-left:10px}
|
package/dist/styles/index6.css
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}:root{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:after,*:before{box-sizing:border-box}ul,li{list-style:none;padding:0;margin:0}picture,img,video,canvas,svg{display:block;max-width:100%}img{max-width:100%;height:auto;vertical-align:middle;image-rendering:-webkit-optimize-contrast;aspect-ratio:attr(width)/attr(height);display:inline-block;-webkit-user-drag:none;-webkit-user-select:none;user-select:none}img:not([src],[srcset]){visibility:hidden}@font-face{font-family:iconfont;src:url(data:font/woff2;base64,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) format("woff2"),url(data:font/woff;base64,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) format("woff"),url(data:font/ttf;base64,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) format("truetype")}.iconfont{font-family:iconfont,Arial,sans-serif!important;font-size:20px;font-style:normal;line-height:1;vertical-align:bottom;-webkit-font-smoothing:antialiased;-webkit-text-stroke-width:.2px;-moz-osx-font-smoothing:grayscale}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import React, { PropsWithChildren, useMemo, useState } from 'react';
|
|
2
|
-
import { useUIKit } from '@tencentcloud/uikit-base-component-react';
|
|
3
|
-
import {
|
|
4
|
-
TUIContactContextProvider,
|
|
5
|
-
TUIContactContextValue,
|
|
6
|
-
} from '../../context/ContactContext';
|
|
7
|
-
import { isH5 } from 'tuikit-atomicx-react';
|
|
8
|
-
import { useUIManagerState } from '../../states';
|
|
9
|
-
import useTUIContact from './hooks/useTUIContact';
|
|
10
|
-
import { ContactList } from './ContactList/ContactList';
|
|
11
|
-
import { ContactSearch } from '../ContactSearch/ContactSearch';
|
|
12
|
-
import { Icon, IconTypes } from '../Icon';
|
|
13
|
-
import './index.scss';
|
|
14
|
-
|
|
15
|
-
export function UnMemoizedContact<T>(
|
|
16
|
-
props: PropsWithChildren<T>,
|
|
17
|
-
): React.ReactElement {
|
|
18
|
-
const { children } = props;
|
|
19
|
-
const { t } = useUIKit();
|
|
20
|
-
const { setActiveContact } = useUIManagerState('TUIContact');
|
|
21
|
-
const [isShowAddFriend, setShowAddFriend] = useState(false);
|
|
22
|
-
const addFriend = () => {
|
|
23
|
-
setActiveContact();
|
|
24
|
-
setShowAddFriend(true);
|
|
25
|
-
};
|
|
26
|
-
const addFriendBack = () => {
|
|
27
|
-
setActiveContact();
|
|
28
|
-
setShowAddFriend(false);
|
|
29
|
-
};
|
|
30
|
-
const {
|
|
31
|
-
friendList,
|
|
32
|
-
blockList,
|
|
33
|
-
blocklistProfile,
|
|
34
|
-
friendApplicationList,
|
|
35
|
-
isShowContactList,
|
|
36
|
-
setShowContactList,
|
|
37
|
-
} = useTUIContact();
|
|
38
|
-
|
|
39
|
-
const TUIContactValue: TUIContactContextValue = useMemo(
|
|
40
|
-
() => ({
|
|
41
|
-
friendList,
|
|
42
|
-
blockList,
|
|
43
|
-
blocklistProfile,
|
|
44
|
-
friendApplicationList,
|
|
45
|
-
isShowContactList,
|
|
46
|
-
setShowContactList,
|
|
47
|
-
}),
|
|
48
|
-
[
|
|
49
|
-
friendList,
|
|
50
|
-
blocklistProfile,
|
|
51
|
-
friendApplicationList,
|
|
52
|
-
isShowContactList,
|
|
53
|
-
setShowContactList,
|
|
54
|
-
],
|
|
55
|
-
);
|
|
56
|
-
return (
|
|
57
|
-
<TUIContactContextProvider value={TUIContactValue}>
|
|
58
|
-
{children || (
|
|
59
|
-
<div className={`tui-contacts ${isH5 ? 'tui-contacts-h5' : ''} `}>
|
|
60
|
-
{!isShowAddFriend && (
|
|
61
|
-
<>
|
|
62
|
-
<div className="tui-contacts-header">
|
|
63
|
-
<div className="tui-contact-input">
|
|
64
|
-
<ContactSearch />
|
|
65
|
-
</div>
|
|
66
|
-
<Icon
|
|
67
|
-
onClick={addFriend}
|
|
68
|
-
type={IconTypes.ADDFRIEND}
|
|
69
|
-
width={24}
|
|
70
|
-
height={24}
|
|
71
|
-
/>
|
|
72
|
-
</div>
|
|
73
|
-
<ContactList />
|
|
74
|
-
</>
|
|
75
|
-
)}
|
|
76
|
-
{isShowAddFriend && (
|
|
77
|
-
<>
|
|
78
|
-
<div className="tui-contacts-add-header">
|
|
79
|
-
<Icon
|
|
80
|
-
onClick={addFriendBack}
|
|
81
|
-
type={IconTypes.BACK}
|
|
82
|
-
width={9}
|
|
83
|
-
height={16}
|
|
84
|
-
/>
|
|
85
|
-
<div className="tui-contacts-add-header-title">
|
|
86
|
-
{t('TUIContact.Add Friend')}
|
|
87
|
-
</div>
|
|
88
|
-
</div>
|
|
89
|
-
<ContactSearch />
|
|
90
|
-
</>
|
|
91
|
-
)}
|
|
92
|
-
</div>
|
|
93
|
-
)}
|
|
94
|
-
</TUIContactContextProvider>
|
|
95
|
-
);
|
|
96
|
-
}
|
|
97
|
-
export const Contact = React.memo(UnMemoizedContact);
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
PropsWithChildren,
|
|
3
|
-
} from 'react';
|
|
4
|
-
import React from 'react';
|
|
5
|
-
import { useUIManagerState } from '../../../states';
|
|
6
|
-
import { isH5 } from 'tuikit-atomicx-react';
|
|
7
|
-
import { AddFriendInfo } from './addFriendInfo';
|
|
8
|
-
import { BlockInfo } from './blockInfo';
|
|
9
|
-
import { FriendApplicationInfo } from './friendApplication';
|
|
10
|
-
import { FriendInfo } from './friendInfo';
|
|
11
|
-
import { GroupInfo } from './groupInfo';
|
|
12
|
-
import './index.scss';
|
|
13
|
-
|
|
14
|
-
interface TUIContactInfoProps {
|
|
15
|
-
className?: string | undefined;
|
|
16
|
-
showChats?: () => void;
|
|
17
|
-
}
|
|
18
|
-
export function UnMemoizedContactInfo<T extends TUIContactInfoProps>(
|
|
19
|
-
props: PropsWithChildren<T>,
|
|
20
|
-
): React.ReactElement {
|
|
21
|
-
const { showChats } = props;
|
|
22
|
-
const { contactData } = useUIManagerState('TUIContact');
|
|
23
|
-
if (!contactData?.type) {
|
|
24
|
-
return (<> </>);
|
|
25
|
-
}
|
|
26
|
-
return (
|
|
27
|
-
<div className={`tui-contact-info ${isH5 ? 'tui-contact-info-h5' : ''} `}>
|
|
28
|
-
{contactData?.type === 'addFriend' && (<AddFriendInfo profile={contactData?.data} />)}
|
|
29
|
-
{contactData?.type === 'friend' && (<FriendInfo showChats={showChats} friend={contactData?.data} />)}
|
|
30
|
-
{contactData?.type === 'block' && (<BlockInfo profile={contactData?.data} />)}
|
|
31
|
-
{contactData?.type === 'group' && (<GroupInfo showChats={showChats} group={contactData?.data} />)}
|
|
32
|
-
{contactData?.type === 'friendApplication' && <FriendApplicationInfo application={contactData?.data} />}
|
|
33
|
-
</div>
|
|
34
|
-
);
|
|
35
|
-
}
|
|
36
|
-
export const ContactInfo = React.memo(UnMemoizedContactInfo);
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
2
|
-
import { Profile } from '@tencentcloud/chat';
|
|
3
|
-
import { useUIKit } from '@tencentcloud/uikit-base-component-react';
|
|
4
|
-
import useContactInfo from './hooks/useContactInfo';
|
|
5
|
-
import { BasicInfo } from './basicInfo';
|
|
6
|
-
import { DivWithEdit } from '../../DivWithEdit';
|
|
7
|
-
|
|
8
|
-
interface Props {
|
|
9
|
-
profile: Profile;
|
|
10
|
-
}
|
|
11
|
-
export function UnMemoizedAddFriendInfo<T extends Props>(
|
|
12
|
-
props: T,
|
|
13
|
-
): React.ReactElement {
|
|
14
|
-
const { profile } = props;
|
|
15
|
-
const { userID } = profile;
|
|
16
|
-
const { t } = useUIKit();
|
|
17
|
-
const [isEditName, setIsEditRemark] = useState('');
|
|
18
|
-
const [remark, setRemark] = useState('');
|
|
19
|
-
const [wording, setWording] = useState('');
|
|
20
|
-
const [isSendedAdd, setIsSendAddFriend] = useState(false);
|
|
21
|
-
|
|
22
|
-
const {
|
|
23
|
-
addFriend,
|
|
24
|
-
} = useContactInfo();
|
|
25
|
-
const handleSetEditRemark = () => {
|
|
26
|
-
setIsEditRemark('remark');
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
const addFriendHandler = async () => {
|
|
30
|
-
const options = {
|
|
31
|
-
userID,
|
|
32
|
-
remark,
|
|
33
|
-
wording,
|
|
34
|
-
};
|
|
35
|
-
await addFriend(options);
|
|
36
|
-
setIsSendAddFriend(true);
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
const editText = (data?: any) => {
|
|
40
|
-
setRemark(data?.value);
|
|
41
|
-
setIsEditRemark('');
|
|
42
|
-
};
|
|
43
|
-
|
|
44
|
-
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
|
|
45
|
-
setWording(e.target.value);
|
|
46
|
-
};
|
|
47
|
-
return (
|
|
48
|
-
<>
|
|
49
|
-
<BasicInfo profile={profile} />
|
|
50
|
-
{!isSendedAdd
|
|
51
|
-
? (
|
|
52
|
-
<div className="tui-contact-info-content">
|
|
53
|
-
<div className="content-item-wording">
|
|
54
|
-
<p className="content-item-label">{t('TUIContact.Enter the verification info')}</p>
|
|
55
|
-
<textarea className="content-item-wording-text" value={wording} onChange={(e: any) => { handleChange(e); }} />
|
|
56
|
-
</div>
|
|
57
|
-
<div className="content-item">
|
|
58
|
-
<p className="content-item-label">{t('TUIContact.remark')}</p>
|
|
59
|
-
<DivWithEdit
|
|
60
|
-
name="remark"
|
|
61
|
-
className="content-item-text"
|
|
62
|
-
value={remark}
|
|
63
|
-
type="text"
|
|
64
|
-
toggle={handleSetEditRemark}
|
|
65
|
-
isEdit={isEditName === 'remark'}
|
|
66
|
-
confirm={editText}
|
|
67
|
-
close={() => {
|
|
68
|
-
setIsEditRemark('');
|
|
69
|
-
}}
|
|
70
|
-
/>
|
|
71
|
-
</div>
|
|
72
|
-
<div className="content-btn-container">
|
|
73
|
-
<div className="content-item-btn confirm-btn" role="button" tabIndex={0} onClick={addFriendHandler}>{t('TUIContact.Send application')}</div>
|
|
74
|
-
</div>
|
|
75
|
-
</div>
|
|
76
|
-
)
|
|
77
|
-
: (
|
|
78
|
-
<div className="tui-contact-info-content">
|
|
79
|
-
<div className="content-item">
|
|
80
|
-
<p className="content-item-label">{t('TUIContact.verification info')}</p>
|
|
81
|
-
<p className="content-item-text">{wording}</p>
|
|
82
|
-
</div>
|
|
83
|
-
</div>
|
|
84
|
-
)}
|
|
85
|
-
</>
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
export const AddFriendInfo = React.memo(UnMemoizedAddFriendInfo);
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { TUIConversationService } from '@tencentcloud/chat-uikit-engine';
|
|
3
|
-
import { useUIKit } from '@tencentcloud/uikit-base-component-react';
|
|
4
|
-
import { defaultUserAvatar } from '../../../constant/avatar';
|
|
5
|
-
import { useUIManagerState } from '../../../states';
|
|
6
|
-
import { Avatar, isH5 } from 'tuikit-atomicx-react';
|
|
7
|
-
import { Icon, IconTypes } from '../../Icon';
|
|
8
|
-
|
|
9
|
-
import type { Profile } from '@tencentcloud/chat';
|
|
10
|
-
|
|
11
|
-
interface Props {
|
|
12
|
-
profile: Profile;
|
|
13
|
-
}
|
|
14
|
-
export function UnMemoizedBasicInfo<T extends Props>(
|
|
15
|
-
props: T,
|
|
16
|
-
): React.ReactElement {
|
|
17
|
-
const { profile } = props;
|
|
18
|
-
const { t } = useUIKit();
|
|
19
|
-
const {
|
|
20
|
-
userID, nick, selfSignature, avatar,
|
|
21
|
-
} = profile;
|
|
22
|
-
const { setActiveContact } = useUIManagerState('TUIContact');
|
|
23
|
-
const back = () => {
|
|
24
|
-
TUIConversationService.switchConversation('');
|
|
25
|
-
setActiveContact();
|
|
26
|
-
};
|
|
27
|
-
return (
|
|
28
|
-
<div className="tui-contact-info-header">
|
|
29
|
-
{isH5 && (
|
|
30
|
-
<Icon
|
|
31
|
-
width={9}
|
|
32
|
-
height={16}
|
|
33
|
-
type={IconTypes.BACK}
|
|
34
|
-
onClick={back}
|
|
35
|
-
/>
|
|
36
|
-
)}
|
|
37
|
-
<div className="header-container">
|
|
38
|
-
<div className="header-container-avatar">
|
|
39
|
-
<Avatar size='xl' src={avatar || defaultUserAvatar} />
|
|
40
|
-
<div className="header-container-name">{nick || userID}</div>
|
|
41
|
-
</div>
|
|
42
|
-
<div className="header-container-text">{`ID:${userID}`}</div>
|
|
43
|
-
<div className="header-container-text">
|
|
44
|
-
{t('TUIContact.Signature')}
|
|
45
|
-
:
|
|
46
|
-
{selfSignature || ''}
|
|
47
|
-
</div>
|
|
48
|
-
</div>
|
|
49
|
-
</div>
|
|
50
|
-
);
|
|
51
|
-
}
|
|
52
|
-
export const BasicInfo = React.memo(UnMemoizedBasicInfo);
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import React, { useState, useEffect } from 'react';
|
|
2
|
-
import { useUIKit } from '@tencentcloud/uikit-base-component-react';
|
|
3
|
-
import { useUIManagerState } from '../../../states';
|
|
4
|
-
import { Switch } from '../../Switch';
|
|
5
|
-
import { BasicInfo } from './basicInfo';
|
|
6
|
-
import useContactInfo from './hooks/useContactInfo';
|
|
7
|
-
import type { Profile } from '@tencentcloud/chat';
|
|
8
|
-
|
|
9
|
-
interface Props {
|
|
10
|
-
profile: Profile;
|
|
11
|
-
}
|
|
12
|
-
export function UnMemoizedBlockInfo<T extends Props>(
|
|
13
|
-
props: T,
|
|
14
|
-
): React.ReactElement {
|
|
15
|
-
const { profile } = props;
|
|
16
|
-
const { contactData, setActiveContact } = useUIManagerState('TUIContact');
|
|
17
|
-
const { t } = useUIKit();
|
|
18
|
-
const [isAddToBlocklist, setIsAddToBlocklist] = useState(false);
|
|
19
|
-
|
|
20
|
-
const {
|
|
21
|
-
removeFromBlocklist,
|
|
22
|
-
} = useContactInfo();
|
|
23
|
-
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
setIsAddToBlocklist(true);
|
|
26
|
-
}, [contactData]);
|
|
27
|
-
|
|
28
|
-
const removeFromBlocklistHandler = async () => {
|
|
29
|
-
await removeFromBlocklist(profile.userID);
|
|
30
|
-
setIsAddToBlocklist(false);
|
|
31
|
-
setActiveContact();
|
|
32
|
-
};
|
|
33
|
-
return (
|
|
34
|
-
<>
|
|
35
|
-
<BasicInfo profile={profile} />
|
|
36
|
-
<div className="tui-contact-info-content">
|
|
37
|
-
<div className="content-item">
|
|
38
|
-
<p className="content-item-label">{t('TUIContact.block')}</p>
|
|
39
|
-
<Switch className="content-item-text" onChange={removeFromBlocklistHandler} checked={isAddToBlocklist} />
|
|
40
|
-
</div>
|
|
41
|
-
</div>
|
|
42
|
-
</>
|
|
43
|
-
);
|
|
44
|
-
}
|
|
45
|
-
export const BlockInfo = React.memo(UnMemoizedBlockInfo);
|