mirror of
https://github.com/cinnyapp/cinny.git
synced 2025-11-09 16:50:28 +03:00
Add publish to directory toggle in room settings (#2279)
This commit is contained in:
parent
c16e060f73
commit
074a5e855d
3 changed files with 107 additions and 0 deletions
35
src/app/hooks/useRoomDirectoryVisibility.ts
Normal file
35
src/app/hooks/useRoomDirectoryVisibility.ts
Normal 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,
|
||||
};
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue