/ components / design-system / LoadingState.tsx
LoadingState.tsx
 1  import { c as _c } from "react/compiler-runtime";
 2  import React from 'react';
 3  import { Box, Text } from '../../ink.js';
 4  import { Spinner } from '../Spinner.js';
 5  type LoadingStateProps = {
 6    /**
 7     * The loading message to display next to the spinner.
 8     */
 9    message: string;
10  
11    /**
12     * Display the message in bold.
13     * @default false
14     */
15    bold?: boolean;
16  
17    /**
18     * Display the message in dimmed color.
19     * @default false
20     */
21    dimColor?: boolean;
22  
23    /**
24     * Optional subtitle displayed below the main message.
25     */
26    subtitle?: string;
27  };
28  
29  /**
30   * A spinner with loading message for async operations.
31   *
32   * @example
33   * // Basic loading
34   * <LoadingState message="Loading..." />
35   *
36   * @example
37   * // Bold loading message
38   * <LoadingState message="Loading sessions" bold />
39   *
40   * @example
41   * // With subtitle
42   * <LoadingState
43   *   message="Loading sessions"
44   *   bold
45   *   subtitle="Fetching your Claude Code sessions..."
46   * />
47   */
48  export function LoadingState(t0) {
49    const $ = _c(10);
50    const {
51      message,
52      bold: t1,
53      dimColor: t2,
54      subtitle
55    } = t0;
56    const bold = t1 === undefined ? false : t1;
57    const dimColor = t2 === undefined ? false : t2;
58    let t3;
59    if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
60      t3 = <Spinner />;
61      $[0] = t3;
62    } else {
63      t3 = $[0];
64    }
65    let t4;
66    if ($[1] !== bold || $[2] !== dimColor || $[3] !== message) {
67      t4 = <Box flexDirection="row">{t3}<Text bold={bold} dimColor={dimColor}>{" "}{message}</Text></Box>;
68      $[1] = bold;
69      $[2] = dimColor;
70      $[3] = message;
71      $[4] = t4;
72    } else {
73      t4 = $[4];
74    }
75    let t5;
76    if ($[5] !== subtitle) {
77      t5 = subtitle && <Text dimColor={true}>{subtitle}</Text>;
78      $[5] = subtitle;
79      $[6] = t5;
80    } else {
81      t5 = $[6];
82    }
83    let t6;
84    if ($[7] !== t4 || $[8] !== t5) {
85      t6 = <Box flexDirection="column">{t4}{t5}</Box>;
86      $[7] = t4;
87      $[8] = t5;
88      $[9] = t6;
89    } else {
90      t6 = $[9];
91    }
92    return t6;
93  }
94  //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkJveCIsIlRleHQiLCJTcGlubmVyIiwiTG9hZGluZ1N0YXRlUHJvcHMiLCJtZXNzYWdlIiwiYm9sZCIsImRpbUNvbG9yIiwic3VidGl0bGUiLCJMb2FkaW5nU3RhdGUiLCJ0MCIsIiQiLCJfYyIsInQxIiwidDIiLCJ1bmRlZmluZWQiLCJ0MyIsIlN5bWJvbCIsImZvciIsInQ0IiwidDUiLCJ0NiJdLCJzb3VyY2VzIjpbIkxvYWRpbmdTdGF0ZS50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgQm94LCBUZXh0IH0gZnJvbSAnLi4vLi4vaW5rLmpzJ1xuaW1wb3J0IHsgU3Bpbm5lciB9IGZyb20gJy4uL1NwaW5uZXIuanMnXG5cbnR5cGUgTG9hZGluZ1N0YXRlUHJvcHMgPSB7XG4gIC8qKlxuICAgKiBUaGUgbG9hZGluZyBtZXNzYWdlIHRvIGRpc3BsYXkgbmV4dCB0byB0aGUgc3Bpbm5lci5cbiAgICovXG4gIG1lc3NhZ2U6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IHRoZSBtZXNzYWdlIGluIGJvbGQuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBib2xkPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBEaXNwbGF5IHRoZSBtZXNzYWdlIGluIGRpbW1lZCBjb2xvci5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGRpbUNvbG9yPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBzdWJ0aXRsZSBkaXNwbGF5ZWQgYmVsb3cgdGhlIG1haW4gbWVzc2FnZS5cbiAgICovXG4gIHN1YnRpdGxlPzogc3RyaW5nXG59XG5cbi8qKlxuICogQSBzcGlubmVyIHdpdGggbG9hZGluZyBtZXNzYWdlIGZvciBhc3luYyBvcGVyYXRpb25zLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBCYXNpYyBsb2FkaW5nXG4gKiA8TG9hZGluZ1N0YXRlIG1lc3NhZ2U9XCJMb2FkaW5nLi4uXCIgLz5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gQm9sZCBsb2FkaW5nIG1lc3NhZ2VcbiAqIDxMb2FkaW5nU3RhdGUgbWVzc2FnZT1cIkxvYWRpbmcgc2Vzc2lvbnNcIiBib2xkIC8+XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdpdGggc3VidGl0bGVcbiAqIDxMb2FkaW5nU3RhdGVcbiAqICAgbWVzc2FnZT1cIkxvYWRpbmcgc2Vzc2lvbnNcIlxuICogICBib2xkXG4gKiAgIHN1YnRpdGxlPVwiRmV0Y2hpbmcgeW91ciBDbGF1ZGUgQ29kZSBzZXNzaW9ucy4uLlwiXG4gKiAvPlxuICovXG5leHBvcnQgZnVuY3Rpb24gTG9hZGluZ1N0YXRlKHtcbiAgbWVzc2FnZSxcbiAgYm9sZCA9IGZhbHNlLFxuICBkaW1Db2xvciA9IGZhbHNlLFxuICBzdWJ0aXRsZSxcbn06IExvYWRpbmdTdGF0ZVByb3BzKTogUmVhY3QuUmVhY3ROb2RlIHtcbiAgcmV0dXJuIChcbiAgICA8Qm94IGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIj5cbiAgICAgIDxCb3ggZmxleERpcmVjdGlvbj1cInJvd1wiPlxuICAgICAgICA8U3Bpbm5lciAvPlxuICAgICAgICA8VGV4dCBib2xkPXtib2xkfSBkaW1Db2xvcj17ZGltQ29sb3J9PlxuICAgICAgICAgIHsnICd9XG4gICAgICAgICAge21lc3NhZ2V9XG4gICAgICAgIDwvVGV4dD5cbiAgICAgIDwvQm94PlxuICAgICAge3N1YnRpdGxlICYmIDxUZXh0IGRpbUNvbG9yPntzdWJ0aXRsZX08L1RleHQ+fVxuICAgIDwvQm94PlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPQSxLQUFLLE1BQU0sT0FBTztBQUN6QixTQUFTQyxHQUFHLEVBQUVDLElBQUksUUFBUSxjQUFjO0FBQ3hDLFNBQVNDLE9BQU8sUUFBUSxlQUFlO0FBRXZDLEtBQUtDLGlCQUFpQixHQUFHO0VBQ3ZCO0FBQ0Y7QUFDQTtFQUNFQyxPQUFPLEVBQUUsTUFBTTs7RUFFZjtBQUNGO0FB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