πŸ“„ File detail

components/MessageResponse.tsx

🧩 .tsxπŸ“ 78 linesπŸ’Ύ 6,933 bytesπŸ“ text
← Back to All Files

🎯 Use case

This file lives under β€œcomponents/”, which covers shared React UI pieces. On the API surface it exposes MessageResponse β€” mainly types, interfaces, or factory objects. Dependencies touch React UI. It composes internal code from ink and design-system (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 * as React from 'react'; import { useContext } from 'react'; import { Box, NoSelect, Text } from '../ink.js'; import { Ratchet } from './design-system/Ratchet.js';

πŸ“€ Exports (heuristic)

  • MessageResponse

πŸ“š External import roots

Package roots from from "…" (relative paths omitted).

  • react

πŸ–₯️ Source preview

import { c as _c } from "react/compiler-runtime";
import * as React from 'react';
import { useContext } from 'react';
import { Box, NoSelect, Text } from '../ink.js';
import { Ratchet } from './design-system/Ratchet.js';
type Props = {
  children: React.ReactNode;
  height?: number;
};
export function MessageResponse(t0) {
  const $ = _c(8);
  const {
    children,
    height
  } = t0;
  const isMessageResponse = useContext(MessageResponseContext);
  if (isMessageResponse) {
    return children;
  }
  let t1;
  if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
    t1 = <NoSelect fromLeftEdge={true} flexShrink={0}><Text dimColor={true}>{"  "}⎿  </Text></NoSelect>;
    $[0] = t1;
  } else {
    t1 = $[0];
  }
  let t2;
  if ($[1] !== children) {
    t2 = <Box flexShrink={1} flexGrow={1}>{children}</Box>;
    $[1] = children;
    $[2] = t2;
  } else {
    t2 = $[2];
  }
  let t3;
  if ($[3] !== height || $[4] !== t2) {
    t3 = <MessageResponseProvider><Box flexDirection="row" height={height} overflowY="hidden">{t1}{t2}</Box></MessageResponseProvider>;
    $[3] = height;
    $[4] = t2;
    $[5] = t3;
  } else {
    t3 = $[5];
  }
  const content = t3;
  if (height !== undefined) {
    return content;
  }
  let t4;
  if ($[6] !== content) {
    t4 = <Ratchet lock="offscreen">{content}</Ratchet>;
    $[6] = content;
    $[7] = t4;
  } else {
    t4 = $[7];
  }
  return t4;
}

// This is a context that is used to determine if the message response
// is rendered as a descendant of another MessageResponse. We use it
// to avoid rendering nested ⎿ characters.
const MessageResponseContext = React.createContext(false);
function MessageResponseProvider(t0) {
  const $ = _c(2);
  const {
    children
  } = t0;
  let t1;
  if ($[0] !== children) {
    t1 = <MessageResponseContext.Provider value={true}>{children}</MessageResponseContext.Provider>;
    $[0] = children;
    $[1] = t1;
  } else {
    t1 = $[1];
  }
  return t1;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNvbnRleHQiLCJCb3giLCJOb1NlbGVjdCIsIlRleHQiLCJSYXRjaGV0IiwiUHJvcHMiLCJjaGlsZHJlbiIsIlJlYWN0Tm9kZSIsImhlaWdodCIsIk1lc3NhZ2VSZXNwb25zZSIsInQwIiwiJCIsIl9jIiwiaXNNZXNzYWdlUmVzcG9uc2UiLCJNZXNzYWdlUmVzcG9uc2VDb250ZXh0IiwidDEiLCJTeW1ib2wiLCJmb3IiLCJ0MiIsInQzIiwiY29udGVudCIsInVuZGVmaW5lZCIsInQ0IiwiY3JlYXRlQ29udGV4dCIsIk1lc3NhZ2VSZXNwb25zZVByb3ZpZGVyIl0sInNvdXJjZXMiOlsiTWVzc2FnZVJlc3BvbnNlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZUNvbnRleHQgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEJveCwgTm9TZWxlY3QsIFRleHQgfSBmcm9tICcuLi9pbmsuanMnXG5pbXBvcnQgeyBSYXRjaGV0IH0gZnJvbSAnLi9kZXNpZ24tc3lzdGVtL1JhdGNoZXQuanMnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbiAgaGVpZ2h0PzogbnVtYmVyXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBNZXNzYWdlUmVzcG9uc2UoeyBjaGlsZHJlbiwgaGVpZ2h0IH06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgaXNNZXNzYWdlUmVzcG9uc2UgPSB1c2VDb250ZXh0KE1lc3NhZ2VSZXNwb25zZUNvbnRleHQpXG4gIGlmIChpc01lc3NhZ2VSZXNwb25zZSkge1xuICAgIHJldHVybiBjaGlsZHJlblxuICB9XG4gIGNvbnN0IGNvbnRlbnQgPSAoXG4gICAgPE1lc3NhZ2VSZXNwb25zZVByb3ZpZGVyPlxuICAgICAgPEJveCBmbGV4RGlyZWN0aW9uPVwicm93XCIgaGVpZ2h0PXtoZWlnaHR9IG92ZXJmbG93WT1cImhpZGRlblwiPlxuICAgICAgICA8Tm9TZWxlY3QgZnJvbUxlZnRFZGdlIGZsZXhTaHJpbms9ezB9PlxuICAgICAgICAgIDxUZXh0IGRpbUNvbG9yPnsnICAnfeKOvyAmbmJzcDs8L1RleHQ+XG4gICAgICAgIDwvTm9TZWxlY3Q+XG4gICAgICAgIDxCb3ggZmxleFNocmluaz17MX0gZmxleEdyb3c9ezF9PlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgPC9Cb3g+XG4gICAgICA8L0JveD5cbiAgICA8L01lc3NhZ2VSZXNwb25zZVByb3ZpZGVyPlxuICApXG4gIGlmIChoZWlnaHQgIT09IHVuZGVmaW5lZCkge1xuICAgIHJldHVybiBjb250ZW50XG4gIH1cbiAgcmV0dXJuIDxSYXRjaGV0IGxvY2s9XCJvZmZzY3JlZW5cIj57Y29udGVudH08L1JhdGNoZXQ+XG59XG5cbi8vIFRoaXMgaXMgYSBjb250ZXh0IHRoYXQgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgdGhlIG1lc3NhZ2UgcmVzcG9uc2Vcbi8vIGlzIHJlbmRlcmVkIGFzIGEgZGVzY2VuZGFudCBvZiBhbm90aGVyIE1lc3NhZ2VSZXNwb25zZS4gV2UgdXNlIGl0XG4vLyB0byBhdm9pZCByZW5kZXJpbmcgbmVzdGVkIOKOvyBjaGFyYWN0ZXJzLlxuY29uc3QgTWVzc2FnZVJlc3BvbnNlQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQoZmFsc2UpXG5cbmZ1bmN0aW9uIE1lc3NhZ2VSZXNwb25zZVByb3ZpZGVyKHtcbiAgY2hpbGRyZW4sXG59OiB7XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn0pOiBSZWFjdC5SZWFjdE5vZGUge1xuICByZXR1cm4gKFxuICAgIDxNZXNzYWdlUmVzcG9uc2VDb250ZXh0LlByb3ZpZGVyIHZhbHVlPXt0cnVlfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L01lc3NhZ2VSZXNwb25zZUNvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sS0FBS0Es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