fix chat list and member list

This commit is contained in:
PhilReact 2024-11-23 07:42:35 +02:00
parent 6911950947
commit 643982ca5a
8 changed files with 32 additions and 14 deletions

View File

@ -26,6 +26,7 @@ export const MessageQueueProvider = ({ children }) => {
type,
groupDirectId,
identifier: tempId,
signature: uid.rnd(),
retries: 0, // Retry count for display purposes
status: 'pending' // Initial status is 'pending'
};

View File

@ -18,7 +18,7 @@ export const ChatList = ({ initialMessages, myAddress, tempMessages, chatId, onR
count: messages.length,
getItemKey: (index) => messages[index].signature,
getScrollElement: () => parentRef?.current,
estimateSize: () => 80, // Provide an estimated height of items, adjust this as needed
estimateSize: useCallback(() => 80, []), // Provide an estimated height of items, adjust this as needed
overscan: 10, // Number of items to render outside the visible area to improve smoothness
});

View File

@ -82,9 +82,9 @@ export const MessageItem = ({
color: "white",
}}
alt={message?.senderName}
src={`${getBaseApiReact()}/arbitrary/THUMBNAIL/${
src={message?.senderName ? `${getBaseApiReact()}/arbitrary/THUMBNAIL/${
message?.senderName
}/qortal_avatar?async=true`}
}/qortal_avatar?async=true` : ''}
>
{message?.senderName?.charAt(0)}
</Avatar>

View File

@ -12,7 +12,7 @@ export const getMemberInvites = async (groupNumber) => {
return groupData;
}
const getNames = async (listOfMembers) => {
const getNames = async (listOfMembers, includeNoNames) => {
let members = [];
if (listOfMembers && Array.isArray(listOfMembers)) {
for (const member of listOfMembers) {
@ -20,6 +20,8 @@ const getNames = async (listOfMembers) => {
const name = await getNameInfo(member.offender);
if (name) {
members.push({ ...member, name });
} else if(includeNoNames){
members.push({ ...member, name: name || "" });
}
}
}
@ -42,7 +44,7 @@ export const ListOfBans = ({ groupId, setInfoSnack, setOpenSnack, show }) => {
const getInvites = async (groupId) => {
try {
const res = await getMemberInvites(groupId);
const resWithNames = await getNames(res);
const resWithNames = await getNames(res, true);
setBans(resWithNames);
} catch (error) {
console.error(error);
@ -162,7 +164,7 @@ export const ListOfBans = ({ groupId, setInfoSnack, setOpenSnack, show }) => {
<ListItemAvatar>
<Avatar
alt={member?.name}
src={`${getBaseApiReact()}/arbitrary/THUMBNAIL/${member?.name}/qortal_avatar?async=true`}
src={member?.name ? `${getBaseApiReact()}/arbitrary/THUMBNAIL/${member?.name}/qortal_avatar?async=true` : ''}
/>
</ListItemAvatar>
<ListItemText primary={member?.name || member?.offender} />

View File

@ -12,7 +12,7 @@ export const getMemberInvites = async (groupNumber) => {
return groupData;
}
const getNames = async (listOfMembers) => {
const getNames = async (listOfMembers, includeNoNames) => {
let members = [];
if (listOfMembers && Array.isArray(listOfMembers)) {
for (const member of listOfMembers) {
@ -20,6 +20,8 @@ const getNames = async (listOfMembers) => {
const name = await getNameInfo(member.invitee);
if (name) {
members.push({ ...member, name });
} else if(includeNoNames){
members.push({ ...member, name: name || "" });
}
}
}
@ -43,7 +45,7 @@ export const ListOfInvites = ({ groupId, setInfoSnack, setOpenSnack, show }) =>
const getInvites = async (groupId) => {
try {
const res = await getMemberInvites(groupId);
const resWithNames = await getNames(res);
const resWithNames = await getNames(res, true);
setInvites(resWithNames);
} catch (error) {
console.error(error);
@ -163,7 +165,7 @@ export const ListOfInvites = ({ groupId, setInfoSnack, setOpenSnack, show }) =>
<ListItemAvatar>
<Avatar
alt={member?.name}
src={`${getBaseApiReact()}/arbitrary/THUMBNAIL/${member?.name}/qortal_avatar?async=true`}
src={member?.name ? `${getBaseApiReact()}/arbitrary/THUMBNAIL/${member?.name}/qortal_avatar?async=true` : ''}
/>
</ListItemAvatar>
<ListItemText primary={member?.name || member?.invitee} />

View File

@ -12,7 +12,7 @@ export const getMemberInvites = async (groupNumber) => {
return groupData;
}
const getNames = async (listOfMembers) => {
const getNames = async (listOfMembers, includeNoNames) => {
let members = [];
if (listOfMembers && Array.isArray(listOfMembers)) {
for (const member of listOfMembers) {
@ -20,6 +20,8 @@ const getNames = async (listOfMembers) => {
const name = await getNameInfo(member.joiner);
if (name) {
members.push({ ...member, name });
} else if(includeNoNames){
members.push({ ...member, name: name || "" });
}
}
}
@ -44,7 +46,7 @@ export const ListOfJoinRequests = ({ groupId, setInfoSnack, setOpenSnack, show }
const getInvites = async (groupId) => {
try {
const res = await getMemberInvites(groupId);
const resWithNames = await getNames(res);
const resWithNames = await getNames(res, true);
setInvites(resWithNames);
} catch (error) {
console.error(error);
@ -181,7 +183,7 @@ export const ListOfJoinRequests = ({ groupId, setInfoSnack, setOpenSnack, show }
<ListItemAvatar>
<Avatar
alt={member?.name}
src={`${getBaseApiReact()}/arbitrary/THUMBNAIL/${member?.name}/qortal_avatar?async=true`}
src={member?.name ? `${getBaseApiReact()}/arbitrary/THUMBNAIL/${member?.name}/qortal_avatar?async=true` : ''}
/>
</ListItemAvatar>
<ListItemText primary={member?.name || member?.joiner} />

View File

@ -336,7 +336,7 @@ const ListOfMembers = ({
<ListItemAvatar>
<Avatar
alt={member?.name || member?.member}
src={`${getBaseApiReact()}/arbitrary/THUMBNAIL/${member?.name}/qortal_avatar?async=true`}
src={member?.name ? `${getBaseApiReact()}/arbitrary/THUMBNAIL/${member?.name}/qortal_avatar?async=true` : ''}
/>
</ListItemAvatar>
<ListItemText

View File

@ -25,6 +25,7 @@ import { LoadingSnackbar } from "../Snackbar/LoadingSnackbar";
import { getFee } from "../../background";
import { LoadingButton } from "@mui/lab";
import { subscribeToEvent, unsubscribeFromEvent } from "../../utils/events";
import { Spacer } from "../../common/Spacer";
function a11yProps(index: number) {
return {
@ -113,7 +114,7 @@ export const ManageMembers = ({
}
};
const getMembers = async (groupId) => {
const getMembersWithNames = async (groupId) => {
try {
setIsLoadingMembers(true)
const res = await getGroupMembers(groupId);
@ -123,6 +124,14 @@ export const ManageMembers = ({
} catch (error) {}
};
const getMembers = async (groupId) => {
try {
const res = await getGroupMembers(groupId);
console.log('res', res)
setMembersWithNames(res?.members || []);
} catch (error) {}
};
React.useEffect(()=> {
if(selectedGroup?.groupId){
getMembers(selectedGroup?.groupId)
@ -256,6 +265,8 @@ export const ManageMembers = ({
maxWidth: '750px'
}}
>
<Button variant="contained" onClick={()=> getMembersWithNames(selectedGroup?.groupId)}>Load members with names</Button>
<Spacer height="10px" />
<ListOfMembers
members={membersWithNames || []}
groupId={selectedGroup?.groupId}