Skip to content
Open

Css #15

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
45879bd
All athletes
qdesgardinvp Nov 14, 2022
cb6eda6
init router
guileveque Nov 14, 2022
e072172
Merge branch 'main' of github.com:Rui-Error404/reactjs
guileveque Nov 14, 2022
98eec74
update
zorgness Nov 14, 2022
c6e3324
update
zorgness Nov 14, 2022
4d084c6
update
zorgness Nov 14, 2022
81f5403
navigation router
guileveque Nov 14, 2022
e1be342
refacto athlete
guileveque Nov 14, 2022
b982599
Merge branch 'main' of github.com:Rui-Error404/reactjs
zorgness Nov 14, 2022
d6d2d9c
json sponsors
Rui-Error404 Nov 14, 2022
6c2f8e3
Merge pull request #1 from Rui-Error404/rui
Rui-Error404 Nov 14, 2022
519bcda
merge
zorgness Nov 14, 2022
0eb2cd0
athlete listing
guileveque Nov 14, 2022
722e42e
Merge branch 'main' into athlete-list
guileveque Nov 14, 2022
03b37a8
Merge pull request #2 from Rui-Error404/athlete-list
guileveque Nov 14, 2022
6112cf7
sponsors index
zorgness Nov 14, 2022
d37c2b8
Merge pull request #3 from Rui-Error404/sponsors_index
zorgness Nov 14, 2022
58a71eb
about page
sachabojanowski Nov 14, 2022
55ea582
about page
sachabojanowski Nov 14, 2022
fe4cb03
Merge pull request #4 from Rui-Error404/about
sachabojanowski Nov 14, 2022
dbf7680
sponsor item
zorgness Nov 14, 2022
d5f0efd
Merge pull request #5 from Rui-Error404/sponsors_show
zorgness Nov 14, 2022
ca1772d
update_on_sponsor_item
zorgness Nov 14, 2022
50e0d2b
update on sponsor item
zorgness Nov 15, 2022
d1ad02d
wip card
guileveque Nov 15, 2022
a76f0f9
Merge pull request #6 from Rui-Error404/update_on_sponsor_item
zorgness Nov 15, 2022
6cdfc98
Merge branch 'main' into card-bootstrap
guileveque Nov 15, 2022
9632ed7
wip card athlete
guileveque Nov 15, 2022
bbf82fb
Merge pull request #7 from Rui-Error404/card-bootstrap
guileveque Nov 15, 2022
b9c23af
css file + sponsor.css + import to app.css
sachabojanowski Nov 15, 2022
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
20,079 changes: 16,447 additions & 3,632 deletions front/package-lock.json

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions front/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
"@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^13.4.0",
"@testing-library/user-event": "^13.5.0",
"bootstrap": "^5.2.2",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-router-dom": "^6.4.3",
"react-scripts": "5.0.1",
"web-vitals": "^2.1.4"
},
Expand Down
1 change: 1 addition & 0 deletions front/public/athletes.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions front/public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />

<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Expand Down
23 changes: 23 additions & 0 deletions front/src/App.css
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
@import url(./stylesheets/sponsor.css);

.App {
text-align: center;
}
Expand Down Expand Up @@ -36,3 +38,24 @@
transform: rotate(360deg);
}
}

.column-sponsor {
background: #fff;
max-width: 50%;
width: 50%;
height: 100vh;
overflow-x: scroll;
overflow-y: scroll;
overflow: scroll;
&::-webkit-scrollbar {
display: none;
}
}
&:last-child {
background: black;
border-top: 1px solid rgba(255,255,255,0.5);
}
@media (max-width: 600px) {
max-width: 100%;
width: 100%;
}
22 changes: 6 additions & 16 deletions front/src/App.js
Original file line number Diff line number Diff line change
@@ -1,23 +1,13 @@
import logo from './logo.svg';
import './App.css';
import logo from "./logo.svg";
import "./App.css";
import Router from "./Router";
import "bootstrap/dist/css/bootstrap.min.css";
import "bootstrap/dist/js/bootstrap.min.js";

function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.js</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
<Router />
</div>
);
}
Expand Down
20 changes: 20 additions & 0 deletions front/src/Router.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import React from "react";
import Home from "./components/Home";
import { BrowserRouter, Route, Routes } from "react-router-dom";
import Sponsor from "./components/Sponsor/Sponsor";
import Athlete from "./components/Athlete/Athlete";
const Router = () => {
return (
<div>
<BrowserRouter>
<Routes>
<Route exact path="/" element={<Home />} />
<Route path="/sponsor" element={<Sponsor />} />
<Route path="/athlete" element={<Athlete />} />
</Routes>
</BrowserRouter>
</div>
);
};

export default Router;
68 changes: 68 additions & 0 deletions front/src/components/Athlete/Athlete.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
import React, {useState} from "react";
import Navigation from "../Navigation";
import athlete from "../../database/athlete.json"
import AthleteItem from "./AthleteItem";

const Athlete = () => {

const initialState = {
about: "",
company: "",
sports: [],
phone: "",
isActive: ""
}



const [selected, setSelected] = useState([initialState])

const handleClick = (id) => {
console.log(id);
setSelected(athlete.filter(element => element.recordid === id))
}

return (
<div >
Sponsor
<Navigation />

<div className="d-flex mt-5">

<div className="d-flex flex-column align-items-center gap-3 column-sponsor">
{
athlete.map((v) => {
return (

<div key={v.recordid}
className="card rounded"
style={{width: '18rem'}}
onClick={() => handleClick(v.recordid)}
>
<img src={"https://www.radiofrance.fr/s3/cruiser-production/2022/11/b4a8652e-ce65-4dbf-b9f2-70f9c2c07ba9/560x315_capture-d-ecran-2022-11-14-111004.jpg"} className="card-img-top" />
<div className="card-body">
<h3 className="card-title">{v.fields.prenom} {v.fields.nom}</h3>
<p className="card-text">{v.fields.sport}</p>
</div>
</div>

)
})

}
</div>

<div className="column-sponsor border border-primary rounded">

<AthleteItem sponsor={selected} />

</div>

</div>



</div>)
}

export default Athlete;
79 changes: 79 additions & 0 deletions front/src/components/Athlete/AthleteItem.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
import React, {Fragment} from 'react'
import AthleteModal from './AthleteModal'

const AthleteItem = ({athlete}) => {


//const {about, company, sports, email, phone, address, isActive, created_date} = sponsor?.[0]

const isEmpty = (obj) => Object.values(obj).every(x => x.length < 1)

const dateFormated = date => {

if(date === undefined) return

const formated = date.split('T')[0].split('-').reverse().join('/ ')

return formated
}


const displayData = (

<Fragment>

<div className='d-flex justify-content-between'>
{
true
? <div className='text-success mx-3'>Offre valable</div>
: <div className='text-danger mx-3'>L'Offre est cloturée</div>
}

{/* <div className='mx-3'>
{
dateFormated(created_date)
}
</div> */}
</div>


<h2>{"titre"}</h2>

<div className='mx-3' >
<h4>About us</h4>
<p className='text-start'>description variable</p>



<div className="mt-3">
{
true && <AthleteModal company={"variable"} />
}
</div>


<div className='d-flex justify-content-between mt-3'>
<p>{"name"}</p>
<p>{"name"}</p>
</div>
<div>
<p>{"other information"}</p>
</div>
</div>
</Fragment>

)

return (

<div >
{
displayData
}

</div>

)
}

export default AthleteItem
53 changes: 53 additions & 0 deletions front/src/components/Athlete/AthleteModal.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import React, { useState } from 'react';


const AthleteModal = ({company}) => {

const [show, setShow] = useState(false);

const handleClose = () => setShow(false);
const handleShow = () => setShow(true);

console.log(show)

return (
<>

<button type="button"
className="btn btn-success"
data-bs-toggle="modal"
data-bs-target="#exampleModal"
onClick={() => handleShow()}>
Envoyer votre demande
</button>


{ show &&

<div className="modal fade" id="exampleModal" tabIndex="-1" aria-labelledby="exampleModalLabel" aria-hidden="true">
<div className="modal-dialog modal-dialog-centered">
<div className="modal-content">
<div className="modal-header">
<h5 className="modal-title" id="exampleModalLabel">Confirmation</h5>
<button
type="button"
className="btn-close"
data-bs-dismiss="modal"
aria-label="Close"
onClick={handleClose}
></button>
</div>
<div className="modal-body">
Votre demande a bien etait envoyée à {company}
</div>
<div className="modal-footer">
<button type="button" className="btn btn-secondary" data-bs-dismiss="modal">Close</button>
</div>
</div>
</div>
</div>}
</>
)
}

export default AthleteModal
24 changes: 24 additions & 0 deletions front/src/components/Home.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import React from "react";
import Navigation from "./Navigation";
import { useNavigate } from "react-router-dom";
const Home = () => {

const navigate = useNavigate();

const handleSubmit = () => navigate('/sponsor');

return <div>
Home
<Navigation />

<div className="m-5 text-end">
<form onSubmit={handleSubmit}>
<input type="text" placeholder="" />
<input type="submit" className="btn btn-primary"/>
</form>
</div>

</div>;
};

export default Home;
14 changes: 14 additions & 0 deletions front/src/components/Navigation.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
import React from "react";
import { useNavigate } from "react-router-dom";

const Navigation = () =>{
const navigate = useNavigate();

return(<div>
<button onClick={() => navigate("/")} className="btn btn-primary">Home</button>
<button onClick={() => navigate("/athlete")}>Athlete</button>
<button onClick={() => navigate("/sponsor")}>Sponsor</button>
</div>)
}

export default Navigation;
Loading