commit dca9d3eeab2a0f14502830491368e034a3cb9449
parent 7b9db55a0577bfeba44d123f8dd483ce60751e4b
Author: kernelkind <kernelkind@gmail.com>
Date: Tue, 8 Jul 2025 14:50:49 -0400
send contact list event on account creation
Signed-off-by: kernelkind <kernelkind@gmail.com>
Diffstat:
3 files changed, 16 insertions(+), 4 deletions(-)
diff --git a/crates/notedeck_columns/src/accounts/mod.rs b/crates/notedeck_columns/src/accounts/mod.rs
@@ -1,10 +1,11 @@
-use enostr::{FullKeypair, Pubkey};
+use enostr::{FullKeypair, Pubkey, RelayPool};
use nostrdb::{Ndb, Transaction};
use notedeck::{Accounts, Images, SingleUnkIdAction, UnknownIds};
use crate::app::get_active_columns_mut;
use crate::decks::DecksCache;
+use crate::profile::send_new_contact_list;
use crate::{
login_manager::AcquireKeyState,
route::Route,
@@ -70,6 +71,7 @@ pub fn render_accounts_route(
decks: &mut DecksCache,
login_state: &mut AcquireKeyState,
clipboard: &mut Clipboard,
+ pool: &mut RelayPool,
route: AccountsRoute,
) -> AddAccountAction {
let resp = match route {
@@ -94,7 +96,7 @@ pub fn render_accounts_route(
}
}
AccountsRouteResponse::AddAccount(response) => {
- let action = process_login_view_response(accounts, decks, col, response);
+ let action = process_login_view_response(accounts, decks, col, ndb, pool, response);
*login_state = Default::default();
let router = get_active_columns_mut(accounts, decks)
.column_mut(col)
@@ -143,13 +145,16 @@ pub fn process_login_view_response(
manager: &mut Accounts,
decks: &mut DecksCache,
col: usize,
+ ndb: &Ndb,
+ pool: &mut RelayPool,
response: AccountLoginResponse,
) -> AddAccountAction {
let (r, pubkey) = match response {
AccountLoginResponse::CreateNew => {
- let kp = FullKeypair::generate().to_keypair();
+ let kp = FullKeypair::generate();
let pubkey = kp.pubkey;
- (manager.add_account(kp), pubkey)
+ send_new_contact_list(kp.to_filled(), ndb, pool);
+ (manager.add_account(kp.to_keypair()), pubkey)
}
AccountLoginResponse::LoginWith(keypair) => {
let pubkey = keypair.pubkey;
diff --git a/crates/notedeck_columns/src/nav.rs b/crates/notedeck_columns/src/nav.rs
@@ -480,6 +480,7 @@ fn render_nav_body(
&mut app.decks_cache,
&mut app.view_state.login,
ctx.clipboard,
+ ctx.pool,
*amr,
);
let txn = Transaction::new(ctx.ndb).expect("txn");
diff --git a/crates/notedeck_columns/src/profile.rs b/crates/notedeck_columns/src/profile.rs
@@ -205,6 +205,12 @@ fn send_note_builder(builder: NoteBuilder, ndb: &Ndb, pool: &mut RelayPool, kp:
pool.send(&enostr::ClientMessage::raw(raw_msg));
}
+pub fn send_new_contact_list(kp: FilledKeypair, ndb: &Ndb, pool: &mut RelayPool) {
+ let builder = construct_new_contact_list(kp.pubkey);
+
+ send_note_builder(builder, ndb, pool, kp);
+}
+
fn construct_new_contact_list<'a>(pk: &'a Pubkey) -> NoteBuilder<'a> {
NoteBuilder::new()
.content("")