notedeck

One damus client to rule them all
git clone git://jb55.com/notedeck
Log | Files | Refs | README | LICENSE

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:
Mcrates/notedeck_columns/src/accounts/mod.rs | 13+++++++++----
Mcrates/notedeck_columns/src/nav.rs | 1+
Mcrates/notedeck_columns/src/profile.rs | 6++++++
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("")