2023-09-02 07:24:30 +00:00
|
|
|
import React, { useEffect, useState } from 'react';
|
|
|
|
import { relayInit } from 'nostr-tools';
|
|
|
|
import PostCard from './PostCard/PostCard';
|
2023-09-03 12:46:07 +00:00
|
|
|
import Header from './Header/Header';
|
2023-09-03 13:04:25 +00:00
|
|
|
import NewThreadCard from './PostCard/NewThreadCard';
|
2023-09-02 07:24:30 +00:00
|
|
|
|
|
|
|
// Define the Event interface
|
|
|
|
interface Event {
|
|
|
|
id: string;
|
|
|
|
content: string;
|
|
|
|
created_at: number;
|
|
|
|
// Add other fields if necessary
|
|
|
|
}
|
|
|
|
|
2023-09-03 12:46:07 +00:00
|
|
|
const relay = relayInit('wss://relay.damus.io');
|
2023-09-02 07:24:30 +00:00
|
|
|
|
|
|
|
const Home = () => {
|
|
|
|
// Define the type of the state variable
|
|
|
|
const [events, setEvents] = useState<Event[]>([]);
|
|
|
|
|
|
|
|
useEffect(() => {
|
|
|
|
relay.on('connect', async () => {
|
|
|
|
console.log(`connected to ${relay.url}`);
|
2023-09-04 14:34:47 +00:00
|
|
|
console.log(Math.floor(Date.now() - (30 * 24 * 60 * 60 * 1000)))
|
|
|
|
|
|
|
|
// Pad the ID with leading zeros based on filterDifficulty
|
|
|
|
const paddedId = "0".padStart(filterDifficulty + 1, '0');
|
|
|
|
console.log(paddedId);
|
2023-09-02 07:24:30 +00:00
|
|
|
|
|
|
|
const eventList = await relay.list([
|
|
|
|
{
|
2023-09-04 14:34:47 +00:00
|
|
|
ids: ['00'], //prefix number of leading zeros from filterDifficulty
|
2023-09-02 07:24:30 +00:00
|
|
|
kinds: [1],
|
2023-09-04 14:34:47 +00:00
|
|
|
//until: Date.now(),
|
2023-09-02 07:24:30 +00:00
|
|
|
limit: 10,
|
2023-09-04 14:34:47 +00:00
|
|
|
//since: Math.floor(Date.now() - (30 * 24 * 60 * 60 * 1000)), // 24 hours ago
|
2023-09-02 07:24:30 +00:00
|
|
|
},
|
|
|
|
]);
|
2023-09-04 14:34:47 +00:00
|
|
|
// const socket = new WebSocket('wss://relay.damus.io');
|
|
|
|
// socket.onopen = () => {
|
|
|
|
// console.log('WebSocket connected');
|
|
|
|
// const subscription = [
|
|
|
|
// 'REQ',
|
|
|
|
// 'POW-TEST',
|
|
|
|
// {
|
|
|
|
// ids: ["0000"],
|
|
|
|
// limit: 10,
|
|
|
|
// },
|
|
|
|
// ];
|
|
|
|
// socket.send(JSON.stringify(subscription));
|
|
|
|
// };
|
|
|
|
|
|
|
|
// let i = 0;
|
|
|
|
// let start = Date.now();
|
|
|
|
// socket.onmessage = event => {
|
|
|
|
// console.log(event.data);
|
|
|
|
// };
|
|
|
|
// socket.onerror = error => {
|
|
|
|
// console.error('WebSocket error:', error);
|
|
|
|
// };
|
2023-09-02 07:24:30 +00:00
|
|
|
|
|
|
|
// Assuming eventList is of type Event[]
|
|
|
|
setEvents(eventList);
|
2023-09-04 14:34:47 +00:00
|
|
|
console.log(eventList);
|
2023-09-02 07:24:30 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
relay.on('error', () => {
|
|
|
|
console.log(`failed to connect to ${relay.url}`);
|
|
|
|
});
|
|
|
|
|
|
|
|
relay.connect();
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
return (
|
2023-09-03 12:46:07 +00:00
|
|
|
<>
|
|
|
|
<main className="bg-gray-950 text-white min-h-screen">
|
2023-09-02 07:24:30 +00:00
|
|
|
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 p-4">
|
2023-09-03 13:04:25 +00:00
|
|
|
<NewThreadCard />
|
2023-09-02 07:24:30 +00:00
|
|
|
{events.map((event, index) => (
|
2023-09-04 14:34:47 +00:00
|
|
|
<PostCard key={index} content={event.content} time={new Date(event.created_at * 1000)} />
|
2023-09-02 07:24:30 +00:00
|
|
|
))}
|
|
|
|
</div>
|
2023-09-03 12:46:07 +00:00
|
|
|
</main>
|
|
|
|
<Header />
|
|
|
|
</>
|
2023-09-02 07:24:30 +00:00
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
export default Home;
|