π File detail
components/PrBadge.tsx
π§© .tsxπ 97 linesπΎ 7,703 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 PrBadge β mainly types, interfaces, or factory objects. Dependencies touch React UI. It composes internal code from 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 React from 'react'; import { Link, Text } from '../ink.js'; import type { PrReviewState } from '../utils/ghPrStatus.js'; type Props = {
π€ Exports (heuristic)
PrBadge
π 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 { Link, Text } from '../ink.js';
import type { PrReviewState } from '../utils/ghPrStatus.js';
type Props = {
number: number;
url: string;
reviewState?: PrReviewState;
bold?: boolean;
};
export function PrBadge(t0) {
const $ = _c(21);
const {
number,
url,
reviewState,
bold
} = t0;
let t1;
if ($[0] !== reviewState) {
t1 = getPrStatusColor(reviewState);
$[0] = reviewState;
$[1] = t1;
} else {
t1 = $[1];
}
const statusColor = t1;
const t2 = !statusColor && !bold;
let t3;
if ($[2] !== bold || $[3] !== number || $[4] !== statusColor || $[5] !== t2) {
t3 = <Text color={statusColor} dimColor={t2} bold={bold}>#{number}</Text>;
$[2] = bold;
$[3] = number;
$[4] = statusColor;
$[5] = t2;
$[6] = t3;
} else {
t3 = $[6];
}
const label = t3;
const t4 = !bold;
let t5;
if ($[7] !== t4) {
t5 = <Text dimColor={t4}>PR</Text>;
$[7] = t4;
$[8] = t5;
} else {
t5 = $[8];
}
const t6 = !statusColor && !bold;
let t7;
if ($[9] !== bold || $[10] !== number || $[11] !== statusColor || $[12] !== t6) {
t7 = <Text color={statusColor} dimColor={t6} underline={true} bold={bold}>#{number}</Text>;
$[9] = bold;
$[10] = number;
$[11] = statusColor;
$[12] = t6;
$[13] = t7;
} else {
t7 = $[13];
}
let t8;
if ($[14] !== label || $[15] !== t7 || $[16] !== url) {
t8 = <Link url={url} fallback={label}>{t7}</Link>;
$[14] = label;
$[15] = t7;
$[16] = url;
$[17] = t8;
} else {
t8 = $[17];
}
let t9;
if ($[18] !== t5 || $[19] !== t8) {
t9 = <Text>{t5}{" "}{t8}</Text>;
$[18] = t5;
$[19] = t8;
$[20] = t9;
} else {
t9 = $[20];
}
return t9;
}
function getPrStatusColor(state?: PrReviewState): 'success' | 'error' | 'warning' | 'merged' | undefined {
switch (state) {
case 'approved':
return 'success';
case 'changes_requested':
return 'error';
case 'pending':
return 'warning';
case 'merged':
return 'merged';
default:
return undefined;
}
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkxpbmsiLCJUZXh0IiwiUHJSZXZpZXdTdGF0ZSIsIlByb3BzIiwibnVtYmVyIiwidXJsIiwicmV2aWV3U3RhdGUiLCJib2xkIiwiUHJCYWRnZSIsInQwIiwiJCIsIl9jIiwidDEiLCJnZXRQclN0YXR1c0NvbG9yIiwic3RhdHVzQ29sb3IiLCJ0MiIsInQzIiwibGFiZWwiLCJ0NCIsInQ1IiwidDYiLCJ0NyIsInQ4IiwidDkiLCJzdGF0ZSIsInVuZGVmaW5lZCJdLCJzb3VyY2VzIjpbIlByQmFkZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IExpbmssIFRleHQgfSBmcm9tICcuLi9pbmsuanMnXG5pbXBvcnQgdHlwZSB7IFByUmV2aWV3U3RhdGUgfSBmcm9tICcuLi91dGlscy9naFByU3RhdHVzLmpzJ1xuXG50eXBlIFByb3BzID0ge1xuICBudW1iZXI6IG51bWJlclxuICB1cmw6IHN0cmluZ1xuICByZXZpZXdTdGF0ZT86IFByUmV2aWV3U3RhdGVcbiAgYm9sZD86IGJvb2xlYW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFByQmFkZ2Uoe1xuICBudW1iZXIsXG4gIHVybCxcbiAgcmV2aWV3U3RhdGUsXG4gIGJvbGQsXG59OiBQcm9wcyk6IFJlYWN0LlJlYWN0Tm9kZSB7XG4gIGNvbnN0IHN0YXR1c0NvbG9yID0gZ2V0UHJTdGF0dXNDb2xvcihyZXZpZXdTdGF0ZSlcbiAgY29uc3QgbGFiZWwgPSAoXG4gICAgPFRleHQgY29sb3I9e3N0YXR1c0NvbG9yfSBkaW1Db2xvcj17IXN0YXR1c0NvbG9yICYmICFib2xkfSBib2xkPXtib2xkfT5cbiAgICAgICN7bnVtYmVyfVxuICAgIDwvVGV4dD5cbiAgKVxuICByZXR1cm4gKFxuICAgIDxUZXh0PlxuICAgICAgPFRleHQgZGltQ29sb3I9eyFib2xkfT5QUjwvVGV4dD57JyAnfVxuICAgICAgPExpbmsgdXJsPXt1cmx9IGZhbGxiYWNrPXtsYWJlbH0+XG4gICAgICAgIDxUZXh0XG4gICAgICAgICAgY29sb3I9e3N0YXR1c0NvbG9yfVxuICAgICAgICAgIGRpbUNvbG9yPXshc3RhdHVzQ29sb3IgJiYgIWJvbGR9XG4gICAgICAgICAgdW5kZXJsaW5lXG4gICAgICAgICAgYm9sZD17Ym9sZH1cbiAgICAgICAgPlxuICAgICAgICAgICN7bnVtYmVyfVxuICAgICAgICA8L1RleHQ+XG4gICAgICA8L0xpbms+XG4gICAgPC9UZXh0PlxuICApXG59XG5cbmZ1bmN0aW9uIGdldFByU3RhdHVzQ29sb3IoXG4gIHN0YXRlPzogUHJSZXZpZXdTdGF0ZSxcbik6ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnd2FybmluZycgfCAnbWVyZ2VkJyB8IHVuZGVmaW5lZCB7XG4gIHN3aXRjaCAoc3RhdGUpIHtcbiAgICBjYXNlICdhcHByb3ZlZCc6XG4gICAgICByZXR1cm4gJ3N1Y2Nlc3MnXG4gICAgY2FzZSAnY2hhbmdlc19yZXF1ZXN0ZWQnOlxuICAgICAgcmV0dXJuICdlcnJvcidcbiAgICBjYXNlICdwZW5kaW5nJzpcbiAgICAgIHJldHVybiAnd2FybmluZydcbiAgICBjYXNlICdtZXJnZWQnOlxuICAgICAgcmV0dXJuICdtZXJnZWQnXG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiO0FBQUEsT0FBT0EsS0FBSyxNQUFNLE9BQU87QUFDekIsU0FBU0MsSUFBSSxFQUFFQyxJQUFJLFFBQVEsV0FBVztBQUN0QyxjQUFjQyxhQUFhLFFBQVEsd0JBQXdCO0FBRTNELEtBQUtDLEtBQUssR0FBRztFQUNYQyxNQUFNLEVBQUUsTUFBTTtFQUNkQyxHQUFHLEVBQUUsTUFBTTtFQUNYQyxXQUFXLENBQUMsRUFBRUosYUFBYTtFQUMzQkssSUFBSSxDQUFDLEVBQUUsT0FBTztBQUNoQixDQUFDO0FBRUQsT0FBTyxTQUFBQyxRQUFBQyxFQUFBO0VBQUEsTUFBQUMsQ0FBQSxHQUFBQyxFQUFBO0VBQWlCO0lBQUFQ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