├── app
├── resources
│ └── paper.png
├── render
│ ├── assets
│ │ ├── hummingbird-loading.gif
│ │ ├── open.svg
│ │ ├── document.svg
│ │ ├── upload.svg
│ │ └── delete.svg
│ ├── html
│ │ └── c62a32a6b6474ba6d4c1c812edf945b9.gif
│ ├── src
│ │ ├── index.js
│ │ ├── components
│ │ │ ├── Dashboard
│ │ │ │ ├── Chart.jsx
│ │ │ │ ├── BundleSelector.jsx
│ │ │ │ ├── Bar.jsx
│ │ │ │ ├── PercentBar.jsx
│ │ │ │ ├── Dashboard.jsx
│ │ │ │ ├── MFESelector.jsx
│ │ │ │ └── Files.jsx
│ │ │ ├── ControlPanel.jsx
│ │ │ ├── Loading.jsx
│ │ │ ├── Menu.jsx
│ │ │ ├── NavBar.jsx
│ │ │ ├── Display.jsx
│ │ │ ├── Main.jsx
│ │ │ ├── BundleHistory.jsx
│ │ │ └── Diagram.jsx
│ │ ├── index.html
│ │ ├── node-handling
│ │ │ ├── configs.js
│ │ │ ├── styling.js
│ │ │ ├── reposition.js
│ │ │ └── mapping.js
│ │ ├── App.jsx
│ │ └── stylesheets
│ │ │ └── style.css
│ └── js
│ │ ├── renderer.js
│ │ └── dom.js
├── main
│ ├── notification.js
│ └── io.js
└── index.js
├── babel.config.js
├── assets
└── images
│ ├── DisplayPanel.png
│ └── table-of-contents.png
├── LICENSE
├── webpack.config.js
├── __tests__
└── render
│ └── src
│ └── components
│ └── Main.unit.test.jsx
├── package.json
├── .gitignore
├── CONTRIBUTING.md
└── README.md
/app/resources/paper.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/bev/HEAD/app/resources/paper.png
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: ['@babel/preset-env', '@babel/preset-react'],
3 | };
--------------------------------------------------------------------------------
/assets/images/DisplayPanel.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/bev/HEAD/assets/images/DisplayPanel.png
--------------------------------------------------------------------------------
/assets/images/table-of-contents.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/bev/HEAD/assets/images/table-of-contents.png
--------------------------------------------------------------------------------
/app/render/assets/hummingbird-loading.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/bev/HEAD/app/render/assets/hummingbird-loading.gif
--------------------------------------------------------------------------------
/app/render/html/c62a32a6b6474ba6d4c1c812edf945b9.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/oslabs-beta/bev/HEAD/app/render/html/c62a32a6b6474ba6d4c1c812edf945b9.gif
--------------------------------------------------------------------------------
/app/render/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { render } from 'react-dom';
3 | import App from './App';
4 |
5 | render(
Loading... This may take a while.
17 |(Make sure the uploaded projects contain a webpack config file in their root directories!)
26 |
45 | * If the right-hand display panel is implemented, functionality to edit first party files directly is desirable
46 | * Implement GitHub Releases
--------------------------------------------------------------------------------
/app/render/src/components/Dashboard/Files.jsx:
--------------------------------------------------------------------------------
1 | import React, {useState} from 'react';
2 |
3 | const Files = (props) =>{
4 |
5 | const bundle = props.mfe;
6 | const totalSizePerAsset = {};
7 | const showFileDetailsObj = {};
8 | const hoverObj = {};
9 | Object.entries(bundle.assets).forEach(([k,v]) => {
10 | let totalSize = 0;
11 | v.forEach(e => totalSize += e.size)
12 | totalSizePerAsset[k] = totalSize;
13 | showFileDetailsObj[k] = false;
14 | hoverObj[k] = false;
15 | })
16 | const [showFileDetails, setShowFileDetails] = useState(showFileDetailsObj);
17 | const [hover, setHover] = useState(hoverObj);
18 |
19 | const handleClick = (e) => {
20 | console.log('e', e);
21 | const fileType = e.target.id;
22 | const newProperty = {};
23 | newProperty[fileType] = showFileDetails[fileType] === true ? false : true;
24 | setShowFileDetails({...showFileDetails, ...newProperty});
25 | console.log('showFileDetails', showFileDetails);
26 | }
27 |
28 | const fileTypeStyle = {};
29 | Object.keys(hover).forEach(fileType => {
30 | fileTypeStyle[fileType] = {
31 | display: 'flex',
32 | flexDirection: 'row',
33 | padding: '10px',
34 | borderStyle: 'ridge',
35 | justifyContent: 'space-between',
36 | backgroundColor: hover[fileType] === true ? 'aliceblue' : ''
37 | }
38 | })
39 |
40 | const handleHover = (e) => {
41 | console.log('hover before change', hover)
42 | const fileType = e.target.id;
43 | hover[fileType] = hover[fileType] ? false : true;
44 | setHover({...hover});
45 | console.log('hover after change', hover)
46 | }
47 |
48 | return (
49 | <>
50 |