forked from alemi/upub
fix(web): better addressing and mention on reply
This commit is contained in:
parent
ebb7d77cae
commit
a536655396
1 changed files with 17 additions and 11 deletions
|
@ -77,23 +77,29 @@ pub fn PostBox(advanced: WriteSignal<bool>) -> impl IntoView {
|
||||||
spawn_local(async move {
|
spawn_local(async move {
|
||||||
let summary = get_if_some(summary_ref);
|
let summary = get_if_some(summary_ref);
|
||||||
let content = content_ref.get().map(|x| x.value()).unwrap_or_default();
|
let content = content_ref.get().map(|x| x.value()).unwrap_or_default();
|
||||||
let (to, cc) = if get_checked(public_ref) {
|
let mut cc_vec = Vec::new();
|
||||||
(apb::Node::links(vec![apb::target::PUBLIC.to_string()]), apb::Node::links(vec![format!("{URL_BASE}/users/{}/followers", auth.username())]))
|
let mut to_vec = Vec::new();
|
||||||
} else if get_checked(followers_ref) {
|
if get_checked(followers_ref) {
|
||||||
(apb::Node::links(vec![format!("{URL_BASE}/users/{}/followers", auth.username())]), apb::Node::Empty)
|
cc_vec.push(format!("{URL_BASE}/users/{}/followers", auth.username()));
|
||||||
} else if get_checked(private_ref) {
|
}
|
||||||
(apb::Node::links(vec![]), apb::Node::Empty)
|
if get_checked(public_ref) {
|
||||||
} else {
|
cc_vec.push(apb::target::PUBLIC.to_string());
|
||||||
(apb::Node::Empty, apb::Node::Empty)
|
}
|
||||||
};
|
if let Some(r) = reply.reply_to.get() {
|
||||||
|
if let Some(au) = post_author(&r) {
|
||||||
|
if let Some(uid) = au.id() {
|
||||||
|
to_vec.push(uid.to_string());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
let payload = serde_json::Value::Object(serde_json::Map::default())
|
let payload = serde_json::Value::Object(serde_json::Map::default())
|
||||||
.set_object_type(Some(apb::ObjectType::Note))
|
.set_object_type(Some(apb::ObjectType::Note))
|
||||||
.set_summary(summary.as_deref())
|
.set_summary(summary.as_deref())
|
||||||
.set_content(Some(&content))
|
.set_content(Some(&content))
|
||||||
.set_context(apb::Node::maybe_link(reply.context.get()))
|
.set_context(apb::Node::maybe_link(reply.context.get()))
|
||||||
.set_in_reply_to(apb::Node::maybe_link(reply.reply_to.get()))
|
.set_in_reply_to(apb::Node::maybe_link(reply.reply_to.get()))
|
||||||
.set_to(to)
|
.set_to(apb::Node::links(to_vec))
|
||||||
.set_cc(cc);
|
.set_cc(apb::Node::links(cc_vec));
|
||||||
match Http::post(&auth.outbox(), &payload, auth).await {
|
match Http::post(&auth.outbox(), &payload, auth).await {
|
||||||
Err(e) => set_error.set(Some(e.to_string())),
|
Err(e) => set_error.set(Some(e.to_string())),
|
||||||
Ok(()) => {
|
Ok(()) => {
|
||||||
|
|
Loading…
Reference in a new issue