snort/src/Element/Collapsed.tsx

40 lines
858 B
TypeScript
Raw Normal View History

2023-02-07 19:47:57 +00:00
import { ReactNode } from "react";
2023-02-06 21:42:47 +00:00
import ShowMore from "Element/ShowMore";
interface CollapsedProps {
text?: string;
children: ReactNode;
collapsed: boolean;
setCollapsed(b: boolean): void;
2023-02-06 21:42:47 +00:00
}
2023-02-09 12:26:54 +00:00
const Collapsed = ({ text, children, collapsed, setCollapsed }: CollapsedProps) => {
2023-02-06 21:42:47 +00:00
return collapsed ? (
<div className="collapsed">
<ShowMore text={text} onClick={() => setCollapsed(false)} />
</div>
) : (
<div className="uncollapsed">{children}</div>
);
};
2023-02-06 21:42:47 +00:00
2023-02-09 11:24:15 +00:00
interface CollapsedIconProps {
icon: ReactNode;
children: ReactNode;
collapsed: boolean;
}
export const CollapsedIcon = ({ icon, children, collapsed }: CollapsedIconProps) => {
return collapsed ? (
<div className="collapsed">{icon}</div>
) : (
<div className="uncollapsed">
{icon}
{children}
</div>
);
};
export default Collapsed;