π File detail
components/messages/UserChannelMessage.tsx
π― Use case
This file lives under βcomponents/β, which covers shared React UI pieces. On the API surface it exposes UserChannelMessage β mainly types, interfaces, or factory objects. Dependencies touch React UI and @anthropic-ai. It composes internal code from constants, ink, and utils (relative imports).
Generated from folder role, exports, dependency roots, and inline comments β not hand-reviewed for every path.
π§ Inline summary
import { c as _c } from "react/compiler-runtime"; import type { TextBlockParam } from '@anthropic-ai/sdk/resources/index.mjs'; import * as React from 'react'; import { CHANNEL_ARROW } from '../../constants/figures.js'; import { CHANNEL_TAG } from '../../constants/xml.js';
π€ Exports (heuristic)
UserChannelMessage
π External import roots
Package roots from from "β¦" (relative paths omitted).
react@anthropic-ai
π₯οΈ Source preview
import { c as _c } from "react/compiler-runtime";
import type { TextBlockParam } from '@anthropic-ai/sdk/resources/index.mjs';
import * as React from 'react';
import { CHANNEL_ARROW } from '../../constants/figures.js';
import { CHANNEL_TAG } from '../../constants/xml.js';
import { Box, Text } from '../../ink.js';
import { truncateToWidth } from '../../utils/format.js';
type Props = {
addMargin: boolean;
param: TextBlockParam;
};
// <channel source="..." user="..." chat_id="...">content</channel>
// source is always first (wrapChannelMessage writes it), user is optional.
const CHANNEL_RE = new RegExp(`<${CHANNEL_TAG}\\s+source="([^"]+)"([^>]*)>\\n?([\\s\\S]*?)\\n?</${CHANNEL_TAG}>`);
const USER_ATTR_RE = /\buser="([^"]+)"/;
// Plugin-provided servers get names like plugin:slack-channel:slack via
// addPluginScopeToServers β show just the leaf. Matches the suffix-match
// logic in isServerInChannels.
function displayServerName(name: string): string {
const i = name.lastIndexOf(':');
return i === -1 ? name : name.slice(i + 1);
}
const TRUNCATE_AT = 60;
export function UserChannelMessage(t0) {
const $ = _c(29);
const {
addMargin,
param: t1
} = t0;
const {
text
} = t1;
let T0;
let T1;
let T2;
let t2;
let t3;
let t4;
let t5;
let t6;
let t7;
let truncated;
let user;
if ($[0] !== addMargin || $[1] !== text) {
t7 = Symbol.for("react.early_return_sentinel");
bb0: {
const m = CHANNEL_RE.exec(text);
if (!m) {
t7 = null;
break bb0;
}
const [, source, attrs, content] = m;
user = USER_ATTR_RE.exec(attrs ?? "")?.[1];
const body = (content ?? "").trim().replace(/\s+/g, " ");
truncated = truncateToWidth(body, TRUNCATE_AT);
T2 = Box;
t6 = addMargin ? 1 : 0;
T1 = Text;
if ($[13] === Symbol.for("react.memo_cache_sentinel")) {
t4 = <Text color="suggestion">{CHANNEL_ARROW}</Text>;
$[13] = t4;
} else {
t4 = $[13];
}
t5 = " ";
T0 = Text;
t2 = true;
t3 = displayServerName(source ?? "");
}
$[0] = addMargin;
$[1] = text;
$[2] = T0;
$[3] = T1;
$[4] = T2;
$[5] = t2;
$[6] = t3;
$[7] = t4;
$[8] = t5;
$[9] = t6;
$[10] = t7;
$[11] = truncated;
$[12] = user;
} else {
T0 = $[2];
T1 = $[3];
T2 = $[4];
t2 = $[5];
t3 = $[6];
t4 = $[7];
t5 = $[8];
t6 = $[9];
t7 = $[10];
truncated = $[11];
user = $[12];
}
if (t7 !== Symbol.for("react.early_return_sentinel")) {
return t7;
}
const t8 = user ? ` \u00b7 ${user}` : "";
let t9;
if ($[14] !== T0 || $[15] !== t2 || $[16] !== t3 || $[17] !== t8) {
t9 = <T0 dimColor={t2}>{t3}{t8}:</T0>;
$[14] = T0;
$[15] = t2;
$[16] = t3;
$[17] = t8;
$[18] = t9;
} else {
t9 = $[18];
}
let t10;
if ($[19] !== T1 || $[20] !== t4 || $[21] !== t5 || $[22] !== t9 || $[23] !== truncated) {
t10 = <T1>{t4}{t5}{t9}{" "}{truncated}</T1>;
$[19] = T1;
$[20] = t4;
$[21] = t5;
$[22] = t9;
$[23] = truncated;
$[24] = t10;
} else {
t10 = $[24];
}
let t11;
if ($[25] !== T2 || $[26] !== t10 || $[27] !== t6) {
t11 = <T2 marginTop={t6}>{t10}</T2>;
$[25] = T2;
$[26] = t10;
$[27] = t6;
$[28] = t11;
} else {
t11 = $[28];
}
return t11;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJUZXh0QmxvY2tQYXJhbSIsIlJlYWN0IiwiQ0hBTk5FTF9BUlJPVyIsIkNIQU5ORUxfVEFHIiwiQm94IiwiVGV4dCIsInRydW5jYXRlVG9XaWR0aCIsIlByb3BzIiwiYWRkTWFyZ2luIiwicGFyYW0iLCJDSEFOTkVMX1JFIiwiUmVnRXhwIiwiVVNFUl9BVFRSX1JFIiwiZGlzcGxheVNlcnZlck5hbWUiLCJuYW1lIiwiaSIsImxhc3RJbmRleE9mIiwic2xpY2UiLCJUUlVOQ0FURV9BVCIsIlVzZXJDaGFubmVsTWVzc2FnZSIsInQwIiwiJCIsIl9jIiwidDEiLCJ0ZXh0IiwiVDAiLCJUMSIsIlQyIiwidDIiLCJ0MyIsInQ0IiwidDUiLCJ0NiIsInQ3IiwidHJ1bmNhdGVkIiwidXNlciIsIlN5bWJvbCIsImZvciIsImJiMCIsIm0iLCJleGVjIiwic291cmNlIiwiYXR0cnMiLCJjb250ZW50IiwiYm9keSIsInRyaW0iLCJyZXBsYWNlIiwidDgiLCJ0OSIsInQxMCIsInQxMSJdLCJzb3VyY2VzIjpbIlVzZXJDaGFubmVsTWVzc2FnZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBUZXh0QmxvY2tQYXJhbSB9IGZyb20gJ0BhbnRocm9waWMtYWkvc2RrL3Jlc291cmNlcy9pbmRleC5tanMnXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENIQU5ORUxfQVJST1cgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZmlndXJlcy5qcydcbmltcG9ydCB7IENIQU5ORUxfVEFHIH0gZnJvbSAnLi4vLi4vY29uc3RhbnRzL3htbC5qcydcbmltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJy4uLy4uL2luay5qcydcbmltcG9ydCB7IHRydW5jYXRlVG9XaWR0aCB9IGZyb20gJy4uLy4uL3V0aWxzL2Zvcm1hdC5qcydcblxudHlwZSBQcm9wcyA9IHtcbiAgYWRkTWFyZ2luOiBib29sZWFuXG4gIHBhcmFtOiBUZXh0QmxvY2tQYXJhbVxufVxuXG4vLyA8Y2hhbm5lbCBzb3VyY2U9XCIuLi5cIiB1c2VyPVwiLi4uXCIgY2hhdF9pZD1cIi4uLlwiPmNvbnRlbnQ8L2NoYW5uZWw+XG4vLyBzb3VyY2UgaXMgYWx3YXlzIGZpcnN0ICh3cmFwQ2hhbm5lbE1lc3NhZ2Ugd3JpdGVzIGl0KSwgdXNlciBpcyBvcHRpb25hbC5cbmNvbnN0IENIQU5ORUxfUkUgPSBuZXcgUmVnRXhwKFxuICBgPCR7Q0hBTk5FTF9UQUd9XFxcXHMrc291cmNlPVwiKFteXCJdKylcIihbXj5dKik+XFxcXG4/KFtcXFxcc1xcXFxTXSo/KVxcXFxuPzwvJHtDSEFOTkVMX1RBR30+YCxcbilcbmNvbnN0IFVTRVJfQVRUUl9SRSA9IC9cXGJ1c2VyPVwiKFteXCJdKylcIi9cblxuLy8gUGx1Z2luLXByb3ZpZGVkIHNlcnZlcnMgZ2V0IG5hbWVzIGxpa2UgcGx1Z2luOnNsYWNrLWNoYW5uZWw6c2xhY2sgdmlhXG4vLyBhZGRQbHVnaW5TY29wZVRvU2VydmVycyDigJQgc2hvdyBqdXN0IHRoZSBsZWFmLiBNYXRjaGVzIHRoZSBzdWZmaXgtbWF0Y2hcbi8vIGxvZ2ljIGluIGlzU2VydmVySW5DaGFubmVscy5cbmZ1bmN0aW9uIGRpc3BsYXlTZXJ2ZXJOYW1lKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGkgPSBuYW1lLmxhc3RJbmRleE9mKCc6JylcbiAgcmV0dXJuIGkgPT09IC0xID8gbmFtZSA6IG5hbWUuc2xpY2UoaSArIDEpXG59XG5cbmNvbnN0IFRSVU5DQVRFX0FUID0gNjBcblxuZXhwb3J0IGZ1bmN0aW9uIFVzZXJDaGFubmVsTWVzc2FnZSh7XG4gIGFkZE1hcmdpbixcbiAgcGFyYW06IHsgdGV4dCB9LFxufTogUHJvcHMpOiBSZWFjdC5SZWFjdE5vZGUge1xuICBjb25zdCBtID0gQ0hBTk5FTF9SRS5leGVjKHRleHQpXG4gIGlmICghbSkgcmV0dXJuIG51bGxcbiAgY29uc3QgWywgc291cmNlLCBhdHRycywgY29udGVudF0gPSBtXG4gIGNvbnN0IHVzZXIgPSBVU0VSX0FUVFJfUkUuZXhlYyhhdHRycyA/PyAnJyk/LlsxXVxuICBjb25zdCBib2R5ID0gKGNvbnRlbnQgPz8gJycpLnRyaW0oKS5yZXBsYWNlKC9cXHMrL2csICcgJylcbiAgY29uc3QgdHJ1bmNhdGVkID0gdHJ1bmNhdGVUb1dpZHRoKGJvZHksIFRSVU5DQVRFX0FUKVxuICByZXR1cm4gKFxuICAgIDxCb3ggbWFyZ2luVG9wPXthZGRNYXJnaW4gPyAxIDogMH0+XG4gICAgICA8VGV4dD5cbiAgICAgICAgPFRleHQgY29sb3I9XCJzdWdnZXN0aW9uXCI+e0NIQU5ORUxfQVJST1d9PC9UZXh0PnsnICd9XG4gICAgICAgIDxUZXh0IGRpbUNvbG9yPlxuICAgICAgICAgIHtkaXNwbGF5U2VydmVyTmFtZShzb3VyY2UgPz8gJycpfVxuICAgICAgICAgIHt1c2VyID8gYCBcXHUwMGI3ICR7dXNlcn1gIDogJyd9OlxuICAgICAgICA8L1RleHQ+eycgJ31cbiAgICAgICAge3RydW5jYXRlZH1cbiAgICAgIDwvVGV4dD5cbiAgICA8L0JveD5cbiAgKVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsY0FBY0EsY0FBYyxRQUFRLHVDQUF1QztBQUMzRSxPQUFPLEtBQUtDLEtBQUssTUFBTSxPQUFPO0FBQzlCLFNBQVNDLGFBQWEsUUFBUSw0QkFBNEI7QUFDMUQsU0FBU0MsV0FBVyxRQUFRLHdCQUF3QjtBQUNwRCxTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxjQUFjO0FBQ3hDLFNBQVNDLGVBQWUsUUFBUSx1QkFBdUI7QUFFdkQsS0FBS0MsS0FBSyxHQUFHO0VBQ1hDLFNBQVMsRUFBRSxPQUFPO0VBQ2xCQyxLQUFLLEVBQUVULGNBQWM7QUFDdkIsQ0FBQzs7QUFFRDtBQUNBO0FBQ0EsTUFBTVUsVUFBVSxHQUFHLElBQUlDLE1BQU0sQ0FDM0IsSUFBSVIsV0FBVyxxREFBcURBLFdBQVcsR0FDakYsQ0FBQztBQUNELE1BQU1TLFlBQVksR0FBRyxrQkFBa0I7O0FBRXZDO0FBQ0E7QUFDQTtBQUNBLFNBQVNDLGlC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