stream-chat-react-native-core
Version:
The official React Native and Expo components for Stream Chat, a service for building chat applications
28 lines (21 loc) • 800 B
text/typescript
import { LinkPreviewsManager, LinkPreviewsManagerState } from 'stream-chat';
import { useMessageComposer } from '../../../contexts';
import { useStateStore } from '../../../hooks';
const linkPreviewsManagerStateSelector = (state: LinkPreviewsManagerState) => ({
linkPreviews: Array.from(state.previews.values()).filter((preview) =>
LinkPreviewsManager.previewIsLoaded(preview),
),
});
export const useLinkPreviews = () => {
const messageComposer = useMessageComposer();
const { linkPreviewsManager } = messageComposer;
const { linkPreviews } = useStateStore(
linkPreviewsManager.state,
linkPreviewsManagerStateSelector,
);
return linkPreviews;
};
export const useHasLinkPreviews = () => {
const linkPreviews = useLinkPreviews();
return linkPreviews.length > 0;
};