Skip to content
This repository was archived by the owner on Dec 30, 2023. It is now read-only.
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 2c7105d

Browse files
authoredAug 15, 2021
Merge branch 'main' into sreyom
2 parents 3440bf0 + ece3621 commit 2c7105d

File tree

5 files changed

+67
-78
lines changed

5 files changed

+67
-78
lines changed
 

‎src/components/Card.js

-1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,5 @@ const Card = (props) => {
1717
</Modal>
1818
);
1919
};
20-
2120
export default Card;
2221

‎src/components/Download.js

+63-71
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,79 @@
1-
import { Fragment, useState } from "react";
1+
import {Fragment,useState,useEffect,useCallback, useEffec } from "react";
2+
import {Link,useParams} from 'react-router-dom'
23
import "./FileUpload.css";
3-
import { Link } from "react-router-dom";
44
import { create } from "ipfs-http-client";
5-
import Card from "../components/Card";
5+
import Web3 from 'web3'
6+
import { lock_addr,lock_abi } from "../wallet/config";
67
import LoadingSpinner from "./LoadingSpinner";
78
import download from "../images/download.png";
89
const Cryptr = require("cryptr");
910
const client = create("https://ipfs.infura.io:5001/api/v0");
1011

11-
const FileUpload = (props) => {
12-
const [name, setName] = useState("");
13-
const [filename, setFilename] = useState("Choose a File");
14-
const [file, setFile] = useState("");
15-
const [password, setPassword] = useState("");
16-
const [cpassword, setCPassword] = useState("");
17-
const [link, setLink] = useState("");
18-
const [message, setMessage] = useState("");
19-
const [uploading, setUploading] = useState(false);
20-
const [modal, setModal] = useState(false);
21-
22-
const onChange = (e) => {
23-
setFile(e.target.files[0]);
24-
setFilename(e.target.files[0].name);
25-
};
2612

27-
const formSubmission = async (e) => {
28-
e.preventDefault();
29-
if (!password === cpassword && name && file) {
30-
console.log("not met");
31-
return;
32-
}
33-
setUploading(true);
34-
const cryptr = new Cryptr(cpassword);
35-
try {
36-
const options = {
37-
wrapWithDirectory: true,
38-
};
39-
const files = [{ path: filename, content: file }];
40-
const added = await client.add(files, options);
41-
const url = `https://ipfs.infura.io/ipfs/${added.cid.toString()}/${filename}`;
42-
console.log(url);
43-
const encryptedString = cryptr.encrypt(url);
44-
setLink(encryptedString);
45-
setMessage("File Uploaded");
46-
} catch (error) {
47-
console.log("Error uploading file: ", error);
48-
setMessage(error);
49-
}
50-
setTimeout(() => setMessage(""), 10000);
51-
setName("");
52-
setCPassword("");
53-
setPassword("");
54-
setFilename("Choose a file");
55-
setFile("");
56-
setUploading(false);
57-
setModal(true);
58-
};
5913

60-
const nameChangeHandler = (event) => {
61-
setName(event.target.value);
62-
};
14+
var requestOptions = {
15+
method: 'GET',
16+
redirect: 'follow'
17+
};
18+
const FileUpload = (props) => {
19+
const [name,setName]=useState(props.id)
20+
const [password,setPassword]=useState('')
21+
const [uploading, setUploading] = useState(false);
22+
const [error, setError] = useState(null);
23+
const [account, setAccount] = useState('');
24+
const [lockk,setLockk] = useState({})
25+
const openLink = (url) => window.open(url,'download')?.focus();
26+
const loadBlockhainData=async()=>{
27+
const web3 = new Web3(Web3.givenProvider || "https://localhost:7545");
28+
const accounts=await web3.eth.getAccounts()
29+
setAccount(accounts[0])
30+
console.log(account)
31+
const lock=new web3.eth.Contract(lock_abi,lock_addr)
32+
setLockk(lock)
33+
34+
};
35+
useEffect(() => {
36+
loadBlockhainData();
37+
},[account])
38+
39+
const formSubmission=async(e)=>{
40+
e.preventDefault();
41+
setUploading(true);
6342

64-
const passwordChangeHandler = (event) => {
65-
setPassword(event.target.value);
66-
};
43+
if(!name||!password){return}
44+
try{
45+
const cryptr = new Cryptr(password);
46+
console.log('started')
47+
const link=await lockk.methods.getlink(name-1).call()
48+
console.log(link)
49+
const decryptedString = cryptr.decrypt(link);
50+
console.log(decryptedString)
51+
const response = await fetch(`${decryptedString}`,requestOptions);
52+
if (!response.ok) {
53+
throw new Error('Something went wrong!');
54+
}
55+
const data = await response.url;
56+
console.log(data)
57+
openLink(data)
58+
}catch(error){
59+
setError(error);
60+
}
61+
setUploading(false)
62+
63+
64+
};
6765

68-
const cpasswordChangeHandler = (event) => {
69-
setCPassword(event.target.value);
70-
};
71-
const modalChangeHandler = () => {
72-
setModal(false);
73-
};
66+
const nameChangeHandler = (event) => {
67+
setName(event.target.value);
68+
};
69+
70+
const passwordChangeHandler = (event) => {
71+
setPassword(event.target.value);
72+
};
7473

7574
return (
7675
<Fragment>
7776
{uploading && <LoadingSpinner />}
78-
{modal && <Card onClose={modalChangeHandler} link={link} />}
7977
<div className="updown">
8078
<form onSubmit={formSubmission} className="form-down">
8179
<div class="row">
@@ -85,7 +83,7 @@ const FileUpload = (props) => {
8583
type="text"
8684
id="fname"
8785
name="fname"
88-
placeholder="File Name"
86+
placeholder="File ID"
8987
required="true"
9088
onChange={nameChangeHandler}
9189
value={name}
@@ -112,7 +110,7 @@ const FileUpload = (props) => {
112110
type="submit"
113111
value="Download"
114112
class="btn"
115-
disabled={!password === cpassword && name}
113+
disabled={!password && !name}
116114
></input>
117115
<Link to="/" class="btn">
118116
Cancel
@@ -121,14 +119,8 @@ const FileUpload = (props) => {
121119
</form>
122120
<div className="img-con-down">
123121
<img src={download} alt="upload" className="down-img" />
124-
<div class="row">
125-
<div class="input_field">
126-
{/* <h1>Upload Files</h1> */}
127-
</div>
128-
</div>
129122
</div>
130123
</div>
131-
<p>{message}</p>
132124
</Fragment>
133125
);
134126
};

‎src/components/FileUpload.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const FileUpload = (props) => {
4444
const formSubmission = async (e) => {
4545
e.preventDefault();
4646
if (!password === cpassword && name && file) {
47-
console.log("not met");
47+
console.log("Please Fill the correct Details");
4848
return;
4949
}
5050

‎src/layout/NavLinks.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ function NavLinks(props) {
1111
<li>WRITE</li>
1212
</NavLink>
1313

14-
<NavLink to='/view' activeClassName={classes.active} style={{ textDecoration: 'none' }} onClick={() => props.isMobile && props.closeMobileMenu()}>
14+
<NavLink to='/view/0' activeClassName={classes.active} style={{ textDecoration: 'none' }} onClick={() => props.isMobile && props.closeMobileMenu()}>
1515
<li>VIEW</li>
1616
</NavLink>
1717

‎src/pages/View.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@ import {Fragment} from 'react';
22
import {useParams} from 'react-router-dom'
33
// import LoadingSpinner from '../components/LoadingSpinner'
44
import classes from './View.module.css'
5-
// import { useWeb3React } from "@web3-react/core"
6-
// import { injected } from "../wallet/connectors"
75

86
const View =props => {
97

@@ -12,13 +10,13 @@ const View =props => {
1210

1311
return (
1412
<Fragment>
15-
{/* {isLoading&&<LoadingSpinner/>} */}
1613
<section className={classes.info}>
1714
<div className={classes.heading}>
18-
<h1>{params.id}</h1>
15+
<h1>Download</h1>
1916
</div>
2017
<div className={classes.cards_wrapper}>
2118
<div className={classes.card_grid_space}>
19+
<Download id={params.id}/>
2220
</div>
2321
</div>
2422
</section>

0 commit comments

Comments
 (0)
This repository has been archived.