mirror of
https://github.com/bigcapitalhq/bigcapital.git
synced 2026-02-15 20:30:33 +00:00
42 lines
895 B
JavaScript
42 lines
895 B
JavaScript
import React, { useState } from 'react';
|
|
import { Collapse } from '@blueprintjs/core';
|
|
import classNames from 'classnames';
|
|
|
|
/**
|
|
* Postbox.
|
|
*/
|
|
export default function Postbox({
|
|
defaultOpen = true,
|
|
toggable = true,
|
|
title,
|
|
children,
|
|
}) {
|
|
const [isOpen, setIsOpen] = useState(defaultOpen);
|
|
|
|
// Handle the title click.
|
|
const handleTitleClick = () => {
|
|
if (toggable) {
|
|
setIsOpen(!isOpen);
|
|
}
|
|
};
|
|
|
|
return (
|
|
<div
|
|
class={classNames('postbox', {
|
|
'is-toggable': toggable,
|
|
})}
|
|
>
|
|
<div class="postbox__header" onClick={handleTitleClick}>
|
|
<h5 class="postbox__title">{title}</h5>
|
|
|
|
<span class="postbox__toggle-indicator"></span>
|
|
</div>
|
|
<div class="postbox__content">
|
|
<Collapse isOpen={isOpen}>
|
|
<div class="postbox__content-inner">{children}</div>
|
|
</Collapse>
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|