Skip to content

Commit 05b0b8e

Browse files
committed
- loader + delay
- copytoclipboard
1 parent 5a08bde commit 05b0b8e

File tree

4 files changed

+62
-12
lines changed

4 files changed

+62
-12
lines changed

.eslintcache

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
[{"/Users/ironman/Desktop/FileOvr/src/index.js":"1","/Users/ironman/Desktop/FileOvr/src/components/Ovr.js":"2","/Users/ironman/Desktop/FileOvr/src/components/TopBar.js":"3","/Users/ironman/Desktop/FileOvr/src/components/Down.js":"4","/Users/ironman/Desktop/FileOvr/src/components/Up.js":"5","/Users/ironman/Desktop/FileOvr/src/App.js":"6","/Users/ironman/Desktop/FileOvr/src/reportWebVitals.js":"7","/Users/ironman/Desktop/FileOvr/src/components/Pouch.js":"8","/Users/ironman/Desktop/FileOvr/src/components/DragNDrop.js":"9"},{"size":500,"mtime":1613856732928,"results":"10","hashOfConfig":"11"},{"size":12371,"mtime":1615347666908,"results":"12","hashOfConfig":"13"},{"size":890,"mtime":1614541607804,"results":"14","hashOfConfig":"13"},{"size":1476,"mtime":1615338440333,"results":"15","hashOfConfig":"13"},{"size":1514,"mtime":1617965619475,"results":"16","hashOfConfig":"13"},{"size":161,"mtime":1615148943420,"results":"17","hashOfConfig":"13"},{"size":362,"mtime":1613856732929,"results":"18","hashOfConfig":"13"},{"size":2054,"mtime":1617965255922,"results":"19","hashOfConfig":"13"},{"size":2199,"mtime":1617963748199,"results":"20","hashOfConfig":"13"},{"filePath":"21","messages":"22","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"14lgwgo",{"filePath":"23","messages":"24","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"at8weu",{"filePath":"25","messages":"26","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"27"},{"filePath":"28","messages":"29","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"27"},{"filePath":"30","messages":"31","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"32","messages":"33","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"34"},{"filePath":"35","messages":"36","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"37","messages":"38","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"39","messages":"40","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/ironman/Desktop/FileOvr/src/index.js",[],"/Users/ironman/Desktop/FileOvr/src/components/Ovr.js",["41","42","43"],"/Users/ironman/Desktop/FileOvr/src/components/TopBar.js",[],["44","45"],"/Users/ironman/Desktop/FileOvr/src/components/Down.js",[],"/Users/ironman/Desktop/FileOvr/src/components/Up.js",[],"/Users/ironman/Desktop/FileOvr/src/App.js",[],["46","47"],"/Users/ironman/Desktop/FileOvr/src/reportWebVitals.js",[],"/Users/ironman/Desktop/FileOvr/src/components/Pouch.js",[],"/Users/ironman/Desktop/FileOvr/src/components/DragNDrop.js",[],{"ruleId":"48","severity":1,"message":"49","line":15,"column":9,"nodeType":"50","messageId":"51","endLine":15,"endColumn":29},{"ruleId":"48","severity":1,"message":"52","line":20,"column":9,"nodeType":"50","messageId":"51","endLine":20,"endColumn":34},{"ruleId":"48","severity":1,"message":"53","line":27,"column":9,"nodeType":"50","messageId":"51","endLine":27,"endColumn":32},{"ruleId":"54","replacedBy":"55"},{"ruleId":"56","replacedBy":"57"},{"ruleId":"54","replacedBy":"58"},{"ruleId":"56","replacedBy":"59"},"no-unused-vars","'baseStyle_sendButton' is assigned a value but never used.","Identifier","unusedVar","'slideLeftStyle_sendButton' is assigned a value but never used.","'baseStyle_receiveButton' is assigned a value but never used.","no-native-reassign",["60"],"no-negated-in-lhs",["61"],["60"],["61"],"no-global-assign","no-unsafe-negation"]
1+
[{"/Users/ironman/Desktop/FileOvr/src/index.js":"1","/Users/ironman/Desktop/FileOvr/src/components/Ovr.js":"2","/Users/ironman/Desktop/FileOvr/src/components/TopBar.js":"3","/Users/ironman/Desktop/FileOvr/src/components/Down.js":"4","/Users/ironman/Desktop/FileOvr/src/components/Up.js":"5","/Users/ironman/Desktop/FileOvr/src/App.js":"6","/Users/ironman/Desktop/FileOvr/src/reportWebVitals.js":"7","/Users/ironman/Desktop/FileOvr/src/components/Pouch.js":"8","/Users/ironman/Desktop/FileOvr/src/components/DragNDrop.js":"9"},{"size":500,"mtime":1613856732928,"results":"10","hashOfConfig":"11"},{"size":12371,"mtime":1615347666908,"results":"12","hashOfConfig":"13"},{"size":890,"mtime":1614541607804,"results":"14","hashOfConfig":"13"},{"size":1476,"mtime":1615338440333,"results":"15","hashOfConfig":"13"},{"size":2446,"mtime":1617968338791,"results":"16","hashOfConfig":"13"},{"size":161,"mtime":1615148943420,"results":"17","hashOfConfig":"13"},{"size":362,"mtime":1613856732929,"results":"18","hashOfConfig":"13"},{"size":2054,"mtime":1617965255922,"results":"19","hashOfConfig":"13"},{"size":2199,"mtime":1617963748199,"results":"20","hashOfConfig":"13"},{"filePath":"21","messages":"22","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"14lgwgo",{"filePath":"23","messages":"24","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"at8weu",{"filePath":"25","messages":"26","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"27"},{"filePath":"28","messages":"29","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"27"},{"filePath":"30","messages":"31","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"32","messages":"33","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"34"},{"filePath":"35","messages":"36","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"37","messages":"38","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"39","messages":"40","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"/Users/ironman/Desktop/FileOvr/src/index.js",[],"/Users/ironman/Desktop/FileOvr/src/components/Ovr.js",["41","42","43"],"/Users/ironman/Desktop/FileOvr/src/components/TopBar.js",[],["44","45"],"/Users/ironman/Desktop/FileOvr/src/components/Down.js",[],"/Users/ironman/Desktop/FileOvr/src/components/Up.js",[],"/Users/ironman/Desktop/FileOvr/src/App.js",[],["46","47"],"/Users/ironman/Desktop/FileOvr/src/reportWebVitals.js",[],"/Users/ironman/Desktop/FileOvr/src/components/Pouch.js",[],"/Users/ironman/Desktop/FileOvr/src/components/DragNDrop.js",[],{"ruleId":"48","severity":1,"message":"49","line":15,"column":9,"nodeType":"50","messageId":"51","endLine":15,"endColumn":29},{"ruleId":"48","severity":1,"message":"52","line":20,"column":9,"nodeType":"50","messageId":"51","endLine":20,"endColumn":34},{"ruleId":"48","severity":1,"message":"53","line":27,"column":9,"nodeType":"50","messageId":"51","endLine":27,"endColumn":32},{"ruleId":"54","replacedBy":"55"},{"ruleId":"56","replacedBy":"57"},{"ruleId":"54","replacedBy":"58"},{"ruleId":"56","replacedBy":"59"},"no-unused-vars","'baseStyle_sendButton' is assigned a value but never used.","Identifier","unusedVar","'slideLeftStyle_sendButton' is assigned a value but never used.","'baseStyle_receiveButton' is assigned a value but never used.","no-native-reassign",["60"],"no-negated-in-lhs",["61"],["60"],["61"],"no-global-assign","no-unsafe-negation"]

package.json

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"framer-motion": "^3.2.2-rc.1",
1111
"react": "^17.0.1",
1212
"react-dom": "^17.0.1",
13+
"react-loader-spinner": "^4.0.0",
1314
"react-scripts": "4.0.1",
1415
"web-vitals": "^0.2.4"
1516
},

src/components/Up.js

+53-11
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import React, { Component } from "react";
22
import styles from "../styles/up.module.css";
33
import { motion } from "framer-motion";
4-
import Pouch from "./Pouch"
4+
import Loader from "react-loader-spinner";
5+
import "react-loader-spinner/dist/loader/css/react-spinner-loader.css";
6+
import Pouch from "./Pouch";
57

68
export default class Send extends Component
79
{
@@ -10,22 +12,41 @@ export default class Send extends Component
1012
super(props)
1113
this.state = {
1214
subfile: {},
13-
code: ""
15+
code: "",
16+
waiting: false
1417
}
1518
}
1619

1720
handleSub = (sub) =>
1821
{
1922
this.setState({
2023
subfile: sub
24+
})
25+
this.showLoading()
26+
setTimeout(() => {
27+
this.setState({
28+
code: sub.name,
29+
waiting: false
2130
},
22-
console.log(sub))
31+
console.log(sub))}, 2000)
2332

2433
}
34+
35+
showLoading() {
36+
this.setState({
37+
waiting: true
38+
})
39+
}
40+
41+
codeToClipboard = () => {
42+
const el = this.textArea
43+
el.select()
44+
document.execCommand("copy")
45+
}
2546

2647
render()
2748
{
28-
if (this.state.subfile.name)
49+
if (this.state.waiting)
2950
{
3051
return (
3152
<>
@@ -35,13 +56,38 @@ export default class Send extends Component
3556
<h1>
3657
{this.state.subfile.name}
3758
</h1>
38-
<h2>
39-
Loading...
40-
</h2>
59+
<Loader
60+
type="Oval"
61+
color="#4d4d4d"
62+
height={100}
63+
width={100}
64+
// timeout={3000}
65+
/>
4166
</div>
4267
</>
4368
);
4469
}
70+
else if (this.state.code)
71+
{
72+
return (
73+
<div className={styles.upload_file}>
74+
<div className={styles.code_from_upload_container}>
75+
<h2>Step 2: Copy your code</h2>
76+
<textarea
77+
className={styles.code_from_upload}
78+
ref={(textarea) => this.textArea = textarea}
79+
value={this.state.code}
80+
readOnly
81+
/>
82+
<button
83+
onClick={() => this.codeToClipboard()}
84+
>
85+
Copy
86+
</button>
87+
</div>
88+
</div>
89+
);
90+
}
4591
else {
4692
return (
4793
<>
@@ -61,10 +107,6 @@ export default class Send extends Component
61107
<h2 className={styles.up_subtext}>Step 1: Drop your file here</h2>
62108
<Pouch onSub={this.handleSub}/>
63109
</div>
64-
<div className={styles.code_from_upload_container}>
65-
<h2>Step 2: Copy your code</h2>
66-
<h4 className={styles.code_from_upload}>{this.state.code}</h4>
67-
</div>
68110
</motion.div>
69111
</>
70112
);

yarn.lock

+7
Original file line numberDiff line numberDiff line change
@@ -8939,6 +8939,13 @@ react-is@^17.0.1:
89398939
resolved "https://registry.npmjs.org/react-is/-/react-is-17.0.1.tgz"
89408940
integrity sha512-NAnt2iGDXohE5LI7uBnLnqvLQMtzhkiAOLXTmv+qnF9Ky7xAPcX8Up/xWIhxvLVGJvuLiNc4xQLtuqDRzb4fSA==
89418941

8942+
react-loader-spinner@^4.0.0:
8943+
version "4.0.0"
8944+
resolved "https://registry.yarnpkg.com/react-loader-spinner/-/react-loader-spinner-4.0.0.tgz#43d9e71b0574219f64216933c28ef5faa12262f6"
8945+
integrity sha512-RU2vpEej6G4ECei0h3q6bgLU10of9Lw5O+4AwF/mtkrX5oY20Sh/AxoPJ7etbrs/7Q3u4jN5qwCwGLRKCHpk6g==
8946+
dependencies:
8947+
prop-types "^15.7.2"
8948+
89428949
react-refresh@^0.8.3:
89438950
version "0.8.3"
89448951
resolved "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz"

0 commit comments

Comments
 (0)