import { useRef, useState } from "react"; import { useNostrEvents, dateToUnix } from "nostr-react"; import NoteCard from '@/components/NoteCard'; import { Skeleton } from "@/components/ui/skeleton"; import { Button } from "@/components/ui/button"; interface ProfileTextFeedProps { pubkey: string; } const ProfileTextFeed: React.FC = ({ pubkey }) => { const now = useRef(new Date()); const [limit, setLimit] = useState(10); const { events, isLoading } = useNostrEvents({ filter: { authors: [pubkey], kinds: [1], limit: limit, }, }); // filter out all images since we only want text messages // let filteredEvents = events.filter((event) => !event.content.match(/https?:\/\/.*\.(?:png|jpg|gif|jpeg)/g)?.[0]); // filter out all replies (tag[0] == e) let filteredEvents = events.filter((event) => !event.tags.some((tag) => { return tag[0] == 'e' })); const loadMore = () => { setLimit(prevLimit => prevLimit + 10); }; return ( <> {filteredEvents.length === 0 && isLoading ? (
) : ( <> {filteredEvents.map((event) => (
))} {!isLoading && filteredEvents.length > 0 && (
)} )} ); } export default ProfileTextFeed;