diff --git a/safeshare/safeshare-frontend/src/index.js b/safeshare/safeshare-frontend/src/index.js
index 62572ac..d0fed86 100644
--- a/safeshare/safeshare-frontend/src/index.js
+++ b/safeshare/safeshare-frontend/src/index.js
@@ -4,7 +4,9 @@ import {BrowserRouter as Router, Routes, Route} from "react-router-dom";
import './index.css';
//import App from './App';
import reportWebVitals from './reportWebVitals';
+import ShareFile from "./pages/shareFile";
import HomePage from "./pages/home";
+import DownloadFile from "./pages/downloadFile";
const root = ReactDOM.createRoot(document.getElementById('root'));
root.render(
@@ -14,6 +16,8 @@ root.render(
}/>
+ }/>
+ }/>
);
diff --git a/safeshare/safeshare-frontend/src/pages/downloadFile.js b/safeshare/safeshare-frontend/src/pages/downloadFile.js
new file mode 100644
index 0000000..6fe66c1
--- /dev/null
+++ b/safeshare/safeshare-frontend/src/pages/downloadFile.js
@@ -0,0 +1,70 @@
+import React, { useState } from 'react';
+import axios from 'axios';
+import { Link } from 'react-router-dom';
+
+function DownloadFile() {
+ const [passcode, setPasscode] = useState('');
+ const [fileData, setFileData] = useState(null);
+
+ const handlePasscodeChange = (e) => {
+ setPasscode(e.target.value);
+ };
+
+ const handleDownloadFile = () => {
+ if (passcode) {
+ // Send an API request to your backend with the passcode
+ axios.get(`http://127.0.0.1:8000/api/files/${passcode}`, { responseType: 'blob' })
+ .then((response) => {
+ // Create a blob from the response data
+ const blob = new Blob([response.data], { type: response.headers['content-type'] });
+
+ // Create a URL for the blob
+ const url = window.URL.createObjectURL(blob);
+
+ // Create a temporary anchor element for downloading the file
+ const a = document.createElement('a');
+ a.href = url;
+ a.download = 'downloaded-file.txt'; // Specify the filename
+ a.click();
+
+ // Revoke the URL to release resources
+ window.URL.revokeObjectURL(url);
+ })
+ .catch((error) => {
+ // Handle errors, e.g., show an error message
+ console.error('File download failed', error);
+ });
+ } else {
+ // Handle the case when passcode is null or empty
+ console.error('Passcode is required.');
+ // You can show an error message or take other actions as needed.
+ }
+ };
+
+ return (
+
+
+
+ Back
+
+
Download File
+
+
+
+
+
+
+
+ );
+}
+
+export default DownloadFile;
diff --git a/safeshare/safeshare-frontend/src/pages/home.js b/safeshare/safeshare-frontend/src/pages/home.js
index ab84ee8..7521f87 100644
--- a/safeshare/safeshare-frontend/src/pages/home.js
+++ b/safeshare/safeshare-frontend/src/pages/home.js
@@ -1,31 +1,24 @@
-import React, {useState} from 'react';
-import {FileUploader} from "react-drag-drop-files";
-import axios from "axios";
+import React from 'react';
+import { Link } from 'react-router-dom'; // Assuming you're using React Router for navigation
function HomePage() {
- const [file, setFile] = useState(null);
- const handleChange = (file) => {
- setFile(file);
- console.log(file);
- if (file) {
- const formData = new FormData();
- formData.append('file', file);
-
- // Send POST request to backend API using Axios
- axios.post('http://127.0.0.1:8000/api/files/', formData)
- .then(response => {
- // Handle a successful response from the server
- console.log('File uploaded successfully');
- })
- .catch(error => {
- // Handle errors here
- console.error('File upload failed', error);
- });
- }
-
- };
return (
-
+
+
SafeShare
+
+
+
+
+ Upload a File
+
+
+
+
+ Download a File
+
+
+
+
);
}
diff --git a/safeshare/safeshare-frontend/src/pages/shareFile.js b/safeshare/safeshare-frontend/src/pages/shareFile.js
new file mode 100644
index 0000000..6f30853
--- /dev/null
+++ b/safeshare/safeshare-frontend/src/pages/shareFile.js
@@ -0,0 +1,70 @@
+import React, { useState } from 'react';
+import { FileUploader } from 'react-drag-drop-files';
+import axios from 'axios';
+import { Link } from 'react-router-dom';
+
+function ShareFile() {
+ const [file, setFile] = useState(null);
+ const [passcode, setPasscode] = useState('');
+
+ const handleFileUpload = (file) => {
+ setFile(file);
+ setPasscode('1234');
+ if (file) {
+ const formData = new FormData();
+ formData.append('files', file);
+
+ // Send POST request to the backend API using Axios
+ axios.post('http://127.0.0.1:8000/api/files/', formData)
+ .then(response => {
+ // Handle a successful response from the server
+ setPasscode(response.data.passcode);
+ })
+ .catch(error => {
+ // Handle errors here
+ console.error('File upload failed', error);
+ });
+ }
+ };
+
+ // return (
+ //
+ //
+ //
Safe-Share
+ //
+ //
+ // {passcode && (
+ //
+ //
+ //
{passcode}
+ //
+ // )}
+ //
+ //
+ // );
+ return (
+
+
+
+ Back
+
+
Share a file with others!
+
+ {passcode && (
+
+
+
{passcode}
+
+ )}
+
+
+ );
+}
+
+export default ShareFile;