πŸ“„ File detail

components/ToolUseLoader.tsx

🧩 .tsxπŸ“ 42 linesπŸ’Ύ 4,843 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 ToolUseLoader β€” mainly types, interfaces, or factory objects. Dependencies touch React UI. It composes internal code from constants, hooks, and ink (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 React from 'react'; import { BLACK_CIRCLE } from '../constants/figures.js'; import { useBlink } from '../hooks/useBlink.js'; import { Box, Text } from '../ink.js';

πŸ“€ Exports (heuristic)

  • ToolUseLoader

πŸ“š External import roots

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

  • react

πŸ–₯️ Source preview

import { c as _c } from "react/compiler-runtime";
import React from 'react';
import { BLACK_CIRCLE } from '../constants/figures.js';
import { useBlink } from '../hooks/useBlink.js';
import { Box, Text } from '../ink.js';
type Props = {
  isError: boolean;
  isUnresolved: boolean;
  shouldAnimate: boolean;
};
export function ToolUseLoader(t0) {
  const $ = _c(7);
  const {
    isError,
    isUnresolved,
    shouldAnimate
  } = t0;
  const [ref, isBlinking] = useBlink(shouldAnimate);
  const color = isUnresolved ? undefined : isError ? "error" : "success";
  const t1 = !shouldAnimate || isBlinking || isError || !isUnresolved ? BLACK_CIRCLE : " ";
  let t2;
  if ($[0] !== color || $[1] !== isUnresolved || $[2] !== t1) {
    t2 = <Text color={color} dimColor={isUnresolved}>{t1}</Text>;
    $[0] = color;
    $[1] = isUnresolved;
    $[2] = t1;
    $[3] = t2;
  } else {
    t2 = $[3];
  }
  let t3;
  if ($[4] !== ref || $[5] !== t2) {
    t3 = <Box ref={ref} minWidth={2}>{t2}</Box>;
    $[4] = ref;
    $[5] = t2;
    $[6] = t3;
  } else {
    t3 = $[6];
  }
  return t3;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkJMQUNLX0NJUkNMRSIsInVzZUJsaW5rIiwiQm94IiwiVGV4dCIsIlByb3BzIiwiaXNFcnJvciIsImlzVW5yZXNvbHZlZCIsInNob3VsZEFuaW1hdGUiLCJUb29sVXNlTG9hZGVyIiwidDAiLCIkIiwiX2MiLCJyZWYiLCJpc0JsaW5raW5nIiwiY29sb3IiLCJ1bmRlZmluZWQiLCJ0MSIsInQyIiwidDMiXSwic291cmNlcyI6WyJUb29sVXNlTG9hZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBCTEFDS19DSVJDTEUgfSBmcm9tICcuLi9jb25zdGFudHMvZmlndXJlcy5qcydcbmltcG9ydCB7IHVzZUJsaW5rIH0gZnJvbSAnLi4vaG9va3MvdXNlQmxpbmsuanMnXG5pbXBvcnQgeyBCb3gsIFRleHQgfSBmcm9tICcuLi9pbmsuanMnXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGlzRXJyb3I6IGJvb2xlYW5cbiAgaXNVbnJlc29sdmVkOiBib29sZWFuXG4gIHNob3VsZEFuaW1hdGU6IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFRvb2xVc2VMb2FkZXIoe1xuICBpc0Vycm9yLFxuICBpc1VucmVzb2x2ZWQsXG4gIHNob3VsZEFuaW1hdGUsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IFtyZWYsIGlzQmxpbmtpbmddID0gdXNlQmxpbmsoc2hvdWxkQW5pbWF0ZSlcblxuICBjb25zdCBjb2xvciA9IGlzVW5yZXNvbHZlZCA/IHVuZGVmaW5lZCA6IGlzRXJyb3IgPyAnZXJyb3InIDogJ3N1Y2Nlc3MnXG5cbiAgLy8gV0FSTklORzogVGhlIGNvZGUgaGVyZSBhbmQgaW4gQXNzaXN0YW50VG9vbFVzZU1lc3NhZ2UgaXMgcGFydGljdWxhcmx5XG4gIC8vIHNlbnNpdGl2ZSB0byB3aGF0ICpzaG91bGQqIGp1c3QgYmUgdHJpdmlhbCByZWZhY3RvcmluZ3MuIEEgYDxkaW0+eDwvZGltPmBcbiAgLy8gZm9sbG93ZWQgKmltbWVkaWF0ZWx5KiBieSBgPGJvbGQ+eTwvYm9sZD5gIHRhZyBpbmNvcnJlY3RseSByZW5kZXJzIGB5YCBhc1xuICAvLyBkaW0hIFRoaXMgaXMgYmVjYXVzZSBgPC9kaW0+YCBhbmQgYDwvYm9sZD5gIGFyZSBib3RoIHJlc2V0IGJ5IFxceDFiWzIybVxuICAvLyBkdWUgdG8gaGlzdG9yaWNhbCByZWFzb25zLCBhbmQgY2hhbGsgY2FuJ3QgZGlzdGluZ3Vpc2ggYmV0d2VlbiB0aGVtLlxuICAvLyBUaGUgc3ltcHRvbSB5b3UnbGwgc2VlIGlmIHdlIGdldCB0aGlzIHdyb25nIGlzIHRoZSB0b29sIG5hbWUgYmxpbmtzIGFsb25nXG4gIC8vIHdpdGggdGhpcyBsb2FkaW5nIGluZGljYXRvciwgd2hpY2ggbG9va3MgcXVpdGUgYmFkLlxuICAvLyBodHRwczovL2dpdGh1Yi5jb20vY2hhbGsvY2hhbGsvaXNzdWVzLzI5MFxuICByZXR1cm4gKFxuICAgIDxCb3ggcmVmPXtyZWZ9IG1pbldpZHRoPXsyfT5cbiAgICAgIDxUZXh0IGNvbG9yPXtjb2xvcn0gZGltQ29sb3I9e2lzVW5yZXNvbHZlZH0+XG4gICAgICAgIHshc2hvdWxkQW5pbWF0ZSB8fCBpc0JsaW5raW5nIHx8IGlzRXJyb3IgfHwgIWlzVW5yZXNvbHZlZFxuICAgICAgICAgID8gQkxBQ0tfQ0lSQ0xFXG4gICAgICAgICAgOiAnICd9XG4gICAgICA8L1RleHQ+XG4gICAgPC9Cb3g+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU9BLEtBQUssTUFBTSxPQUFPO0FBQ3pCLFNBQVNDLFlBQVksUUFBUSx5QkFBeUI7QUFDdEQsU0FBU0MsUUFBUSxRQUFRLHNCQUFzQjtBQUMvQyxTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxXQUFXO0FBRXJDLEtBQUtDLEtBQUssR0FBRztFQUNYQyxPQUFPLEVBQUUsT0FBTztFQUNoQkMsWUFBWSxFQUFFLE9BQU87RUFDckJDLGFBQWEsRUFBRSxPQUFPO0FBQ3hCLENBQUM7QUFFRCxPQUFPLFNBQUFDLGNBQUFDLEVBQUE7RUFBQSxNQUFBQyxDQUFBLEdBQUFDLEVBQUE7RUFBdUI7SUFBQU4sT0FBQTtJQUFBQyxZQUFBO0lBQUFDO0VBQUEsSUFBQUUsRUFJdEI7RUFDTixPQUFBRyxHQUFBLEVBQUFDLFVBQUEsSUFBMEJaLFFBQVEsQ0FBQ00sYUFBYSxDQUFDO0VBRWpELE1BQUFPLEtBQUEsR0FBY1IsWUFBWSxHQUFaUyxTQUF3RCxHQUE3QlYsT0FBTyxHQUFQLE9BQTZCLEdBQTdCLFNBQTZCO0VBYS9ELE1BQUFXLEVBQUEsSUFBQ1QsYUFBMkIsSUFBNUJNLFVBQXVDLElBQXZDUixPQUF3RCxJQUF4RCxDQUE0Q0MsWUFFdEMsR0FGTk4sWUFFTSxHQUZOLEdBRU07RUFBQSxJQUFBaUIsRUFBQTtFQUFBLElBQUFQLENBQUEsUUFBQUksS0FBQSxJQUFBSixDQUFBLFFBQUFKLFlBQUEsSUFBQUksQ0FBQSxRQUFBTSxFQUFBO0lBSFRDLEVBQUEsSUFBQyxJQUFJLENBQVFILEtBQUssQ0FBTEEsTUFBSSxDQUFDLENBQVlSLFFBQVksQ0FBWkEsYUFBVyxDQUFDLENBQ3ZDLENBQUFVLEVBRUssQ0FDUixFQUpDLElBQUksQ0FJRTtJQUFBTixDQUFBLE1BQUFJLEtBQUE7SUFBQUosQ0FBQSxNQUFBSixZQUFBO0lBQUFJLENBQUEsTUFBQU0sRUFBQTtJQUFBTixDQUFBLE1BQUFPLEVBQUE7RUFBQTtJQUFBQSxFQUFBLEdBQUFQLENBQUE7RUFBQTtFQUFBLElBQUFRLEVBQUE7RUFBQSxJQUFBUixDQUFBLFFBQUFFLEdBQUEsSUFBQUYsQ0FBQSxRQUFBTyxFQUFBO0lBTFRDLEVBQUEsSUFBQyxHQUFHLENBQU1OLEdBQUcsQ0FBSEEsSUFBRSxDQUFDLENBQVksUUFBQyxDQUFELEdBQUMsQ0FDeEIsQ0FBQUssRUFJTSxDQUNSLEVBTkMsR0FBRyxDQU1FO0lBQUFQLENBQUEsTUFBQUUsR0FBQTtJQUFBRixDQUFBLE1BQUFPLEVBQUE7SUFBQVAsQ0FBQSxNQUFBUSxFQUFBO0VBQUE7SUFBQUEsRUFBQSxHQUFBUixDQUFBO0VBQUE7RUFBQSxPQU5OUSxFQU1NO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=