2023-01-18 23:31:34 +00:00
|
|
|
import "./FollowsYou.css";
|
2023-01-18 03:26:42 +00:00
|
|
|
import { useMemo } from "react";
|
|
|
|
import { useSelector } from "react-redux";
|
2023-02-08 21:10:26 +00:00
|
|
|
import { useIntl } from "react-intl";
|
|
|
|
|
2023-01-20 11:11:50 +00:00
|
|
|
import { HexKey } from "Nostr";
|
|
|
|
import { RootState } from "State/Store";
|
2023-02-07 20:04:50 +00:00
|
|
|
import useFollowsFeed from "Feed/FollowsFeed";
|
2023-01-20 11:11:50 +00:00
|
|
|
import { getFollowers } from "Feed/FollowsFeed";
|
2023-01-18 03:26:42 +00:00
|
|
|
|
2023-02-08 21:10:26 +00:00
|
|
|
import messages from "./messages";
|
|
|
|
|
2023-01-18 03:26:42 +00:00
|
|
|
export interface FollowsYouProps {
|
2023-02-07 20:04:50 +00:00
|
|
|
pubkey: HexKey;
|
2023-01-18 03:26:42 +00:00
|
|
|
}
|
|
|
|
|
2023-02-07 20:04:50 +00:00
|
|
|
export default function FollowsYou({ pubkey }: FollowsYouProps) {
|
2023-02-08 21:10:26 +00:00
|
|
|
const { formatMessage } = useIntl();
|
2023-02-07 20:04:50 +00:00
|
|
|
const feed = useFollowsFeed(pubkey);
|
|
|
|
const loginPubKey = useSelector<RootState, HexKey | undefined>(
|
|
|
|
(s) => s.login.publicKey
|
|
|
|
);
|
2023-01-18 03:26:42 +00:00
|
|
|
|
2023-02-07 20:04:50 +00:00
|
|
|
const pubkeys = useMemo(() => {
|
|
|
|
return getFollowers(feed.store, pubkey);
|
2023-02-08 21:10:26 +00:00
|
|
|
}, [feed, pubkey]);
|
2023-01-18 03:26:42 +00:00
|
|
|
|
2023-02-07 19:47:57 +00:00
|
|
|
const followsMe = loginPubKey ? pubkeys.includes(loginPubKey) : false;
|
2023-01-18 03:26:42 +00:00
|
|
|
|
2023-02-08 21:10:26 +00:00
|
|
|
return followsMe ? (
|
|
|
|
<span className="follows-you">{formatMessage(messages.FollowsYou)}</span>
|
|
|
|
) : null;
|
2023-01-18 03:26:42 +00:00
|
|
|
}
|