import React, { useState, useCallback, useEffect } from 'react';
import { Box, Text, useInput, useFocus, useApp } from 'ink';
interface CollapsibleProps {
title: string;
children: React.ReactNode;
collapsed?: boolean;
isSelected?: boolean;
onSelect?: () => void
}
export const Collapsible = ({ title, children, collapsed = false, onSelect, isSelected}: CollapsibleProps) => {
useInput((_, key) => {
if (isSelected && key.return) {
onSelect?.();
}
}, { isActive: isSelected });
if (collapsed) {
return (
{isSelected ? "▶ " : "▸ "}
{title}
);
}
return (
{title}
{children}
);
};