UNPKG

@git-temporal/git-temporal-react

Version:

<!-- START doctoc generated TOC please keep comment here to allow auto update --> <!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

41 lines (40 loc) 2.12 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const react_1 = __importDefault(require("react")); const react_redux_1 = require("react-redux"); const actions_1 = require("app/actions"); const ActionTypes_1 = require("app/actions/ActionTypes"); const stateVars_1 = require("app/selectors/stateVars"); const files_1 = require("app/selectors/files"); const FilesActionMenu_1 = __importDefault(require("./FilesActionMenu")); const FileCard_1 = require("app/components/FileCard"); const CollapsibleGroup_1 = require("app/components/CollapsibleGroup"); const ExtendingList_1 = require("app/components/ExtendingList"); const COLLAPSIBLE_GROUP = ActionTypes_1.CollapsibleSidePanelGroups.FILES; exports.Files = () => { const filesContainerSort = react_redux_1.useSelector(stateVars_1.getFilesContainerSort); const files = react_redux_1.useSelector(files_1.getFilteredFilesForFilesContainer); const openGroup = react_redux_1.useSelector(stateVars_1.getOpenSidePanelGroup); const dispatch = react_redux_1.useDispatch(); const title = `${files.length} Files`; const isOpen = openGroup === COLLAPSIBLE_GROUP; return (react_1.default.createElement(CollapsibleGroup_1.CollapsibleGroup, { title: title, isOpen: isOpen, onOpenToggle: handleOpenGroupToggle }, react_1.default.createElement(FilesActionMenu_1.default, null), react_1.default.createElement(ExtendingList_1.ExtendingList, { rowCount: files.length, rowRenderer: renderRow }))); function handleOpenGroupToggle() { if (!isOpen) { dispatch(actions_1.setOpenSidePanelGroup(COLLAPSIBLE_GROUP)); } } function renderRow(index, key) { const file = files[index]; return react_1.default.createElement(FileCard_1.FileCard, { key: key, file: file, onFileClick: onFileClick }); } function onFileClick(event, fileName) { event.stopPropagation(); dispatch(actions_1.selectPath(fileName)); } };