Add face pile to rooms (#11356)
* Add face pile to rooms * Migrate FacePile to use Compound * Fix CI * Use FacePile component in room header * Add facepile tests * Make dead code CI happy * Lint * Fix tests * Fix CSS selectors * Update room face pile snapshot * Use useMemo instead of useState and useEffect * Remove unused imports * Update snapshot * Update snapshot
This commit is contained in:
parent
af268b4a03
commit
dc70ea5059
14 changed files with 445 additions and 131 deletions
|
@ -15,7 +15,7 @@ limitations under the License.
|
|||
*/
|
||||
|
||||
import { useCallback, useState } from "react";
|
||||
import { ClientEvent, MatrixClient, MatrixEvent, Room, RoomEvent } from "matrix-js-sdk/src/matrix";
|
||||
import { ClientEvent, MatrixClient, MatrixEvent } from "matrix-js-sdk/src/matrix";
|
||||
|
||||
import { useTypedEventEmitter } from "./useEventEmitter";
|
||||
|
||||
|
@ -38,17 +38,20 @@ export const useAccountData = <T extends {}>(cli: MatrixClient, eventType: strin
|
|||
};
|
||||
|
||||
// Hook to simplify listening to Matrix room account data
|
||||
export const useRoomAccountData = <T extends {}>(room: Room, eventType: string): T => {
|
||||
const [value, setValue] = useState<T | undefined>(() => tryGetContent<T>(room.getAccountData(eventType)));
|
||||
// Currently not used, commenting out otherwise the dead code CI is unhappy.
|
||||
// But this code is valid and probably will be needed.
|
||||
|
||||
const handler = useCallback(
|
||||
(event) => {
|
||||
if (event.getType() !== eventType) return;
|
||||
setValue(event.getContent());
|
||||
},
|
||||
[eventType],
|
||||
);
|
||||
useTypedEventEmitter(room, RoomEvent.AccountData, handler);
|
||||
// export const useRoomAccountData = <T extends {}>(room: Room, eventType: string): T => {
|
||||
// const [value, setValue] = useState<T | undefined>(() => tryGetContent<T>(room.getAccountData(eventType)));
|
||||
|
||||
return value || ({} as T);
|
||||
};
|
||||
// const handler = useCallback(
|
||||
// (event) => {
|
||||
// if (event.getType() !== eventType) return;
|
||||
// setValue(event.getContent());
|
||||
// },
|
||||
// [eventType],
|
||||
// );
|
||||
// useTypedEventEmitter(room, RoomEvent.AccountData, handler);
|
||||
|
||||
// return value || ({} as T);
|
||||
// };
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue