@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
JavaScript
"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));
}
};