collaborative-ui
Version:
React component library for building real-time collaborative editing applications.
32 lines (31 loc) • 1.67 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.ExplorerMenu = void 0;
const tslib_1 = require("tslib");
const React = tslib_1.__importStar(require("react"));
const Menu_1 = require("nice-ui/lib/4-card/Menu");
const useBehaviorSubject_1 = require("nice-ui/lib/hooks/useBehaviorSubject");
const context_1 = require("../context");
const Split_1 = require("nice-ui/lib/3-list-item/Split");
const constants_1 = require("nice-ui/lib/constants");
const BasicButtonClose_1 = require("nice-ui/lib/2-inline-block/BasicButton/BasicButtonClose");
const ExplorerMenu = () => {
const state = (0, context_1.useExplorer)();
const files = (0, useBehaviorSubject_1.useBehaviorSubject)(state.files$);
const selected = (0, useBehaviorSubject_1.useBehaviorSubject)(state.selected$);
if (!files.length)
return null;
return (React.createElement(Menu_1.Menu, { style: { width: constants_1.NiceUiSizes.SidebarWidth }, items: files.map((file) => ({
key: file.id,
menuItem: (React.createElement(Split_1.Split, null,
React.createElement("div", null, file.name),
React.createElement("div", null,
React.createElement("div", { onMouseDown: (e) => {
e.stopPropagation();
}, style: { margin: '-6px 0', padding: '4px 0 0' } },
React.createElement(BasicButtonClose_1.BasicButtonClose, { onClick: () => state.close(file.id) }))))),
active: file.id === selected,
onMouseDown: () => state.select(file.id),
})) }));
};
exports.ExplorerMenu = ExplorerMenu;
;