Files
scrm.antd/src/pages/ChatLogs/ChatUtils.tsx

142 lines
2.8 KiB
TypeScript
Raw Normal View History

2023-04-14 17:31:45 +08:00
/**
*
* @param data
* @param state
* @returns
*/
2023-04-17 17:47:31 +08:00
import React, { useEffect, useState } from 'react';
2023-04-14 17:31:45 +08:00
export const groupMembersCount = (data: any[], state: any) => {
let count = 0;
data.forEach((item) => {
if (item.state == state) {
count += 1;
}
});
return count;
};
/**
*
* @param data
* @param group_members_type
* @param state
* @returns
*/
export const groupMembersCount2 = (data: any[], group_members_type: any, state: any) => {
let count = 0;
data.forEach((item) => {
if (item.group_members_type == group_members_type && item.state == state) {
count += 1;
}
});
return count;
};
/**
*
* @param data
* @param groupMembers
* @returns
*/
export const adminList = (data: any, groupMembers: any) => {
if (data) {
try {
const msg = JSON.parse(data);
if (Array.isArray(msg) && msg.length) {
let arr: any = [];
msg.forEach((el) => {
arr.push(groupMembers[el.userid]?.name);
});
return <div>{arr.join('')}</div>;
}
} catch (e) {
return <></>;
}
}
return <></>;
};
/**
* userid
* @param data
* @returns
*/
export const getAdminList = (data: any) => {
if (data) {
try {
const msg = JSON.parse(data);
if (Array.isArray(msg)) {
let arr: string[] = [];
msg.forEach((item) => {
arr.push(item.userid);
});
return arr;
}
} catch (e) {}
}
return [];
};
2023-04-14 17:31:45 +08:00
/**
*
* @returns
*/
export const formatTags = (data: any) => {
if (data) {
try {
const tags = JSON.parse(data);
2023-04-18 17:28:06 +08:00
if (Array.isArray(tags) && tags.length) {
2023-04-14 17:31:45 +08:00
return (
<>
{tags.map((item) => {
return (
<div key={`${item.group_name}_${item.tag_name}`}>
{item.group_name}{item.tag_name}
</div>
);
})}
</>
);
}
2023-04-18 17:28:06 +08:00
} catch (e) {}
2023-04-14 17:31:45 +08:00
}
2023-04-18 17:28:06 +08:00
return <div></div>;
2023-04-14 17:31:45 +08:00
};
2023-04-17 17:47:31 +08:00
type IGroupIcon = {
groupList: any[];
};
/**
* todo
* @param props
* @returns
*/
export const GroupIcon: React.FC<IGroupIcon> = (props) => {
const [list, setList] = useState<any>([[], [], []]);
useEffect(() => {
let temp: any = [[], [], []];
const { groupList } = props;
for (let index = 0; index < 9; index++) {
const element = groupList[index];
if (index < 3) {
temp[0].push(element);
} else if (index < 6) {
temp[1].push(element);
} else {
temp[2].push(element);
}
}
console.log(temp);
}, [props.groupList]);
// <div className={styles.avatar}>{item.name ? item.name[0] : '群'}</div>;
return <div></div>;
};