mirror of
https://github.com/cinnyapp/cinny.git
synced 2025-11-04 22:40:29 +03:00
Some checks are pending
Deploy to Netlify (dev) / Deploy to Netlify (push) Waiting to run
* WIP - support room version 12 * add room creators hook * revert changes from powerlevels * improve use room creators hook * add hook to get dm users * add options to add creators in create room/space * add member item component in member drawer * remove unused import * extract member drawer header component * get room creators as set only if room version support them * add room permissions hook * support room v12 creators power * make predecessor event id optional * add info about founders in permissions * allow to create infinite powers to room creators * allow everyone with permission to create infinite power * handle additional creators in room upgrade * add option to follow space tombstone
27 lines
905 B
TypeScript
27 lines
905 B
TypeScript
import { useMemo } from 'react';
|
|
import { AccountDataEvent, MDirectContent } from '../../types/matrix/accountData';
|
|
import { useAccountData } from './useAccountData';
|
|
import { useAllJoinedRoomsSet, useGetRoom } from './useGetRoom';
|
|
|
|
export const useDirectUsers = (): string[] => {
|
|
const directEvent = useAccountData(AccountDataEvent.Direct);
|
|
const content = directEvent?.getContent<MDirectContent>();
|
|
|
|
const allJoinedRooms = useAllJoinedRoomsSet();
|
|
const getRoom = useGetRoom(allJoinedRooms);
|
|
|
|
const users = useMemo(() => {
|
|
if (typeof content !== 'object') return [];
|
|
|
|
const u = Object.keys(content).filter((userId) => {
|
|
const rooms = content[userId];
|
|
if (!Array.isArray(rooms)) return false;
|
|
const hasDM = rooms.some((roomId) => typeof roomId === 'string' && !!getRoom(roomId));
|
|
return hasDM;
|
|
});
|
|
|
|
return u;
|
|
}, [content, getRoom]);
|
|
|
|
return users;
|
|
};
|