mirror of
https://github.com/cinnyapp/cinny.git
synced 2025-11-05 06:50:28 +03:00
Sort direct messages by activity (#393)
* Add sort util Signed-off-by: Ajay Bura <ajbura@gmail.com> * Use sort util for members Signed-off-by: Ajay Bura <ajbura@gmail.com> * Sort dms by activity Signed-off-by: Ajay Bura <ajbura@gmail.com> * Sort dms activily Signed-off-by: Ajay Bura <ajbura@gmail.com> * Chanege roomIdByLastActive func name Signed-off-by: Ajay Bura <ajbura@gmail.com>
This commit is contained in:
parent
bb90f11ec8
commit
5a299b21c5
7 changed files with 100 additions and 95 deletions
|
|
@ -1,18 +1,38 @@
|
|||
import React, { useEffect } from 'react';
|
||||
import React, { useState, useEffect } from 'react';
|
||||
|
||||
import initMatrix from '../../../client/initMatrix';
|
||||
import cons from '../../../client/state/cons';
|
||||
import navigation from '../../../client/state/navigation';
|
||||
import Postie from '../../../util/Postie';
|
||||
import { roomIdByActivity } from '../../../util/sort';
|
||||
|
||||
import RoomsCategory from './RoomsCategory';
|
||||
|
||||
import { AtoZ } from './common';
|
||||
|
||||
const drawerPostie = new Postie();
|
||||
function Directs() {
|
||||
const mx = initMatrix.matrixClient;
|
||||
const { roomList, notifications } = initMatrix;
|
||||
const directIds = [...roomList.directs].sort(AtoZ);
|
||||
const [directIds, setDirectIds] = useState([]);
|
||||
|
||||
useEffect(() => setDirectIds([...roomList.directs].sort(roomIdByActivity)), []);
|
||||
|
||||
useEffect(() => {
|
||||
const handleTimeline = (event, room, toStartOfTimeline, removed, data) => {
|
||||
if (!roomList.directs.has(room.roomId)) return;
|
||||
if (!data.liveEvent) return;
|
||||
if (directIds[0] === room.roomId) return;
|
||||
const newDirectIds = [room.roomId];
|
||||
directIds.forEach((id) => {
|
||||
if (id === room.roomId) return;
|
||||
newDirectIds.push(id);
|
||||
});
|
||||
setDirectIds(newDirectIds);
|
||||
};
|
||||
mx.on('Room.timeline', handleTimeline);
|
||||
return () => {
|
||||
mx.removeListener('Room.timeline', handleTimeline);
|
||||
};
|
||||
}, [directIds]);
|
||||
|
||||
useEffect(() => {
|
||||
const selectorChanged = (selectedRoomId, prevSelectedRoomId) => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue