Skip to content

Commit 67c6966

Browse files
committed
Fixed the scrolling. I used a 'paper-gallery' component but ideally itll all just be in the modify page section. Might just need to set a definite height based on the rest of the page
1 parent ac5a6cb commit 67c6966

File tree

5 files changed

+65
-21
lines changed

5 files changed

+65
-21
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
import { useEffect, useState } from "react";
2+
import { PaperData } from "../types/types";
3+
import PaperSliver from "./paper-sliver";
4+
5+
type PaperGalleryProps = {
6+
papers: PaperData[];
7+
};
8+
9+
export default function PaperGallery({ papers }: PaperGalleryProps) {
10+
const [paperAreaHeight, setPaperAreaHeight] = useState<number>(
11+
window.innerHeight - 200 - 65
12+
); //Default? random number choice
13+
14+
const updateDimensions = () => {
15+
setPaperAreaHeight(window.innerHeight - 200 - 65); // 200 for header, 65 for navbar
16+
};
17+
18+
useEffect(() => {
19+
// Set initial height and listen for resize events
20+
updateDimensions();
21+
window.addEventListener("resize", updateDimensions);
22+
23+
return () => {
24+
// Cleanup event listener on unmount
25+
window.removeEventListener("resize", updateDimensions);
26+
};
27+
}, []);
28+
29+
return (
30+
<div
31+
className="overflow-y-scroll"
32+
style={{
33+
height: paperAreaHeight - 30,
34+
35+
}}
36+
>
37+
{papers.map((paper: PaperData, index: number) => (
38+
<PaperSliver paper={paper} index={index} key={index} />
39+
))}
40+
</div>
41+
);
42+
}

web/src/components/paper-sliver.tsx

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import "../App.css";
2-
import { TempPaperData } from "../pages/ModifyPage";
32
import { PaperData } from "../types/types";
43

54
// TempPaperData is for testing only
65
type PaperSliverProp = {
7-
paper: TempPaperData;
6+
paper: PaperData;
87
index: number;
98
};
109

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { ChangeEvent, useState } from "react";
22
import { HiSearch } from "react-icons/hi";
3-
import "../../App.css";
3+
import "../App.css";
44

55
interface SearchBarProps {
66
onSearch: (value: string) => void // Callback to send out search value

web/src/pages/ModifyPage.tsx

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,15 @@
11
import "../App.css";
22
import { Card } from "@nextui-org/react";
3-
import SearchBar from "../components/nav-bar/search-bar";
3+
import SearchBar from "../components/search-bar";
44
import { useEffect, useState } from "react";
55
import { PaperData } from "../types/types";
66
import PaperSliver from "../components/paper-sliver";
7+
import PaperGallery from "../components/paper-gallery";
8+
79

8-
// For testing only. All instances of 'TempPaperData' will be replaced with 'PaperData'
9-
export type TempPaperData = {
10-
id: number;
11-
paper_name: string;
12-
author: string[];
13-
};
1410

1511
export default function ModifyPage() {
16-
const [papers, setPapers] = useState<TempPaperData[]>([
12+
const [papers, setPapers] = useState<PaperData[]>([
1713
{
1814
id: 1,
1915
paper_name:
@@ -26,8 +22,11 @@ export default function ModifyPage() {
2622
"R. Ecoffet",
2723
],
2824
},
25+
2926
]);
3027

28+
const [paperAreaHeight, setPaperAreaHeight] = useState<number>();
29+
3130
const fetchPapers = async (search: string) => {
3231
const token = localStorage.getItem("jwtToken");
3332

@@ -67,18 +66,20 @@ export default function ModifyPage() {
6766
fetchPapers(value);
6867
};
6968

69+
70+
7071
return (
71-
<div className="flex flex-col items-center justify-center">
72+
<div className="flex flex-col items-center h-full">
7273
<div className="bg-[#F4F4F4] w-[70%]">
7374
<div>
7475
<div className="py-[4%] text-4xl">Modify Paper Data</div>
7576
<SearchBar className="pb-4" onSearch={handleSearch} />
7677
<div className="w-full h-8 bg-[#D4D4D4] drop-shadow-md"></div>
7778
</div>
78-
<div>
79-
{papers.map((paper: TempPaperData, index: number) => (
80-
<PaperSliver paper={paper} index={index} />
81-
))}
79+
<div className="">
80+
<div className="overflow-y-scroll max-h-screen">
81+
<PaperGallery papers={papers}/>
82+
</div>
8283
</div>
8384
</div>
8485
</div>

web/src/types/types.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,19 @@
11
export type PaperData = {
2-
id: number;
3-
paper_name: string;
2+
id: number;
3+
paper_name: string;
4+
author: string[];
5+
/*
46
year: number;
5-
author: string[];
67
part_no: string;
78
type: string;
89
manufacturer: string;
910
testing_location: TestLocation;
1011
testing_type: Testing;
1112
data_type: number;
12-
}
13+
*/
14+
};
1315

1416
export type TestLocation = "Terrestrial" | "Flight";
1517

1618
// Type to ensure testing types are consistent
17-
export type Testing = "SEE" | "TID" | "DD" | "OTHER";
19+
export type Testing = "SEE" | "TID" | "DD" | "OTHER";

0 commit comments

Comments
 (0)