UNPKG

8.88 kBJavaScriptView Raw
1import "core-js/modules/es7.array.includes";
2import "core-js/modules/es6.string.includes";
3import "core-js/modules/es6.function.name";
4import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
5import "core-js/modules/es6.object.assign";
6import React, { useState, useEffect, useMemo, useCallback, useRef } from 'react'; // import '@beisen-phoenix/style-token/css/reset.css';
7
8import { SunLoading } from '@beisen-phoenix/loading';
9import GroupTab from './components/groupTab';
10import TimeLines from './components/timeLine/index';
11import Head from './components/head/index';
12import { getCommentById, getFeedOperationById } from './helper/require';
13import CooReply from './reply';
14import './index.css';
15import { I18NCooperationDefault } from "./helper/i18nDefault";
16var Name;
17
18(function (Name) {
19 // all = 'cooperation_All',
20 Name["communicate"] = "cooperation_Communicate";
21 Name["operationalRecords"] = "cooperation_OperationalRecords";
22})(Name || (Name = {}));
23
24var CooperationContent = function CooperationContent(props) {
25 var translation = Object.assign({}, I18NCooperationDefault, props.translation);
26 var id = props.id,
27 _props$isShowHead = props.isShowHead,
28 isShowHead = _props$isShowHead === void 0 ? true : _props$isShowHead,
29 _props$isOpenReward = props.isOpenReward,
30 isOpenReward = _props$isOpenReward === void 0 ? false : _props$isOpenReward,
31 _props$cooperationHea = props.cooperationHeadName,
32 cooperationHeadName = _props$cooperationHea === void 0 ? translation.cooperation || '协作' : _props$cooperationHea,
33 _props$isShowOperatio = props.isShowOperationRecord,
34 isShowOperationRecord = _props$isShowOperatio === void 0 ? true : _props$isShowOperatio,
35 extendedComponentsData = props.extendedComponentsData,
36 _props$isShowMentionA = props.isShowMentionAllBtn,
37 isShowMentionAllBtn = _props$isShowMentionA === void 0 ? true : _props$isShowMentionA,
38 _props$userAdvanceMod = props.userAdvanceMode,
39 userAdvanceMode = _props$userAdvanceMod === void 0 ? false : _props$userAdvanceMod,
40 _props$isShowMentionB = props.isShowMentionBtn,
41 isShowMentionBtn = _props$isShowMentionB === void 0 ? true : _props$isShowMentionB,
42 _props$isShowEmojyBtn = props.isShowEmojyBtn,
43 isShowEmojyBtn = _props$isShowEmojyBtn === void 0 ? true : _props$isShowEmojyBtn,
44 _props$isShowVisible = props.isShowVisible,
45 isShowVisible = _props$isShowVisible === void 0 ? false : _props$isShowVisible,
46 _props$isShowUploadBt = props.isShowUploadBtn,
47 isShowUploadBtn = _props$isShowUploadBt === void 0 ? true : _props$isShowUploadBt,
48 _props$isShowModal = props.isShowModal,
49 isShowModal = _props$isShowModal === void 0 ? false : _props$isShowModal,
50 operationBtnExternal = props.operationBtnExternal,
51 _props$isExtendBefor = props.isExtendBefor,
52 isExtendBefor = _props$isExtendBefor === void 0 ? false : _props$isExtendBefor,
53 _props$defalutTabName = props.defalutTabName,
54 defalutTabName = _props$defalutTabName === void 0 ? Name.communicate : _props$defalutTabName;
55
56 var _useState = useState(defalutTabName),
57 _useState2 = _slicedToArray(_useState, 2),
58 activeName = _useState2[0],
59 setActiveName = _useState2[1];
60
61 var _useState3 = useState(),
62 _useState4 = _slicedToArray(_useState3, 2),
63 feedOperations = _useState4[0],
64 setFeedOperations = _useState4[1];
65
66 var componentObj = useRef({});
67
68 var _useInitData = useInitData(id, setFeedOperations, activeName),
69 _useInitData2 = _slicedToArray(_useInitData, 2),
70 feedComments = _useInitData2[0],
71 loading = _useInitData2[1];
72
73 var handleClickFunc = useCallback(function (val) {
74 setActiveName(val.name);
75 }, []);
76 var defaultTabArr = [// { text: '全部', isActive: true, name: Name.all },
77 {
78 text: translation.communication,
79 isActive: !props.defalutTabName,
80 name: Name.communicate
81 }];
82 var tabArr = useMemo(function () {
83 //如果显示操作记录
84 if (isShowOperationRecord) {
85 defaultTabArr = defaultTabArr.concat([{
86 text: translation.operation,
87 isActive: false,
88 name: Name.operationalRecords
89 }]);
90 }
91
92 extendedComponentsData && extendedComponentsData.length > 0 && extendedComponentsData.forEach(function (element) {
93 if (isExtendBefor) {
94 defaultTabArr.unshift({
95 text: element.text,
96 isActive: props.defalutTabName == element.name,
97 name: element.name
98 });
99 } else {
100 defaultTabArr.push({
101 text: element.text,
102 isActive: props.defalutTabName == element.name,
103 name: element.name
104 });
105 }
106
107 if (!componentObj.current[element.name]) {
108 componentObj.current[element.name] = element.components;
109 }
110 });
111 return defaultTabArr;
112 }, [isShowOperationRecord]); // 处理点击全部操作
113
114 var handleFeedOperationsClickFunc = useCallback(function () {
115 useGetfeedOperations(id, setFeedOperations);
116 }, []);
117 var CooReplyComponent = useMemo(function () {
118 return React.createElement(CooReply, {
119 feedComments: feedComments,
120 id: id,
121 isShowReward: isOpenReward,
122 userAdvanceMode: userAdvanceMode,
123 isShowMentionAllBtn: isShowMentionAllBtn,
124 isShowVisible: isShowVisible,
125 isShowMentionBtn: isShowMentionBtn,
126 isShowEmojyBtn: isShowEmojyBtn,
127 isShowModal: isShowModal,
128 isShowUploadBtn: isShowUploadBtn,
129 operationBtnExternal: operationBtnExternal,
130 translation: translation
131 });
132 }, [feedComments, id, isOpenReward]);
133 var TimeLineComponent = useMemo(function () {
134 return React.createElement(TimeLines, Object.assign({}, feedOperations, {
135 clickFunc: handleFeedOperationsClickFunc,
136 translation: translation
137 }));
138 }, [feedOperations]);
139 var GroupTabProps = {
140 data: tabArr,
141 onChange: handleClickFunc
142 };
143 var isShowTab = useMemo(function () {
144 return isShowOperationRecord || Array.isArray(extendedComponentsData) && extendedComponentsData.length > 0;
145 }, [isShowOperationRecord, extendedComponentsData]);
146 useMemo(function () {
147 // componentObj.current[Name.all] = (
148 // <React.Fragment>
149 // {isShowOperationRecord && TimeLineComponent}
150 // {CooReplyComponent}
151 // </React.Fragment>
152 // );
153 componentObj.current[Name.communicate] = CooReplyComponent; //是否显示操作记录
154
155 if (isShowOperationRecord) {
156 componentObj.current[Name.operationalRecords] = TimeLineComponent;
157 }
158 }, [TimeLineComponent, CooReplyComponent]); // useEffect(() => {
159 // extendedComponentsData &&
160 // extendedComponentsData.length > 0 &&
161 // extendedComponentsData.forEach(element => {
162 // defaultTabArr.push({
163 // text: element.text,
164 // isActive: false,
165 // name: element.name
166 // });
167 // if (!componentObj.current[element.name]) {
168 // componentObj.current[element.name] = element.components;
169 // }
170 // });
171 // }, []);
172
173 return React.createElement("div", {
174 className: "cooperation-container"
175 }, isShowHead && React.createElement(Head, {
176 cooperationHeadName: cooperationHeadName
177 }), isShowTab && React.createElement(GroupTab, Object.assign({}, GroupTabProps)), loading ? React.createElement(SunLoading, null) : React.createElement("div", null, componentObj.current[activeName]));
178}; //自定义初始化数据hooks
179
180
181var useInitData = function useInitData(id, setFeedOperations, activeName) {
182 var _useState5 = useState(),
183 _useState6 = _slicedToArray(_useState5, 2),
184 feedComments = _useState6[0],
185 setFeedComments = _useState6[1];
186
187 var _useState7 = useState(false),
188 _useState8 = _slicedToArray(_useState7, 2),
189 loading = _useState8[0],
190 setLoading = _useState8[1];
191
192 useEffect(function () {
193 var tabName = [Name.communicate, Name.operationalRecords];
194
195 if (tabName.includes(activeName)) {
196 setLoading(true); //用于初始化数据
197
198 getCommentById({
199 feed_id: id
200 }).then(function (data) {
201 var Code = data && data.Code || {},
202 Data = data && data.Data || {};
203 var newfeedComments = Data && Data.feedComments;
204 var feedOperations = Data && Data.feedOperations;
205
206 if (Code === 1) {
207 setFeedComments(newfeedComments);
208 setFeedOperations(feedOperations);
209 setLoading(false);
210 }
211 });
212 }
213 }, [activeName]);
214 return [feedComments, loading];
215}; //自定义获取feedOperations hooks
216
217
218var useGetfeedOperations = function useGetfeedOperations(id, setFeedOperations) {
219 //用于初始化数据
220 getFeedOperationById({
221 feed_id: id
222 }).then(function (data) {
223 var Code = data.Code,
224 Data = data.Data;
225
226 if (Code === 1) {
227 setFeedOperations(Data);
228 }
229 });
230};
231
232export default CooperationContent;
\No newline at end of file