add preview flag to NoteAction

Signed-off-by: kernelkind <kernelkind@gmail.com>
This commit is contained in:
kernelkind
2025-06-17 12:36:18 -04:00
parent b3569e90d6
commit 87b4b5fc70
5 changed files with 30 additions and 9 deletions

View File

@@ -18,7 +18,7 @@ pub enum NoteAction {
Profile(Pubkey),
/// User has clicked a note link
Note(NoteId),
Note { note_id: NoteId, preview: bool },
/// User has selected some context option
Context(ContextSelection),
@@ -30,6 +30,15 @@ pub enum NoteAction {
Media(MediaAction),
}
impl NoteAction {
pub fn note(id: NoteId) -> NoteAction {
NoteAction::Note {
note_id: id,
preview: false,
}
}
}
#[derive(Debug, Eq, PartialEq, Clone)]
pub enum ZapAction {
Send(ZapTargetAmount),

View File

@@ -60,7 +60,7 @@ fn execute_note_action(
router_action = Some(RouterAction::route_to(Route::Timeline(kind.clone())));
timeline_res = timeline_cache.open(ndb, note_cache, txn, pool, &kind);
}
NoteAction::Note(note_id) => 'ex: {
NoteAction::Note { note_id, preview } => 'ex: {
let Ok(thread_selection) = ThreadSelection::from_note_id(ndb, note_cache, txn, note_id)
else {
tracing::error!("No thread selection for {}?", hex::encode(note_id.bytes()));

View File

@@ -184,7 +184,13 @@ fn show_notes(
}
fn strip_note_action(action: NoteAction) -> Option<NoteAction> {
if matches!(action, NoteAction::Note(_)) {
if matches!(
action,
NoteAction::Note {
note_id: _,
preview: false,
}
) {
return None;
}

View File

@@ -270,11 +270,17 @@ pub fn render_note_contents(
}
});
let preview_note_action = if let Some((id, _block_str)) = inline_note {
render_note_preview(ui, note_context, cur_acc, txn, id, note_key, options, jobs).action
} else {
None
};
let preview_note_action = inline_note.and_then(|(id, _)| {
render_note_preview(ui, note_context, cur_acc, txn, id, note_key, options, jobs)
.action
.map(|a| match a {
NoteAction::Note { note_id, .. } => NoteAction::Note {
note_id,
preview: true,
},
other => other,
})
});
let mut media_action = None;
if !supported_medias.is_empty() && !options.has_textmode() {

View File

@@ -609,7 +609,7 @@ impl<'a, 'd> NoteView<'a, 'd> {
}
note_action = note_hitbox_clicked(ui, hitbox_id, &response.response.rect, maybe_hitbox)
.then_some(NoteAction::Note(NoteId::new(*self.note.id())))
.then_some(NoteAction::note(NoteId::new(*self.note.id())))
.or(note_action);
NoteResponse::new(response.response)