Add publish to directory toggle in room settings (#2279)

This commit is contained in:
Ajay Bura 2025-03-20 20:25:31 +11:00 committed by GitHub
parent c16e060f73
commit 074a5e855d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 107 additions and 0 deletions

View file

@ -0,0 +1,35 @@
import { useCallback, useEffect } from 'react';
import { Visibility } from 'matrix-js-sdk';
import { useAsyncCallback } from './useAsyncCallback';
import { useMatrixClient } from './useMatrixClient';
export const useRoomDirectoryVisibility = (roomId: string) => {
const mx = useMatrixClient();
const [visibilityState, loadVisibility] = useAsyncCallback(
useCallback(async () => {
const v = await mx.getRoomDirectoryVisibility(roomId);
return v.visibility === Visibility.Public;
}, [mx, roomId])
);
useEffect(() => {
loadVisibility();
}, [loadVisibility]);
const setVisibility = useCallback(
async (visibility: boolean) => {
await mx.setRoomDirectoryVisibility(
roomId,
visibility ? Visibility.Public : Visibility.Private
);
await loadVisibility();
},
[mx, roomId, loadVisibility]
);
return {
visibilityState,
setVisibility,
};
};