This repository has been archived on 2025-09-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
repertory-ui/src/components/DependencyList/DependencyList.js
2020-04-22 16:09:48 -05:00

52 lines
1.9 KiB
JavaScript

import React from 'react';
import './DependencyList.css';
import {connect} from 'react-redux';
import * as Constants from '../../constants';
import Dependency from './Dependency/Dependency';
import Box from '../UI/Box/Box';
import {downloadItem} from '../../redux/actions/download_actions';
import {extractFileNameFromURL} from '../../utils';
import {setDismissDependencies} from '../../redux/actions/install_actions';
const mapStateToProps = state => {
return {
AllowDismissDependencies: state.relver.AllowDismissDependencies,
MissingDependencies: state.install.MissingDependencies,
};
};
const mapDispatchToProps = (dispatch) => {
return {
downloadItem: (name, type, url, isWinFSP) => dispatch(downloadItem(name, type, url, isWinFSP)),
setDismissDependencies: dismiss => dispatch(setDismissDependencies(dismiss)),
};
};
export default connect(mapStateToProps, mapDispatchToProps)(props => {
const items = props.MissingDependencies.map((k, i)=> {
return (
<Dependency key={i}
name={k.display}
onDownload={()=>props.downloadItem(extractFileNameFromURL(k.download), Constants.INSTALL_TYPES.Dependency, k.download, k.is_winfsp)}/>
);
});
const dismissDisplay = (
<div style={{float: 'right', margin: 0, paddingRight: '4px', boxSizing: 'border-box', display: 'block'}}>
<a href={'#'}
onClick={props.AllowDismissDependencies ? () => props.setDismissDependencies(true) : e => e.preventDefault()}
style={{cursor: props.AllowDismissDependencies ? 'pointer' : 'no-drop'}}>X</a>
</div>
);
return (
<Box dxStyle={{width: '300px', height: 'auto', padding: '5px'}}>
{dismissDisplay}
<div style={{width: '100%', height: 'auto', paddingBottom: '5px', boxSizing: 'border-box'}}>
<h1 style={{width: '100%', textAlign: 'center', color: 'var(--text_color_error)'}}>Missing Dependencies</h1>
</div>
{items}
</Box>
);
});