@replyke/core
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
35 lines (34 loc) • 1.36 kB
TypeScript
import { UpdateSpaceProps } from "./useUpdateSpace";
import { SpaceDetailed, SpaceIncludeParam, SpacePreview } from "../../interfaces/models/Space";
import { SpaceMemberStatus } from "../../interfaces/models/SpaceMember";
export interface UseSpaceDataProps {
space?: SpaceDetailed;
spaceId?: string | undefined | null;
shortId?: string | undefined | null;
slug?: string | undefined | null;
include?: SpaceIncludeParam;
}
export interface UseSpaceDataValues {
space: SpaceDetailed | null | undefined;
setSpace: React.Dispatch<React.SetStateAction<SpaceDetailed | null | undefined>>;
isMember: boolean;
isAdmin: boolean;
isModerator: boolean;
canPost: boolean;
canModerate: boolean;
canRead: boolean;
membershipStatus: SpaceMemberStatus | null;
isPending: boolean;
isBanned: boolean;
breadcrumb: SpacePreview[];
parentSpace: SpacePreview | null;
childSpaces: SpacePreview[];
updateSpace(props: Pick<UpdateSpaceProps, "update">): Promise<SpaceDetailed | undefined>;
deleteSpace: () => Promise<void>;
joinSpace: () => Promise<void>;
leaveSpace: () => Promise<void>;
loading: boolean;
error: string | null;
}
declare function useSpaceData({ spaceId, shortId, slug, space: spaceProp, include, }: UseSpaceDataProps): UseSpaceDataValues;
export default useSpaceData;