Skip to content
Snippets Groups Projects
Commit 4da0e37d authored by danieldeng2's avatar danieldeng2
Browse files

Populate resource cards with data from data structure

parent 7bbeb609
No related branches found
No related tags found
No related merge requests found
...@@ -9,21 +9,34 @@ import Card from "react-bootstrap/Card"; ...@@ -9,21 +9,34 @@ import Card from "react-bootstrap/Card";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faFile } from "@fortawesome/free-solid-svg-icons"; import { faFile } from "@fortawesome/free-solid-svg-icons";
const FileCard: React.FC = () => { export interface FileCardProps {
title: string;
type: string;
tags: string[];
id: number;
}
const FileCard: React.FC<FileCardProps> = ({
title,
type,
tags,
id,
}: FileCardProps) => {
return ( return (
<Card className={styles.quickViewCard}> <Card className={styles.quickViewCard}>
<Card.Img variant="top" src={graphIllustration} /> <Card.Img variant="top" src={graphIllustration} />
<Card.Body> <Card.Body>
<Card.Title>Document</Card.Title> <Card.Title>{title}</Card.Title>
<FontAwesomeIcon style={{ fontSize: "1.125rem" }} icon={faFile} /> <FontAwesomeIcon style={{ fontSize: "1.125rem" }} icon={faFile} />
</Card.Body> </Card.Body>
<Card.Footer> <Card.Footer>
<Badge pill className={classNames(styles.quickViewTag, styles.tagTeal)}> {
New tags.map(tag =>
</Badge> <Badge pill className={classNames(styles.quickViewTag, tag==="new" ? styles.tagTeal : styles.tagBlue)}>
<Badge pill className={classNames(styles.quickViewTag, styles.tagBlue)}> {tag}
Week 1 </Badge>
</Badge> )
}
</Card.Footer> </Card.Footer>
</Card> </Card>
); );
......
...@@ -4,11 +4,17 @@ import Card from "react-bootstrap/Card"; ...@@ -4,11 +4,17 @@ import Card from "react-bootstrap/Card";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { faFolder } from "@fortawesome/free-solid-svg-icons"; import { faFolder } from "@fortawesome/free-solid-svg-icons";
const FolderCard: React.FC = () => { export interface FolderCardProps{
title: string;
id: number;
}
const FolderCard: React.FC<FolderCardProps> = ({title, id}: FolderCardProps) => {
return ( return (
<Card className={styles.folderCard}> <Card className={styles.folderCard}>
<Card.Body style={{ padding: ".6rem" }}> <Card.Body style={{ padding: ".6rem" }}>
<Card.Text style={{ marginBottom: 0 }}>Folder</Card.Text> <Card.Text style={{ marginBottom: 0 }}>{title}</Card.Text>
<FontAwesomeIcon style={{ fontSize: "1.125rem" }} icon={faFolder} /> <FontAwesomeIcon style={{ fontSize: "1.125rem" }} icon={faFolder} />
</Card.Body> </Card.Body>
</Card> </Card>
......
...@@ -6,11 +6,21 @@ import Row from "react-bootstrap/esm/Row"; ...@@ -6,11 +6,21 @@ import Row from "react-bootstrap/esm/Row";
import Col from "react-bootstrap/esm/Col"; import Col from "react-bootstrap/esm/Col";
import ResourceSectionHeader from "../ResourceSectionHeader"; import ResourceSectionHeader from "../ResourceSectionHeader";
import FileCard from "components/atoms/FileCard"; import FileCard from "components/atoms/FileCard";
export interface QuickAccessProps {
quickAccessItems: {
title: string;
type: string;
tags: string[];
id: number;
}[];
}
const QuickAccess: React.FC = () => { const QuickAccess: React.FC<QuickAccessProps> = ({
quickAccessItems,
}: QuickAccessProps) => {
return ( return (
<> <>
<ResourceSectionHeader heading="Quick Access"/> <ResourceSectionHeader heading="Quick Access" />
<Row <Row
className={classNames( className={classNames(
...@@ -20,17 +30,17 @@ const QuickAccess: React.FC = () => { ...@@ -20,17 +30,17 @@ const QuickAccess: React.FC = () => {
styles.quickAccessRow styles.quickAccessRow
)} )}
> >
{[...Array(10)].map((e, i) => ( {quickAccessItems.map(({ title, type, tags, id }) => (
<Col <Col
xs={7} xs={7}
sm={5} sm={5}
md={5} md={5}
lg={4} lg={4}
xl={3} xl={3}
key={i} key={id}
style={{marginBottom: ".5rem"}} style={{ marginBottom: ".5rem" }}
> >
<FileCard/> <FileCard title={title} type={type} tags={tags} id={id} />
</Col> </Col>
))} ))}
</Row> </Row>
......
...@@ -4,15 +4,22 @@ import Col from "react-bootstrap/esm/Col"; ...@@ -4,15 +4,22 @@ import Col from "react-bootstrap/esm/Col";
import ResourceSectionHeader from "../ResourceSectionHeader"; import ResourceSectionHeader from "../ResourceSectionHeader";
import FolderCard from "components/atoms/FolderCard"; import FolderCard from "components/atoms/FolderCard";
const ResourceFolders: React.FC = () => { export interface ResourceFoldersProps{
folderItems: {
title: string;
id: number;
}[];
}
const ResourceFolders: React.FC<ResourceFoldersProps> = ({folderItems}: ResourceFoldersProps) => {
return ( return (
<> <>
<ResourceSectionHeader heading="Folders" /> <ResourceSectionHeader heading="Folders" />
<Row style={{ marginTop: "10px" }}> <Row style={{ marginTop: "10px" }}>
{[...Array(10)].map((e, i) => ( {folderItems.map(({title, id}) => (
<Col xs={6} sm={6} md={3} key={i}> <Col xs={6} sm={6} md={3} key={id}>
<FolderCard/> <FolderCard title={title} id={id}/>
</Col> </Col>
))} ))}
</Row> </Row>
......
...@@ -6,13 +6,77 @@ import InputGroup from "react-bootstrap/InputGroup"; ...@@ -6,13 +6,77 @@ import InputGroup from "react-bootstrap/InputGroup";
import FormControl from "react-bootstrap/FormControl"; import FormControl from "react-bootstrap/FormControl";
import Button from "react-bootstrap/Button"; import Button from "react-bootstrap/Button";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
import { import { faInfoCircle } from "@fortawesome/free-solid-svg-icons";
faInfoCircle,
} from "@fortawesome/free-solid-svg-icons";
import QuickAccess from "components/molecules/QuickAccess"; import QuickAccess from "components/molecules/QuickAccess";
import ResourceFolders from "components/molecules/ResourceFolders"; import ResourceFolders from "components/molecules/ResourceFolders";
const ModuleResources: React.FC = () => { const ModuleResources: React.FC = () => {
let folderItems = [
{
title: "Lecture Materials",
id: 0,
},
{
title: "Panopto Videos",
id: 1,
},
{
title: "Tutorial Sheets",
id: 2,
},
{
title: "Code",
id: 3,
},
{
title: "Useful Links",
id: 4,
},
{
title: "Other",
id: 5,
},
];
let quickAccessItems = [
{
title: "Notes 1",
type: "File",
tags:["new", "Week 1"],
id: 0,
},
{
title: "Slides 1 - 1UP",
type: "File",
tags:["new", "Week 2"],
id: 1,
},
{
title: "Circuit simulator",
type: "Link",
tags:["new", "Week 2"],
id: 2,
},
{
title: "C - Lecture 1",
type: "Panopto",
tags:["new"],
id: 3,
},
{
title: "Translation Validity",
type: "Link",
tags:["Week 2"],
id: 4,
},
{
title: "Revision Exercises",
type: "File",
tags:["Week 3"],
id: 5,
},
]
return ( return (
<> <>
<MyBreadcrumbs /> <MyBreadcrumbs />
...@@ -29,8 +93,8 @@ const ModuleResources: React.FC = () => { ...@@ -29,8 +93,8 @@ const ModuleResources: React.FC = () => {
</InputGroup.Append> </InputGroup.Append>
</InputGroup> </InputGroup>
<QuickAccess /> <QuickAccess quickAccessItems={quickAccessItems}/>
<ResourceFolders/> <ResourceFolders folderItems={folderItems}/>
</> </>
); );
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment