πŸ“„ File detail

components/FileEditToolUseRejectedMessage.tsx

🧩 .tsxπŸ“ 170 linesπŸ’Ύ 15,126 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 FileEditToolUseRejectedMessage β€” mainly types, interfaces, or factory objects. Dependencies touch React UI, text diffing, Node path helpers, and src. It composes internal code from ink, HighlightedCode, MessageResponse, and StructuredDiffList (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 { StructuredPatchHunk } from 'diff'; import { relative } from 'path'; import * as React from 'react'; import { useTerminalSize } from 'src/hooks/useTerminalSize.js';

πŸ“€ Exports (heuristic)

  • FileEditToolUseRejectedMessage

πŸ“š External import roots

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

  • react
  • diff
  • path
  • src

πŸ–₯️ Source preview

import { c as _c } from "react/compiler-runtime";
import type { StructuredPatchHunk } from 'diff';
import { relative } from 'path';
import * as React from 'react';
import { useTerminalSize } from 'src/hooks/useTerminalSize.js';
import { getCwd } from 'src/utils/cwd.js';
import { Box, Text } from '../ink.js';
import { HighlightedCode } from './HighlightedCode.js';
import { MessageResponse } from './MessageResponse.js';
import { StructuredDiffList } from './StructuredDiffList.js';
const MAX_LINES_TO_RENDER = 10;
type Props = {
  file_path: string;
  operation: 'write' | 'update';
  // For updates - show diff
  patch?: StructuredPatchHunk[];
  firstLine: string | null;
  fileContent?: string;
  // For new file creation - show content preview
  content?: string;
  style?: 'condensed';
  verbose: boolean;
};
export function FileEditToolUseRejectedMessage(t0) {
  const $ = _c(38);
  const {
    file_path,
    operation,
    patch,
    firstLine,
    fileContent,
    content,
    style,
    verbose
  } = t0;
  const {
    columns
  } = useTerminalSize();
  let t1;
  if ($[0] !== operation) {
    t1 = <Text color="subtle">User rejected {operation} to </Text>;
    $[0] = operation;
    $[1] = t1;
  } else {
    t1 = $[1];
  }
  let t2;
  if ($[2] !== file_path || $[3] !== verbose) {
    t2 = verbose ? file_path : relative(getCwd(), file_path);
    $[2] = file_path;
    $[3] = verbose;
    $[4] = t2;
  } else {
    t2 = $[4];
  }
  let t3;
  if ($[5] !== t2) {
    t3 = <Text bold={true} color="subtle">{t2}</Text>;
    $[5] = t2;
    $[6] = t3;
  } else {
    t3 = $[6];
  }
  let t4;
  if ($[7] !== t1 || $[8] !== t3) {
    t4 = <Box flexDirection="row">{t1}{t3}</Box>;
    $[7] = t1;
    $[8] = t3;
    $[9] = t4;
  } else {
    t4 = $[9];
  }
  const text = t4;
  if (style === "condensed" && !verbose) {
    let t5;
    if ($[10] !== text) {
      t5 = <MessageResponse>{text}</MessageResponse>;
      $[10] = text;
      $[11] = t5;
    } else {
      t5 = $[11];
    }
    return t5;
  }
  if (operation === "write" && content !== undefined) {
    let plusLines;
    let t5;
    if ($[12] !== content || $[13] !== verbose) {
      const lines = content.split("\n");
      const numLines = lines.length;
      plusLines = numLines - MAX_LINES_TO_RENDER;
      t5 = verbose ? content : lines.slice(0, MAX_LINES_TO_RENDER).join("\n");
      $[12] = content;
      $[13] = verbose;
      $[14] = plusLines;
      $[15] = t5;
    } else {
      plusLines = $[14];
      t5 = $[15];
    }
    const truncatedContent = t5;
    const t6 = truncatedContent || "(No content)";
    const t7 = columns - 12;
    let t8;
    if ($[16] !== file_path || $[17] !== t6 || $[18] !== t7) {
      t8 = <HighlightedCode code={t6} filePath={file_path} width={t7} dim={true} />;
      $[16] = file_path;
      $[17] = t6;
      $[18] = t7;
      $[19] = t8;
    } else {
      t8 = $[19];
    }
    let t9;
    if ($[20] !== plusLines || $[21] !== verbose) {
      t9 = !verbose && plusLines > 0 && <Text dimColor={true}>… +{plusLines} lines</Text>;
      $[20] = plusLines;
      $[21] = verbose;
      $[22] = t9;
    } else {
      t9 = $[22];
    }
    let t10;
    if ($[23] !== t8 || $[24] !== t9 || $[25] !== text) {
      t10 = <MessageResponse><Box flexDirection="column">{text}{t8}{t9}</Box></MessageResponse>;
      $[23] = t8;
      $[24] = t9;
      $[25] = text;
      $[26] = t10;
    } else {
      t10 = $[26];
    }
    return t10;
  }
  if (!patch || patch.length === 0) {
    let t5;
    if ($[27] !== text) {
      t5 = <MessageResponse>{text}</MessageResponse>;
      $[27] = text;
      $[28] = t5;
    } else {
      t5 = $[28];
    }
    return t5;
  }
  const t5 = columns - 12;
  let t6;
  if ($[29] !== fileContent || $[30] !== file_path || $[31] !== firstLine || $[32] !== patch || $[33] !== t5) {
    t6 = <StructuredDiffList hunks={patch} dim={true} width={t5} filePath={file_path} firstLine={firstLine} fileContent={fileContent} />;
    $[29] = fileContent;
    $[30] = file_path;
    $[31] = firstLine;
    $[32] = patch;
    $[33] = t5;
    $[34] = t6;
  } else {
    t6 = $[34];
  }
  let t7;
  if ($[35] !== t6 || $[36] !== text) {
    t7 = <MessageResponse><Box flexDirection="column">{text}{t6}</Box></MessageResponse>;
    $[35] = t6;
    $[36] = text;
    $[37] = t7;
  } else {
    t7 = $[37];
  }
  return t7;
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdHJ1Y3R1cmVkUGF0Y2hIdW5rIiwicmVsYXRpdmUiLCJSZWFjdCIsInVzZVRlcm1pbmFsU2l6ZSIsImdldEN3ZCIsIkJveCIsIlRleHQiLCJIaWdobGlnaHRlZENvZGUiLCJNZXNzYWdlUmVzcG9uc2UiLCJTdHJ1Y3R1cmVkRGlmZkxpc3QiLCJNQVhfTElORVNfVE9fUkVOREVSIiwiUHJvcHMiLCJmaWxlX3BhdGgiLCJvcGVyYXRpb24iLCJwYXRjaCIsImZpcnN0TGluZSIsImZpbGVDb250ZW50IiwiY29udGVudCIsInN0eWxlIiwidmVyYm9zZSIsIkZpbGVFZGl0VG9vbFVzZVJlamVjdGVkTWVzc2FnZSIsInQwIiwiJCIsIl9jIiwiY29sdW1ucyIsInQxIiwidDIiLCJ0MyIsInQ0IiwidGV4dCIsInQ1IiwidW5kZWZpbmVkIiwicGx1c0xpbmVzIiwibGluZXMiLCJzcGxpdCIsIm51bUxpbmVzIiwibGVuZ3RoIiwic2xpY2UiLCJqb2luIiwidHJ1bmNhdGVkQ29udGVudCIsInQ2IiwidDciLCJ0OCIsInQ5IiwidDEwIl0sInNvdXJjZXMiOlsiRmlsZUVkaXRUb29sVXNlUmVqZWN0ZWRNZXNzYWdlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFN0cnVjdHVyZWRQYXRjaEh1bmsgfSBmcm9tICdkaWZmJ1xuaW1wb3J0IHsgcmVsYXRpdmUgfSBmcm9tICdwYXRoJ1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VUZXJtaW5hbFNpemUgfSBmcm9tICdzcmMvaG9va3MvdXNlVGVybWluYWxTaXplLmpzJ1xuaW1wb3J0IHsgZ2V0Q3dkIH0gZnJvbSAnc3JjL3V0aWxzL2N3ZC5qcydcbmltcG9ydCB7IEJveCwgVGV4dCB9IGZyb20gJy4uL2luay5qcydcbmltcG9ydCB7IEhpZ2hsaWdodGVkQ29kZSB9IGZyb20gJy4vSGlnaGxpZ2h0ZWRDb2RlLmpzJ1xuaW1wb3J0IHsgTWVzc2FnZVJlc3BvbnNlIH0gZnJvbSAnLi9NZXNzYWdlUmVzcG9uc2UuanMnXG5pbXBvcnQgeyBTdHJ1Y3R1cmVkRGlmZkxpc3QgfSBmcm9tICcuL1N0cnVjdHVyZWREaWZmTGlzdC5qcydcblxuY29uc3QgTUFYX0xJTkVTX1RPX1JFTkRFUiA9IDEwXG5cbnR5cGUgUHJvcHMgPSB7XG4gIGZpbGVfcGF0aDogc3RyaW5nXG4gIG9wZXJhdGlvbjogJ3dyaXRlJyB8ICd1cGRhdGUnXG4gIC8vIEZvciB1cGRhdGVzIC0gc2hvdyBkaWZmXG4gIHBhdGNoPzogU3RydWN0dXJlZFBhdGNoSHVua1tdXG4gIGZpcnN0TGluZTogc3RyaW5nIHwgbnVsbFxuICBmaWxlQ29udGVudD86IHN0cmluZ1xuICAvLyBGb3IgbmV3IGZpbGUgY3JlYXRpb24gLSBzaG93IGNvbnRlbnQgcHJldmlld1xuICBjb250ZW50Pzogc3RyaW5nXG4gIHN0eWxlPzogJ2NvbmRlbnNlZCdcbiAgdmVyYm9zZTogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gRmlsZUVkaXRUb29sVXNlUmVqZWN0ZWRNZXNzYWdlKHtcbiAgZmlsZV9wYXRoLFxuICBvcGVyYXRpb24sXG4gIHBhdGNoLFxuICBmaXJzdExpbmUsXG4gIGZpbGVDb250ZW50LFxuICBjb250ZW50LFxuICBzdHlsZSxcbiAgdmVyYm9zZSxcbn06IFByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgY29uc3QgeyBjb2x1bW5zIH0gPSB1c2VUZXJtaW5hbFNpemUoKVxuICBjb25zdCB0ZXh0ID0gKFxuICAgIDxCb3ggZmxleERpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgPFRleHQgY29sb3I9XCJzdWJ0bGVcIj5Vc2VyIHJlamVjdGVkIHtvcGVyYXRpb259IHRvIDwvVGV4dD5cbiAgICAgIDxUZXh0IGJvbGQgY29sb3I9XCJzdWJ0bGVcIj5cbiAgICAgICAge3ZlcmJvc2UgPyBmaWxlX3BhdGggOiByZWxhdGl2ZShnZXRDd2QoKSwgZmlsZV9wYXRoKX1cbiAgICAgIDwvVGV4dD5cbiAgICA8L0JveD5cbiAgKVxuXG4gIC8vIEZvciBjb25kZW5zZWQgc3R5bGUsIGp1c3Qgc2hvdyB0aGUgdGV4dFxuICBpZiAoc3R5bGUgPT09ICdjb25kZW5zZWQnICYmICF2ZXJib3NlKSB7XG4gICAgcmV0dXJuIDxNZXNzYWdlUmVzcG9uc2U+e3RleHR9PC9NZXNzYWdlUmVzcG9uc2U+XG4gIH1cblxuICAvLyBGb3IgbmV3IGZpbGUgY3JlYXRpb24sIHNob3cgY29udGVudCBwcmV2aWV3IChkaW1tZWQpXG4gIGlmIChvcGVyYXRpb24gPT09ICd3cml0ZScgJiYgY29udGVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY29uc3QgbGluZXMgPSBjb250ZW50LnNwbGl0KCdcXG4nKVxuICAgIGNvbnN0IG51bUxpbmVzID0gbGluZXMubGVuZ3RoXG4gICAgY29uc3QgcGx1c0xpbmVzID0gbnVtTGluZXMgLSBNQVhfTElORVNfVE9fUkVOREVSXG4gICAgY29uc3QgdHJ1bmNhdGVkQ29udGVudCA9IHZlcmJvc2VcbiAgICAgID8gY29udGVudFxuICAgICAgOiBsaW5lcy5zbGljZSgwLCBNQVhfTElORVNfVE9fUkVOREVSKS5qb2luKCdcXG4nKVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxNZXNzYWdlUmVzcG9uc2U+XG4gICAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICAgIHt0ZXh0fVxuICAgICAgICAgIDxIaWdobGlnaHRlZENvZGVcbiAgICAgICAgICAgIGNvZGU9e3RydW5jYXRlZENvbnRlbnQgfHwgJyhObyBjb250ZW50KSd9XG4gICAgICAgICAgICBmaWxlUGF0aD17ZmlsZV9wYXRofVxuICAgICAgICAgICAgd2lkdGg9e2NvbHVtbnMgLSAxMn1cbiAgICAgICAgICAgIGRpbVxuICAgICAgICAgIC8+XG4gICAgICAgICAgeyF2ZXJib3NlICYmIHBsdXNMaW5lcyA+IDAgJiYgKFxuICAgICAgICAgICAgPFRleHQgZGltQ29sb3I+4oCmICt7cGx1c0xpbmVzfSBsaW5lczwvVGV4dD5cbiAgICAgICAgICApfVxuICAgICAgICA8L0JveD5cbiAgICAgIDwvTWVzc2FnZVJlc3BvbnNlPlxuICAgIClcbiAgfVxuXG4gIC8vIEZvciB1cGRhdGVzLCBzaG93IGRpZmZcbiAgaWYgKCFwYXRjaCB8fCBwYXRjaC5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gPE1lc3NhZ2VSZXNwb25zZT57dGV4dH08L01lc3NhZ2VSZXNwb25zZT5cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPE1lc3NhZ2VSZXNwb25zZT5cbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiPlxuICAgICAgICB7dGV4dH1cbiAgICAgICAgPFN0cnVjdHVyZWREaWZmTGlzdFxuICAgICAgICAgIGh1bmtzPXtwYXRjaH1cbiAgICAgICAgICBkaW1cbiAgICAgICAgICB3aWR0aD17Y29sdW1ucyAtIDEyfVxuICAgICAgICAgIGZpbGVQYXRoPXtmaWxlX3BhdGh9XG4gICAgICAgICAgZmlyc3RMaW5lPXtmaXJzdExpbmV9XG4gICAgICAgICAgZmlsZUNvbnRlbnQ9e2ZpbGVDb250ZW50fVxuICAgICAgICAvPlxuICAgICAgPC9Cb3g+XG4gICAgPC9NZXNzYWdlUmVzcG9uc2U+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6IjtBQUFBLGNBQWNBLG1CQUFtQixRQUFRLE1BQU07QUFDL0MsU0FBU0MsUUFBUSxRQUFRLE1BQU07QUFDL0IsT0FBTyxLQUFLQyxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxlQUFlLFFBQVEsOEJBQThCO0FBQzlELFNBQVNDLE1BQU0sUUFBUSxrQkFBa0I7QUFDekMsU0FBU0MsR0FBRyxFQUFFQyxJQUFJLFFBQVEsV0FBVztBQUNyQyxTQUFTQyxlQUFlLFFBQVEsc0JBQXNCO0FBQ3RELFNBQVNDLGVBQWUsUUFBUSxzQkFBc0I7QUFDdEQsU0FBU0Msa0JBQWtCLFFBQVEseUJBQXlCO0FBRTVELE1BQU1DLG1CQUFtQixHQUFHLEVBQUU7QUFFOUIsS0FBS0MsS0FBSyxHQUFHO0VBQ1hDLFNBQVMsRUFBRSxNQUFN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