UNPKG

collaborative-ui

Version:

React component library for building real-time collaborative editing applications.

32 lines (31 loc) 1.67 kB
"use strict"; 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;