Skip to content

Commit e887384

Browse files
fixes
1 parent 68a688a commit e887384

15 files changed

+275
-186
lines changed

dist/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
<!DOCTYPE html><html lang="en"><head><base href="/"><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><meta property="og:title" content="Smallcase Task"><meta property="og:description" content="File System in Web"><link rel="apple-touch-icon-precomposed" sizes="57x57" href="apple-touch-icon-57x57.0c1c68fd.png"><link rel="apple-touch-icon-precomposed" sizes="114x114" href="apple-touch-icon-114x114.530ce176.png"><link rel="apple-touch-icon-precomposed" sizes="72x72" href="apple-touch-icon-72x72.3cb750e6.png"><link rel="apple-touch-icon-precomposed" sizes="144x144" href="apple-touch-icon-144x144.ee07d714.png"><link rel="apple-touch-icon-precomposed" sizes="60x60" href="apple-touch-icon-60x60.66f1eca2.png"><link rel="apple-touch-icon-precomposed" sizes="120x120" href="apple-touch-icon-120x120.ebb3d3c0.png"><link rel="apple-touch-icon-precomposed" sizes="76x76" href="apple-touch-icon-76x76.c37e1771.png"><link rel="apple-touch-icon-precomposed" sizes="152x152" href="apple-touch-icon-152x152.6bbbd429.png"><link rel="icon" type="image/png" href="favicon-196x196.b0d41ca3.png" sizes="196x196"><link rel="icon" type="image/png" href="favicon-96x96.5e9376aa.png" sizes="96x96"><link rel="icon" type="image/png" href="favicon-32x32.42786cbd.png" sizes="32x32"><link rel="icon" type="image/png" href="favicon-16x16.3c6ced82.png" sizes="16x16"><link rel="icon" type="image/png" href="favicon-128.a45ad667.png" sizes="128x128"><meta name="application-name" content="&nbsp;"><meta name="msapplication-TileColor" content="#FFFFFF"><meta name="msapplication-TileImage" content="mstile-144x144.ee07d714.png"><meta name="msapplication-square70x70logo" content="mstile-70x70.a45ad667.png"><meta name="msapplication-square150x150logo" content="mstile-150x150.6ac8a1a7.png"><meta name="msapplication-wide310x150logo" content="mstile-310x150.2886f305.png"><meta name="msapplication-square310x310logo" content="mstile-310x310.aa470dab.png"><meta name="theme-color" content="#ffffff"><title>/</title><link rel="stylesheet" href="smallcase-task.b0cf6189.css"></head><body> <noscript> You need to enable JavaScript to run this app. </noscript> <div id="root"></div> <div id="portal"></div> <script src="smallcase-task.0f3f15c0.js"></script>
1+
<!DOCTYPE html><html lang="en"><head><base href="/"><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta http-equiv="X-UA-Compatible" content="ie=edge"><meta property="og:title" content="Smallcase Task"><meta property="og:description" content="File System in Web"><link rel="apple-touch-icon-precomposed" sizes="57x57" href="apple-touch-icon-57x57.0c1c68fd.png"><link rel="apple-touch-icon-precomposed" sizes="114x114" href="apple-touch-icon-114x114.530ce176.png"><link rel="apple-touch-icon-precomposed" sizes="72x72" href="apple-touch-icon-72x72.3cb750e6.png"><link rel="apple-touch-icon-precomposed" sizes="144x144" href="apple-touch-icon-144x144.ee07d714.png"><link rel="apple-touch-icon-precomposed" sizes="60x60" href="apple-touch-icon-60x60.66f1eca2.png"><link rel="apple-touch-icon-precomposed" sizes="120x120" href="apple-touch-icon-120x120.ebb3d3c0.png"><link rel="apple-touch-icon-precomposed" sizes="76x76" href="apple-touch-icon-76x76.c37e1771.png"><link rel="apple-touch-icon-precomposed" sizes="152x152" href="apple-touch-icon-152x152.6bbbd429.png"><link rel="icon" type="image/png" href="favicon-196x196.b0d41ca3.png" sizes="196x196"><link rel="icon" type="image/png" href="favicon-96x96.5e9376aa.png" sizes="96x96"><link rel="icon" type="image/png" href="favicon-32x32.42786cbd.png" sizes="32x32"><link rel="icon" type="image/png" href="favicon-16x16.3c6ced82.png" sizes="16x16"><link rel="icon" type="image/png" href="favicon-128.a45ad667.png" sizes="128x128"><meta name="application-name" content="&nbsp;"><meta name="msapplication-TileColor" content="#FFFFFF"><meta name="msapplication-TileImage" content="mstile-144x144.ee07d714.png"><meta name="msapplication-square70x70logo" content="mstile-70x70.a45ad667.png"><meta name="msapplication-square150x150logo" content="mstile-150x150.6ac8a1a7.png"><meta name="msapplication-wide310x150logo" content="mstile-310x150.2886f305.png"><meta name="msapplication-square310x310logo" content="mstile-310x310.aa470dab.png"><meta name="theme-color" content="#ffffff"><title>/</title><link rel="stylesheet" href="smallcase-task.b0cf6189.css"></head><body> <noscript> You need to enable JavaScript to run this app. </noscript> <div id="root"></div> <div id="portal"></div> <script src="smallcase-task.feeb4d58.js"></script>
22
</body></html>

dist/smallcase-task.0f3f15c0.js.map

Lines changed: 0 additions & 1 deletion
This file was deleted.

dist/smallcase-task.0f3f15c0.js renamed to dist/smallcase-task.feeb4d58.js

Lines changed: 29 additions & 29 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/smallcase-task.feeb4d58.js.map

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ const store = createStore(
2222
{
2323
fileSystem:
2424
localStorage.getItem('fileSystem') &&
25-
localStorage.getItem('fileSystem').length > 0
26-
? [...JSON.parse(localStorage.getItem('fileSystem'))]
25+
Object.keys(localStorage.getItem('fileSystem')).length > 0
26+
? JSON.parse(localStorage.getItem('fileSystem'))
2727
: generatedummyFileSystem()
2828
},
2929
composeWithDevTools()

package.json

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,20 @@
1010
"author": "Shubham",
1111
"license": "ISC",
1212
"dependencies": {
13+
"crypto-js": "^3.1.9-1",
14+
"cryptr": "^4.0.2",
1315
"formik": "^1.5.2",
16+
"md5": "^2.2.1",
1417
"parcel-bundler": "^1.10.3",
1518
"react": ">=15",
1619
"react-dom": "^16.7.0-alpha.2",
1720
"react-helmet": "^5.2.0",
1821
"react-redux": "^7.0.1",
1922
"react-router-dom": "^5.0.0",
2023
"redux": "^4.0.1",
21-
"styled-components": "^4.1.1"
24+
"sha.js": "^2.4.11",
25+
"styled-components": "^4.1.1",
26+
"uuid": "^3.3.2"
2227
},
2328
"devDependencies": {
2429
"@babel/core": "^7.1.6",

src/components/Grid/index.js

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import React, { Component } from 'react';
22
import styled from 'styled-components';
33
import { connect } from 'react-redux';
4+
import md5 from 'md5';
45

56
import SEO from '@Components/SEO';
67

78
import { showPathEntries, entriesAreSame } from '@Utils/fileSystem';
9+
import { FOLDER } from '@Utils/constants';
810
import { addEntry, deleteEntry } from '@Action/fileSystem';
911

1012
import Icon from '../Icon';
@@ -15,23 +17,23 @@ import FolderIcon from '@Image/folder.png';
1517
class Grid extends Component {
1618
componentDidMount() {
1719
if (
18-
this.props.fileSystem.find(
19-
el => el.path === this.props.location.pathname
20-
) === undefined
20+
!Object.keys(this.props.fileSystem).includes(
21+
md5(this.props.location.pathname + FOLDER)
22+
)
2123
) {
2224
this.props.history.push('/');
2325
}
2426
}
2527

26-
shouldComponentUpdate(nextProps, nextState) {
27-
if (this.props.location.pathname === nextProps.location.pathname) {
28-
if (entriesAreSame(this.props.entry, nextProps.entry)) {
29-
return false;
30-
}
31-
return true;
32-
}
33-
return true;
34-
}
28+
// shouldComponentUpdate(nextProps, nextState) {
29+
// if (this.props.location.pathname === nextProps.location.pathname) {
30+
// if (entriesAreSame(this.props.entry, nextProps.entry)) {
31+
// return false;
32+
// }
33+
// return true;
34+
// }
35+
// return true;
36+
// }
3537

3638
render() {
3739
return (
@@ -48,14 +50,15 @@ class Grid extends Component {
4850
index={_}
4951
key={`${entry.path}_${entry.type}`}
5052
deleteFn={() => {
51-
this.props.deleteEntry(entry);
53+
this.props.deleteEntry(md5(entry.path + entry.type));
5254
}}
5355
/>
5456
))}
5557
<Add
5658
saveEntry={value => {
5759
this.props.addEntry({
5860
...value,
61+
parentID: md5(this.props.match.url + FOLDER),
5962
parentPath: this.props.match.url
6063
});
6164
}}

src/components/SearchBar/SearchResults.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ class SearchResults extends Component {
2424
data.map(arr => (
2525
<Result key={arr.path} onClick={() => this.handleClick(arr)}>
2626
<div>
27-
<Img src={arr.type == 'file' ? FileIcon : FolderIcon} />
27+
<Img src={arr.type == FILE ? FileIcon : FolderIcon} />
2828
{arr.name}
2929
</div>
3030

src/components/SearchBar/index.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,9 @@ class SearchBar extends Component {
6464
data={
6565
this.state.mode === LOCAL
6666
? this.props.entry
67-
: this.props.fileSystem
67+
: Object.keys(this.props.fileSystem).map(
68+
id => this.props.fileSystem[id]
69+
)
6870
}
6971
closeResult={() => this.setState({ term: '' })}
7072
/>

src/components/Sidebar/SideMenu.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React, { Component, Fragment } from 'react';
22
import { withRouter } from 'react-router-dom';
33

44
import { FILE } from '@Utils/constants';
5+
import { entriesAreSame } from '@Utils/fileSystem';
56
import Collapse from './Collapse';
67

78
import { LinkContainer, DropDownIcon, Line } from './styles';
@@ -16,6 +17,16 @@ class SideMenu extends Component {
1617
};
1718
}
1819

20+
// shouldComponentUpdate(nextProps, nextState) {
21+
// console.log(
22+
// entriesAreSame(nextProps.fileStructure, this.props.fileStructure)
23+
// );
24+
// if (entriesAreSame(nextProps.fileStructure, this.props.fileStructure)) {
25+
// return false;
26+
// }
27+
// return true;
28+
// }
29+
1930
handler = (children, value) => {
2031
let i = value + 1;
2132
return children && children.length > 0

0 commit comments

Comments
 (0)