Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
177 changes: 123 additions & 54 deletions src/resources/Resources.js
Original file line number Diff line number Diff line change
@@ -1,68 +1,137 @@

import { BookOnline } from "@mui/icons-material";
import React, { useState, useEffect, useRef } from "react";
import { useState } from "react";
import { tutorialsMap, readingsMap, organizationsMap } from "./fakeData";
import "./resources.css";
import Tutorials from './Tutorials.js';
import Research from './Research';
import Organizations from './Organizations';


const Resources = () => {
return (
<div className="resources-container">
<h1 className="resource-title">Resources</h1>
<Tab className="tab-components"/>
</div>
);
};
function Resources() {
return (
<div className="resources-container">
<Tab />
</div>
);
}
export default Resources;

function Tab() {
const [tabState, setTab] = useState(1)
// List of buttons
const buttonsList = ["Tutorials", "Readings", "Organization"];

const toggleTab = (index) => {
setTab(index)
}
// Render button
function renderButtons(toggleTab, tabState) {
return buttonsList.map(tabButton => {
return (
<button
key={buttonsList.indexOf(tabButton) + 1}
type="button"
onClick={() => toggleTab(buttonsList.indexOf(tabButton) + 1)}
className={
tabState === buttonsList.indexOf(tabButton) + 1 ? "active" : ""
}
>
{tabButton}
</button>
);
});
}

function renderTutorialContents(tabState) {
const contents = tutorialsMap.map(tutorial => {
return (
<li key={tutorial.id}>
<h3>{tutorial.title}</h3>
<p>{tutorial.description}</p>
<video controls muted>
<source src={tutorial.url} type="video/mp4" alt="text" />
</video>
<ul>
<li>{tutorial.tags}</li>
</ul>
</li>
);
});
return (
<div
className={
tabState === 1 ? "resources-content active" : "resources-content"
}
>
{contents}
</div>
);
}

return (
<div className='tab-container'>
{/*
<Link to='/resources/tutorials' className='tab-button'>Tutorials</Link>
<Link to='resources/research' className='tab-button'>Research</Link>
<Link to='resources/organizations' className='tab-button'>Organizations</Link>
*/}
<div className='tabs'>
<button type='button' onClick={() => toggleTab(1)} className={tabState === 1 ? 'tab-button active' : 'tab-button'}>Tutorials</button>
<button type='button' onClick={() => toggleTab(2)} className={tabState === 2 ? 'tab-button active' : 'tab-button'}>Research</button>
<button type='button' onClick={() => toggleTab(3)} className={tabState === 3 ? 'tab-button active' : 'tab-button'}>Organizations</button>
</div>
function renderReadingsContent(tabState) {
const contents = readingsMap.map(reading => {
return (
<li key={reading.id}>
<h3>Title: {reading.title}</h3>
<button type="button">{reading.publicationDate}</button>
<p>Description: {reading.description}</p>
<p>
<a href={reading.url}>Get Content</a>
</p>
<ul>
<li>{reading.tags}</li>
</ul>
</li>
);
});

<div className="tab-contents">
<div className={tabState === 1 ? 'tab-content active-content': 'tab-content'}>
<h2>Tutorials</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
</p>
</div>
return (
<div
className={
tabState === 2 ? "resources-content active" : "resources-content"
}
>
{contents}
</div>
);
}

function renderOrganizationsContent(tabState) {
const contents = organizationsMap.map(org => {
return (
<li key={org.id}>
<h3>{org.title}</h3>
<p>{org.description}</p>
<a type="button" href={org.url}>
Get Link
</a>
<ul>
<li>{org.tags}</li>
</ul>
</li>
);
});

return (
<div
className={
tabState === 3 ? "resources-content active" : "resources-content"
}
>
{contents}
</div>
);
}

function Tab() {
const [tabState, setTab] = useState(1);

<div className={tabState === 2 ? 'tab-content active-content': 'tab-content'}>
<h2>Research</h2>
<p>Something about Early Research Scholars Programs.
</p>
</div>
const toggleTab = index => {
setTab(index);
};

<div className={tabState === 3 ? 'tab-content active-content': 'tab-content'}>
<h2>Organizations</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit,
sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris
nisi ut aliquip ex ea commodo consequat.
</p>
</div>
</div>
</div>
)
return (
<>
<div className="resources-tabs">{renderButtons(toggleTab, tabState)}</div>
<div className="resources-contents">
{renderTutorialContents(tabState)}
{renderReadingsContent(tabState)}
{renderOrganizationsContent(tabState)}
</div>
</>
);
}