Use consistent "bookmark" wording in code and UI

This commit is contained in:
Ginger 2025-09-05 12:14:02 -04:00
parent 53612f4641
commit c45cb62e2d
No known key found for this signature in database
6 changed files with 129 additions and 173 deletions

View file

@ -0,0 +1,43 @@
import { useCallback, useMemo } from 'react';
import { AccountDataEvent } from '../../types/matrix/accountData';
import { useAccountData } from './useAccountData';
import { useMatrixClient } from './useMatrixClient';
export type InCinnyBookmarkedServersContent = {
servers?: string[];
};
export const useBookmarkedServers = (): [
string[],
(server: string) => Promise<void>,
(server: string) => Promise<void>
] => {
const mx = useMatrixClient();
const accountData = useAccountData(AccountDataEvent.CinnyBookmarkedServers);
const bookmarkedServers = useMemo(
() => accountData?.getContent<InCinnyBookmarkedServersContent>()?.servers ?? [],
[accountData]
);
const addServerBookmark = useCallback(
async (server: string) => {
if (bookmarkedServers.indexOf(server) === -1) {
await mx.setAccountData(AccountDataEvent.CinnyBookmarkedServers, {
servers: [...bookmarkedServers, server],
});
}
},
[mx, bookmarkedServers]
);
const removeServerBookmark = useCallback(
async (server: string) => {
await mx.setAccountData(AccountDataEvent.CinnyBookmarkedServers, {
servers: bookmarkedServers.filter((addedServer) => server !== addedServer),
});
},
[mx, bookmarkedServers]
);
return [bookmarkedServers, addServerBookmark, removeServerBookmark];
};