chore: Improve Request Screening (#101)
* open chat while screening * close panel on ignore * bypass screening * . * improve settings * refine modal * . * . * . * . * .
This commit is contained in:
@@ -1,6 +1,10 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use anyhow::{anyhow, Error};
|
||||
use global::constants::IMAGE_RESIZE_SERVICE;
|
||||
use gpui::SharedString;
|
||||
use gpui::{Image, ImageFormat, SharedString};
|
||||
use nostr_sdk::prelude::*;
|
||||
use qrcode_generator::QrCodeEcc;
|
||||
|
||||
const FALLBACK_IMG: &str = "https://image.nostr.build/c30703b48f511c293a9003be8100cdad37b8798b77a1dc3ec6eb8a20443d5dea.png";
|
||||
|
||||
@@ -45,6 +49,53 @@ impl DisplayProfile for Profile {
|
||||
}
|
||||
}
|
||||
|
||||
pub trait TextUtils {
|
||||
fn to_public_key(&self) -> Result<PublicKey, Error>;
|
||||
fn to_qr(&self) -> Option<Arc<Image>>;
|
||||
}
|
||||
|
||||
impl TextUtils for String {
|
||||
fn to_public_key(&self) -> Result<PublicKey, Error> {
|
||||
if self.starts_with("nprofile1") {
|
||||
Ok(Nip19Profile::from_bech32(self)?.public_key)
|
||||
} else if self.starts_with("npub1") {
|
||||
Ok(PublicKey::parse(self)?)
|
||||
} else {
|
||||
Err(anyhow!("Invalid public key"))
|
||||
}
|
||||
}
|
||||
|
||||
fn to_qr(&self) -> Option<Arc<Image>> {
|
||||
let Ok(bytes) = qrcode_generator::to_png_to_vec_from_str(self, QrCodeEcc::Medium, 256)
|
||||
else {
|
||||
return None;
|
||||
};
|
||||
|
||||
Some(Arc::new(Image::from_bytes(ImageFormat::Png, bytes)))
|
||||
}
|
||||
}
|
||||
|
||||
impl TextUtils for &str {
|
||||
fn to_public_key(&self) -> Result<PublicKey, Error> {
|
||||
if self.starts_with("nprofile1") {
|
||||
Ok(Nip19Profile::from_bech32(self)?.public_key)
|
||||
} else if self.starts_with("npub1") {
|
||||
Ok(PublicKey::parse(self)?)
|
||||
} else {
|
||||
Err(anyhow!("Invalid public key"))
|
||||
}
|
||||
}
|
||||
|
||||
fn to_qr(&self) -> Option<Arc<Image>> {
|
||||
let Ok(bytes) = qrcode_generator::to_png_to_vec_from_str(self, QrCodeEcc::Medium, 256)
|
||||
else {
|
||||
return None;
|
||||
};
|
||||
|
||||
Some(Arc::new(Image::from_bytes(ImageFormat::Png, bytes)))
|
||||
}
|
||||
}
|
||||
|
||||
pub fn shorten_pubkey(public_key: PublicKey, len: usize) -> SharedString {
|
||||
let Ok(pubkey) = public_key.to_bech32();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user