MCPcopy
hub / github.com/codeaashu/claude-code / ResumeTask

Function ResumeTask

src/components/ResumeTask.tsx:25–222  ·  view source on GitHub ↗
({
  onSelect,
  onCancel,
  isEmbedded = false
}: Props)

Source from the content-addressed store, hash-verified

23const UPDATED_STRING = 'Updated';
24const SPACE_BETWEEN_TABLE_COLUMNS = ' ';
25export function ResumeTask({
26 onSelect,
27 onCancel,
28 isEmbedded = false
29}: Props): React.ReactNode {
30 const {
31 rows
32 } = useTerminalSize();
33 const [sessions, setSessions] = useState<CodeSession[]>([]);
34 const [currentRepo, setCurrentRepo] = useState<string | null>(null);
35 const [loading, setLoading] = useState(true);
36 const [loadErrorType, setLoadErrorType] = useState<LoadErrorType | null>(null);
37 const [retrying, setRetrying] = useState(false);
38 const [hasCompletedTeleportErrorFlow, setHasCompletedTeleportErrorFlow] = useState(false);
39
40 // Track focused index for scroll position display in title
41 const [focusedIndex, setFocusedIndex] = useState(1);
42 const escKey = useShortcutDisplay('confirm:no', 'Confirmation', 'Esc');
43 const loadSessions = useCallback(async () => {
44 try {
45 setLoading(true);
46 setLoadErrorType(null);
47
48 // Detect current repository
49 const detectedRepo = await detectCurrentRepository();
50 setCurrentRepo(detectedRepo);
51 logForDebugging(`Current repository: ${detectedRepo || 'not detected'}`);
52 const codeSessions = await fetchCodeSessionsFromSessionsAPI();
53
54 // Filter sessions by current repository if detected
55 let filteredSessions = codeSessions;
56 if (detectedRepo) {
57 filteredSessions = codeSessions.filter(session => {
58 if (!session.repo) return false;
59 const sessionRepo = `${session.repo.owner.login}/${session.repo.name}`;
60 return sessionRepo === detectedRepo;
61 });
62 logForDebugging(`Filtered ${filteredSessions.length} sessions for repo ${detectedRepo} from ${codeSessions.length} total`);
63 }
64
65 // Sort by updated_at (newest first)
66 const sortedSessions = [...filteredSessions].sort((a, b) => {
67 const dateA = new Date(a.updated_at);
68 const dateB = new Date(b.updated_at);
69 return dateB.getTime() - dateA.getTime();
70 });
71 setSessions(sortedSessions);
72 } catch (err) {
73 const errorMessage = err instanceof Error ? err.message : String(err);
74 logForDebugging(`Error loading code sessions: ${errorMessage}`);
75 setLoadErrorType(determineErrorType(errorMessage));
76 } finally {
77 setLoading(false);
78 setRetrying(false);
79 }
80 }, []);
81 const handleRetry = () => {
82 setRetrying(true);

Callers

nothing calls this directly

Calls 14

useTerminalSizeFunction · 0.85
useShortcutDisplayFunction · 0.85
detectCurrentRepositoryFunction · 0.85
logForDebuggingFunction · 0.85
determineErrorTypeFunction · 0.85
useKeybindingFunction · 0.85
useInputFunction · 0.85
handleRetryFunction · 0.85
formatRelativeTimeFunction · 0.85
maxMethod · 0.80

Tested by

no test coverage detected