feat: improve message list

This commit is contained in:
reya
2024-08-04 14:30:29 +07:00
parent 1d9561194d
commit 668238656e
2 changed files with 24 additions and 8 deletions

View File

@@ -296,6 +296,10 @@ pub async fn login(
let filter = Filter::new().kind(Kind::GiftWrap).pubkey(public_key);
// Generate a fake sig for rumor event.
// TODO: Find better way to save unsigned event to database.
let fake_sig = Signature::from_str("f9e79d141c004977192d05a86f81ec7c585179c371f7350a5412d33575a2a356433f58e405c2296ed273e2fe0aafa25b641e39cc4e1f3f261ebf55bce0cbac83").unwrap();
if let Ok(events) = client
.get_events_of_with_opts(
vec![filter],
@@ -304,10 +308,6 @@ pub async fn login(
)
.await
{
// Use fake sig, it doesn't matter.
// TODO: Find better way to save unsigned event to database.
let fake_sig = Signature::from_str("f9e79d141c004977192d05a86f81ec7c585179c371f7350a5412d33575a2a356433f58e405c2296ed273e2fe0aafa25b641e39cc4e1f3f261ebf55bce0cbac83").unwrap();
for event in events.iter() {
if let Ok(UnwrappedGift { rumor, .. }) = client.unwrap_gift_wrap(event).await {
let rumor_clone = rumor.clone();
@@ -336,6 +336,21 @@ pub async fn login(
if let Ok(UnwrappedGift { rumor, sender }) =
client.unwrap_gift_wrap(&event).await
{
let rumor_clone = rumor.clone();
let ev = Event::new(
rumor_clone.id.unwrap(),
rumor_clone.pubkey,
rumor_clone.created_at,
rumor_clone.kind,
rumor_clone.tags,
rumor_clone.content,
fake_sig,
);
if let Err(e) = client.database().save_event(&ev).await {
println!("Error: {}", e)
}
let payload =
EventPayload { event: rumor.as_json(), sender: sender.to_hex() };

View File

@@ -191,7 +191,7 @@ function List() {
["chats", id],
(prevEvents: NostrEvent[]) => {
if (!prevEvents) return prevEvents;
return [...prevEvents, event];
return [event, ...prevEvents];
},
);
});
@@ -236,9 +236,6 @@ function List() {
-1.5;
}}
>
<div className="h-20 flex items-center justify-center">
<CoopIcon className="size-10 text-neutral-200 dark:text-neutral-800" />
</div>
{isLoading ? (
<>
<div className="flex items-center gap-3 my-1.5 px-3">
@@ -258,6 +255,10 @@ function List() {
Cannot load message. Please try again later.
</div>
</div>
) : !data.length ? (
<div className="h-20 flex items-center justify-center">
<CoopIcon className="size-10 text-neutral-200 dark:text-neutral-800" />
</div>
) : (
data.map((item) => (
<div