@decentnetwork/beagle 0.1.15 → 0.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- window.__DK_UI_VERSION="0.1.15";
1
+ window.__DK_UI_VERSION="0.1.16";
2
2
  const ICON_PATHS = {
3
3
  // ---- tab bar (the four must feel like one set) ----
4
4
  users: '<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/>',
@@ -1582,7 +1582,7 @@ function dkGroupParse(text) {
1582
1582
  return null;
1583
1583
  return { sender: split.sender, senderId: null, body: split.body.trim(), ts, strong: !!ts };
1584
1584
  }
1585
- function DkGroupSender({ grp, T }) {
1585
+ function DkGroupSender({ grp, T, avatar }) {
1586
1586
  const [open, setOpen] = React.useState(false);
1587
1587
  const [busy, setBusy] = React.useState(false);
1588
1588
  const [done, setDone] = React.useState(null);
@@ -1591,18 +1591,25 @@ function DkGroupSender({ grp, T }) {
1591
1591
  setBusy(true);
1592
1592
  fetch("/api/add", { method: "POST", headers: { "content-type": "application/json" }, body: JSON.stringify({ address: grp.senderId }) }).then((r) => r.json()).then((r) => setDone(r.ok ? T && T.addSent || "request sent" : r.error || "failed")).catch((e) => setDone(String(e && e.message || e))).finally(() => setBusy(false));
1593
1593
  };
1594
- return /* @__PURE__ */ React.createElement("span", { style: { position: "relative", display: "inline-flex", alignItems: "center", gap: 5, margin: "0 3px 2px" } }, /* @__PURE__ */ React.createElement(
1594
+ return /* @__PURE__ */ React.createElement("span", { style: {
1595
+ position: "relative",
1596
+ display: "inline-flex",
1597
+ alignItems: "center",
1598
+ gap: 5,
1599
+ margin: avatar ? 0 : "0 3px 2px",
1600
+ alignSelf: avatar ? "flex-start" : void 0
1601
+ } }, /* @__PURE__ */ React.createElement(
1595
1602
  "button",
1596
1603
  {
1597
1604
  onClick: () => setOpen((v) => !v),
1605
+ title: grp.sender,
1598
1606
  style: { display: "inline-flex", alignItems: "center", gap: 5, background: "none", border: "none", padding: 0, cursor: "pointer" }
1599
1607
  },
1600
- /* @__PURE__ */ React.createElement(DkIdenticon, { seed, size: 16, radius: 4 }),
1601
- /* @__PURE__ */ React.createElement("span", { style: { fontFamily: "var(--mono)", fontSize: 10.5, color: "var(--faint)" } }, grp.sender)
1608
+ avatar ? /* @__PURE__ */ React.createElement(DkIdenticon, { seed, size: 24, radius: 6 }) : /* @__PURE__ */ React.createElement("span", { style: { fontFamily: "var(--mono)", fontSize: 10.5, color: "var(--faint)" } }, grp.sender)
1602
1609
  ), open && /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement("span", { onClick: () => setOpen(false), style: { position: "fixed", inset: 0, zIndex: 40 } }), /* @__PURE__ */ React.createElement("span", { style: {
1603
1610
  position: "absolute",
1604
1611
  left: 0,
1605
- top: 20,
1612
+ top: avatar ? 28 : 20,
1606
1613
  zIndex: 50,
1607
1614
  width: 240,
1608
1615
  padding: 12,
@@ -1843,6 +1850,7 @@ function Msg({ m, peer, T, onTheater, onDelete, onCancel, onRetry, onReveal, onC
1843
1850
  const mine = m.from === "me";
1844
1851
  const nativeMedia = !m.file ? dkNativeMediaFromText(m.text) : null;
1845
1852
  const grp = isGroup && m.dir !== "out" && !m.file && !nativeMedia ? dkGroupParse(m.text) : null;
1853
+ const grpSender = grp || (nativeMedia && nativeMedia.sender ? { sender: nativeMedia.sender, senderId: null } : null);
1846
1854
  const read = window.ChatComponents ? window.ChatComponents.readMessage((grp ? grp.body : m.text) || "") : { text: grp ? grp.body : m.text, form: null, interaction: null };
1847
1855
  const submitted = read.form && answered ? answered.get(read.form.custom_id) : null;
1848
1856
  const rtcFile = !mine && !m.file ? dkRtcFileFromText(peer.userId || peer.id, m.text) : null;
@@ -1875,7 +1883,7 @@ function Msg({ m, peer, T, onTheater, onDelete, onCancel, onRetry, onReveal, onC
1875
1883
  alignItems: "center",
1876
1884
  justifyContent: "center"
1877
1885
  } }, selected && /* @__PURE__ */ React.createElement(Icon, { name: "check", size: 12, stroke: 3, color: "#fff" })),
1878
- !mine && /* @__PURE__ */ React.createElement(DkAvatar, { peer, size: 24, radius: 6, dot: false }),
1886
+ !mine && (grpSender ? /* @__PURE__ */ React.createElement(DkGroupSender, { grp: grpSender, T, avatar: true }) : /* @__PURE__ */ React.createElement(DkAvatar, { peer, size: 24, radius: 6, dot: false })),
1879
1887
  /* @__PURE__ */ React.createElement("div", { style: { maxWidth: m.file && (m.file.media === "image" || m.file.media === "video") || rtcFile && (rtcFile.media === "image" || rtcFile.media === "video") ? "min(680px, 88%)" : "64%", display: "flex", flexDirection: "column", alignItems: mine ? "flex-end" : "flex-start" } }, callRec ? /* @__PURE__ */ React.createElement(
1880
1888
  "button",
1881
1889
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@decentnetwork/beagle",
3
- "version": "0.1.15",
3
+ "version": "0.1.17",
4
4
  "description": "Beagle — P2P chat, file transfer and calls for regular users, on the Decent Network. No admin privilege required.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",