mirror of
https://github.com/AmanTahiliani/PeerNotes.git
synced 2026-08-07 11:55:12 -04:00
get peer's registered files
This commit is contained in:
@@ -1,22 +1,48 @@
|
||||
import "../styles/RegisterFile.css";
|
||||
import { RegisteredFile } from "../types/types";
|
||||
import { RegisteredFile, Status } from "../types/types";
|
||||
import { useState, useEffect } from "react";
|
||||
import { getAuthHeaders } from "../utils/getAuthHeaders";
|
||||
|
||||
export default function RegisterFile() {
|
||||
const [serverFiles, setServerFiles] = useState<RegisteredFile[]>([]);
|
||||
const [registeredFiles, setRegisteredFiles] = useState<RegisteredFile[]>([]);
|
||||
|
||||
useEffect(() => {
|
||||
fetchRegisteredFiles();
|
||||
fetchServerFiles();
|
||||
}, [])
|
||||
const fetchRegisteredFiles = () => {
|
||||
return
|
||||
fetch("http://localhost:5000/files") // replace with local api endpoint
|
||||
|
||||
useEffect(() => {
|
||||
fetch(`http://localhost:8080/files`, {
|
||||
method: 'GET',
|
||||
})
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
setRegisteredFiles(data);
|
||||
const files: string[] = data.files
|
||||
setRegisteredFiles(
|
||||
serverFiles.map((file) => {
|
||||
if (files.includes(file.filename)) {
|
||||
file.status = Status.HOSTED;
|
||||
return file;
|
||||
}
|
||||
file.status = Status.PRIVATE;
|
||||
return file;
|
||||
})
|
||||
)
|
||||
})
|
||||
.catch(error => console.error(error));
|
||||
}, [serverFiles])
|
||||
|
||||
const fetchServerFiles = () => {
|
||||
fetch(`http://localhost:8000/api/files/filter?peer_id=1`, {
|
||||
method: 'GET',
|
||||
headers: getAuthHeaders()
|
||||
}) // replace with local api endpoint
|
||||
.then(response => response.json())
|
||||
.then(data => {
|
||||
setServerFiles(data)
|
||||
})
|
||||
.catch(error => console.error(error));
|
||||
}
|
||||
|
||||
const handleSubmit = (event: React.FormEvent<HTMLFormElement>) => {
|
||||
event.preventDefault();
|
||||
// handle file upload
|
||||
|
||||
@@ -3,6 +3,7 @@ import { useLocation, useNavigate } from 'react-router-dom';
|
||||
import styles from '../styles/Results.module.css'; // Make sure this path is correct
|
||||
import { getAuthHeaders } from '../utils/getAuthHeaders';
|
||||
import { File } from '../types/types';
|
||||
import { Link } from 'react-router-dom';
|
||||
|
||||
const Results: React.FC = () => {
|
||||
const [files, setFiles] = useState<File[]>([]);
|
||||
@@ -113,7 +114,7 @@ function DownloadButton({ file }: { file: File }) {
|
||||
<>
|
||||
{
|
||||
success === true ?
|
||||
<p>Downloaded!</p> :
|
||||
<Link to="/register">Downloaded!</Link> :
|
||||
<button onClick={handleDownload}>Download</button>
|
||||
}
|
||||
</>
|
||||
|
||||
@@ -38,7 +38,7 @@ export interface File {
|
||||
downvotes: number[];
|
||||
}
|
||||
|
||||
enum Status {
|
||||
export enum Status {
|
||||
HOSTED = "HOSTED",
|
||||
PRIVATE = 'PRIVATE',
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user