feat(images): migrate images from r2 to local storage

- Removed references to images hosted on r2
- Updated image paths to use local storage
- Ensured all components and pages reference the new local image paths
This commit is contained in:
2025-02-10 20:16:55 +01:00
parent 1b684c9cba
commit 066deccd2a
13 changed files with 76 additions and 76 deletions

View File

@@ -6,7 +6,7 @@ import { Banner } from '../../src/components/banner/banner';
describe('<Banner />', () => {
it('renders the first Banner component correctly', () => {
const image = {
src: 'https://r2.modelec.club/coupe-2024.png',
src: '/assets//coupe-2024.png',
alt: 'Modelec Photo',
};
const header = 'Qui sommes-nous ?';
@@ -28,7 +28,7 @@ describe('<Banner />', () => {
it('renders the second Banner component correctly', () => {
const image = {
src: 'https://r2.modelec.club/isen_group_photo.png',
src: '/assets//isen_group_photo.png',
alt: "Photo de groupe à l'ISEN",
};
const header = 'Une question ?';

View File

@@ -7,7 +7,7 @@ describe('<Box />', () => {
const elements = [
{
type: 'image',
src: 'https://r2.modelec.club/serge-pixel.png',
src: '/assets//serge-pixel.png',
alt: 'Serge Pixel',
},
{ type: 'data', data: '14e', subtext: '/82 équipes' },

View File

@@ -7,13 +7,13 @@ describe('<Carousel />', () => {
const carouselItems = [
{
image:
'https://r2.modelec.club/Selection%20site/IMG_20231027_221105.jpg',
'/assets/IMG_20231027_221105.jpg',
title: 'Lorem Ipsum',
text: 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla nec purus feugiat, vestibulum neque et, vehicula justo.',
},
{
image:
'https://r2.modelec.club/Selection%20site/IMG_20231116_192517.jpg',
'/assets/IMG_20231116_192517.jpg',
title: 'Fusce et sem',
text: 'Fusce et sem nec nunc luctus tincidunt. Nullam sit amet neque sed elit fermentum efficitur.',
},

View File

@@ -7,7 +7,7 @@ describe('<Partner />', () => {
cy.mount(
<Partner
name={'ISEN Nantes'}
logo={'https://r2.modelec.club/isen.png'}
logo={'/assets//isen.png'}
texts={[
<>
L'ISEN Nantes est une école d'ingénieurs généraliste en 5 ans. Elle
@@ -16,7 +16,7 @@ describe('<Partner />', () => {
disposition un local pour travailler sur nos projets.
</>,
]}
photos={['https://r2.modelec.club/ISEN-2.jpg']}
photos={['/assets//ISEN-2.jpg']}
link={'https://isen-nantes.fr'}
/>
);
@@ -26,7 +26,7 @@ describe('<Partner />', () => {
cy.get('.partner-logo').should(
'have.attr',
'src',
'https://r2.modelec.club/isen.png'
'/assets//isen.png'
);
cy.get('.partner-text').should(
'contain.text',
@@ -35,7 +35,7 @@ describe('<Partner />', () => {
cy.get('.partner-photos img').should(
'have.attr',
'src',
'https://r2.modelec.club/ISEN-2.jpg'
'/assets//ISEN-2.jpg'
);
cy.get('.partner-link').should(
'have.attr',
@@ -48,7 +48,7 @@ describe('<Partner />', () => {
cy.mount(
<Partner
name={'MercuryCloud'}
logo={'https://r2.modelec.club/mercurycloud.png'}
logo={'/assets//mercurycloud.png'}
texts={[
<>
MercuryCloud est un hébergeur web, de vps ainsi que de serveur de
@@ -56,7 +56,7 @@ describe('<Partner />', () => {
pour héberger certains service dont ce site web.
</>,
]}
photos={['https://r2.modelec.club/MercuryCloud.jpg']}
photos={['/assets//MercuryCloud.jpg']}
link={'https://mercurycloud.fr/aff.php?aff=14'}
/>
);
@@ -66,7 +66,7 @@ describe('<Partner />', () => {
cy.get('.partner-logo').should(
'have.attr',
'src',
'https://r2.modelec.club/mercurycloud.png'
'/assets//mercurycloud.png'
);
cy.get('.partner-text').should(
'contain.text',
@@ -75,7 +75,7 @@ describe('<Partner />', () => {
cy.get('.partner-photos img').should(
'have.attr',
'src',
'https://r2.modelec.club/MercuryCloud.jpg'
'/assets//MercuryCloud.jpg'
);
cy.get('.partner-link').should(
'have.attr',
@@ -88,7 +88,7 @@ describe('<Partner />', () => {
cy.mount(
<Partner
name={'Odyssey BDE'}
logo={'https://r2.modelec.club/bde.png'}
logo={'/assets//bde.png'}
texts={[
<>
Le BDE de l'ISEN Nantes, Odyssey, est un partenaire de longue date.
@@ -96,7 +96,7 @@ describe('<Partner />', () => {
soutiennent dans nos projets.
</>,
]}
photos={['https://r2.modelec.club/Odyseey.JPEG']}
photos={['/assets//Odyseey.JPEG']}
link={'https://instagram.com/odyssey_bde'}
/>
);
@@ -106,7 +106,7 @@ describe('<Partner />', () => {
cy.get('.partner-logo').should(
'have.attr',
'src',
'https://r2.modelec.club/bde.png'
'/assets//bde.png'
);
cy.get('.partner-text').should(
'contain.text',
@@ -115,7 +115,7 @@ describe('<Partner />', () => {
cy.get('.partner-photos img').should(
'have.attr',
'src',
'https://r2.modelec.club/Odyseey.JPEG'
'/assets//Odyseey.JPEG'
);
cy.get('.partner-link').should(
'have.attr',

View File

@@ -11,22 +11,22 @@ describe('<Team />', () => {
{
name: 'Maxime Chauveau',
role: 'Président',
image: 'https://r2.modelec.club/maxime.png',
image: '/assets//maxime.png',
},
{
name: 'Vincent Rocher',
role: 'Vice-Président',
image: 'https://r2.modelec.club/vincent.jpg',
image: '/assets//vincent.jpg',
},
{
name: 'Felix Marquet',
role: 'Secrétaire',
image: 'https://r2.modelec.club/felix.png',
image: '/assets//felix.png',
},
{
name: 'Florent Butery',
role: 'Trésorier',
image: 'https://r2.modelec.club/flo.jpg',
image: '/assets//flo.jpg',
},
],
},
@@ -36,17 +36,17 @@ describe('<Team />', () => {
{
name: 'Cléo Sionville',
role: 'Communication',
image: 'https://r2.modelec.club/cleo.jpg',
image: '/assets//cleo.jpg',
},
{
name: 'Arthur Grossmann-Le Mauguen',
role: 'Evenementiel',
image: 'https://r2.modelec.club/arthur.png',
image: '/assets//arthur.png',
},
{
name: 'Allan Cueff',
role: 'Partenariat',
image: 'https://r2.modelec.club/allan.png',
image: '/assets//allan.png',
},
],
},

View File

@@ -19,13 +19,13 @@ describe('<Timeline />', () => {
cards: [
{
type: 'image',
src: 'https://r2.modelec.club/Bureau/IMG_3881.PNG',
src: '/assets//Bureau/IMG_3881.PNG',
alt: 'Table de jeu pour la Coupe de France de Robotique',
fit: 'cover',
},
{
type: 'image',
src: 'https://r2.modelec.club/Bureau/IMG_3882.PNG',
src: '/assets//Bureau/IMG_3882.PNG',
alt: 'Table de jeu pour la Coupe de France de Robotique',
fit: 'cover',
},
@@ -34,7 +34,7 @@ describe('<Timeline />', () => {
{
title: 'Serge : Notre robot',
date: '2024',
banner: 'https://r2.modelec.club/serge.png',
banner: '/assets//serge.png',
paragraphs: [
<>
Voici Serge, notre robot pour la{' '}
@@ -70,7 +70,7 @@ describe('<Timeline />', () => {
{ type: 'stat', data: '14', label: '/82 équipes' },
{
type: 'image',
src: 'https://r2.modelec.club/cdf.png',
src: '/assets//cdf.png',
alt: 'Logo Coupe de France de Robotique',
fit: 'contain',
},
@@ -91,7 +91,7 @@ describe('<Timeline />', () => {
cards: [
{
type: 'image',
src: 'https://r2.modelec.club/PAMI-V1.png',
src: '/assets//PAMI-V1.png',
alt: 'PAMI v1',
fit: 'cover',
},
@@ -112,25 +112,25 @@ describe('<Timeline />', () => {
cards: [
{
type: 'image',
src: 'https://r2.modelec.club/table2024.jpg',
src: '/assets//table2024.jpg',
alt: 'Table de jeu pour la Coupe de France de Robotique',
fit: 'cover',
},
{
type: 'image',
src: 'https://r2.modelec.club/Table/20231102_163959.jpg',
src: '/assets//Table/20231102_163959.jpg',
alt: 'Table de jeu pour la Coupe de France de Robotique',
fit: 'cover',
},
{
type: 'image',
src: 'https://r2.modelec.club/Table/20231102_164300.jpg',
src: '/assets//Table/20231102_164300.jpg',
alt: 'Table de jeu pour la Coupe de France de Robotique',
fit: 'cover',
},
{
type: 'image',
src: 'https://r2.modelec.club/Table/IMG_20231202_160702.jpg',
src: '/assets//Table/IMG_20231202_160702.jpg',
alt: 'Table de jeu pour la Coupe de France de Robotique',
fit: 'cover',
},

View File

@@ -28,7 +28,7 @@ export const Footer: React.FC = () => {
<div className={'footer-content'}>
<LazyLoadImage
className={'footer-logo'}
src={'https://r2.modelec.club/logo.png'}
src={'/assets/logo.png'}
alt={'Modelec'}
/>
<div className={'footer-part'}>

View File

@@ -70,12 +70,12 @@ export const Navbar = () => {
<Link to={'/'} className={'navbar-logo'}>
<LazyLoadImage
className={'navbar-logo-img img_large'}
src={'https://r2.modelec.club/logo-full.png'} // TODO: Change to SVG logo / import it from assets
src={'/assets//logo-full.png'} // TODO: Change to SVG logo / import it from assets
alt={'Modelec Logo'}
/>
<LazyLoadImage
className={'navbar-logo-img img_small'}
src={'https://r2.modelec.club/logo.png'} // TODO: Change to SVG logo / import it from assets
src={'/assets//logo.png'} // TODO: Change to SVG logo / import it from assets
alt={'Modelec Logo'}
/>
</Link>

View File

@@ -53,7 +53,7 @@ const Contact: React.FC = () => {
]}
/>
<Banner
image={{ src: "https://r2.modelec.club/isen_group_photo.png", alt: "Photo de groupe à l'ISEN" }}
image={{ src: "/assets//isen_group_photo.png", alt: "Photo de groupe à l'ISEN" }}
header={'Une question ?'}
>
Vous avez une <b>question</b> vis-à-vis de notre <u>club</u> ou de l'un

View File

@@ -17,7 +17,7 @@ const Home: React.FC = () => {
<>
<Banner
image={{
src: 'https://r2.modelec.club/coupe-2024.png',
src: '/assets//coupe-2024.png',
alt: 'Modelec Photo',
}}
header={'Qui sommes-nous ?'}
@@ -59,7 +59,7 @@ const Home: React.FC = () => {
elements={[
{
type: 'image',
src: 'https://r2.modelec.club/serge-pixel.png',
src: '/assets/serge-pixel.png',
alt: 'Serge Pixel',
},
{ type: 'data', data: '14e', subtext: '/82 équipes' },
@@ -87,7 +87,7 @@ const Home: React.FC = () => {
>
<LazyLoadImage
className={'partners-partner-logo'}
src={'https://r2.modelec.club/isen.png'}
src={'/assets/isen.png'}
alt={'ISEN Nantes'}
/>
<span className={'partners-partner-name'}>ISEN Nantes</span>
@@ -99,7 +99,7 @@ const Home: React.FC = () => {
>
<LazyLoadImage
className={'partners-partner-logo'}
src={'https://r2.modelec.club/tracopower.jpeg'}
src={'/assets/tracopower.jpeg'}
alt={'Traco Power'}
/>
<span className={'partners-partner-name'}>Traco Power</span>
@@ -111,7 +111,7 @@ const Home: React.FC = () => {
>
<LazyLoadImage
className={'partners-partner-logo'}
src={'https://r2.modelec.club/mercurycloud.png'}
src={'/assets/mercurycloud.png'}
alt={'Mercury Cloud'}
/>
<span className={'partners-partner-name'}>Mercury Cloud</span>
@@ -123,7 +123,7 @@ const Home: React.FC = () => {
>
<LazyLoadImage
className={'partners-partner-logo'}
src={'https://r2.modelec.club/bde.png'}
src={'/assets//bde.png'}
alt={'BDE Odyssey'}
/>
<span className={'partners-partner-name'}>BDE Odyssey</span>
@@ -145,35 +145,35 @@ const Home: React.FC = () => {
carousel={[
{
image:
'https://r2.modelec.club/Selection%20site/IMG_20231027_221105.jpg',
'/assets/Selection site_IMG_20231027_221105.jpg',
title: 'Drone hexacoptère',
text: "Le drone hexacoptère a été le premier projet du club robotique de l'ISEN Nantes : l'iRobot'Eam. Il est pilotable et conçu pour soupporter des charges lourdes.",
},
{
image:
'https://r2.modelec.club/Selection%20site/IMG_20240326_103107.jpg',
'/assets/Selection site_IMG_20240326_103107.jpg',
title: 'Petits projets',
text: 'Le club est un espace de réalisation pour les projets personnels des élèves mais aussi pour des petits projets de club comme des éléments décoratifs, un robot qui joue au bier pong, un stand photo pour les soirées, etc.',
},
{
image:
'https://r2.modelec.club/Selection%20site/IMG_20240131_170511.jpg',
'/assets/Selection site_IMG_20240131_170511.jpg',
title: 'Electronique',
text: "Nous concevons nos propres circuits électroniques aux fonctionnalités multiples (gestion de l'alimentation, pilotage des actionneurs et des moteurs, etc) afin de les intégrer dans notre robot",
},
{
image: 'https://r2.modelec.club/Selection%20site/IMG_2045.jpg',
image: '/assets/Selection site_IMG_2045.jpg',
title: 'Programmation',
text: 'Nous programmons nos robots en arduino, C et C++. Nous allons utiliser ROS en 2025. Nous développons des algorithmes du simple composant pour piloter des moteurs pas à pas aux algorithmes de prise de décision en passant par des correcteurs PID.',
},
{
image: 'https://r2.modelec.club/Selection%20site/IMG_2122.jpg',
image: '/assets/Selection site_IMG_2122.jpg',
title: 'Manipulations',
text: "Au sein de notre club les étudiants réalisent des soudures, ils peuvent bricoler avec l'outillage ou expérimenter avec des composants électroniques appartenants au club et mis à disposition de tous. ",
},
{
image:
'https://r2.modelec.club/Selection%20site/PXL_20230921_121403004.TS_exported_1603_1695303828223.jpg',
'/assets/Selection site_PXL_20230921_121403004.TS_exported_1603_1695303828223.jpg',
title: 'Présentations',
text: "Nous présentons nos projets aux étudiants de l'école lors du forum des clubs ou des portes ouvertes, nous participons aussi à des salons de makers. Nous avons aussi pour objectif de proposer des visites en milieux industriels aux élèves de l'ISEN.",
},
@@ -190,22 +190,22 @@ const Home: React.FC = () => {
{
name: 'Maxime Chauveau',
role: 'Président',
image: 'https://r2.modelec.club/maxime.png',
image: '/assets//maxime.png',
},
{
name: 'Vincent Rocher',
role: 'Vice-Président',
image: 'https://r2.modelec.club/vincent.jpg',
image: '/assets//vincent.jpg',
},
{
name: 'Felix Marquet',
role: 'Secrétaire',
image: 'https://r2.modelec.club/felix.png',
image: '/assets//felix.png',
},
{
name: 'Florent Butery',
role: 'Trésorier',
image: 'https://r2.modelec.club/flo.jpg',
image: '/assets//flo.jpg',
},
],
},
@@ -215,17 +215,17 @@ const Home: React.FC = () => {
{
name: 'Cléo Sionville',
role: 'Communication',
image: 'https://r2.modelec.club/cleo.jpg',
image: '/assets//cleo.jpg',
},
{
name: 'Arthur Grossmann-Le Mauguen',
role: 'Evenementiel',
image: 'https://r2.modelec.club/arthur.png',
image: '/assets//arthur.png',
},
{
name: 'Allan Cueff',
role: 'Partenariat',
image: 'https://r2.modelec.club/allan.png',
image: '/assets//allan.png',
},
],
},

View File

@@ -10,7 +10,7 @@ const Partenaires: React.FC = () => {
<div className={'partner-list'}>
<Partner
name={'ISEN Nantes'}
logo={'https://r2.modelec.club/isen.png'}
logo={'/assets//isen.png'}
texts={[
<>
L'ISEN Nantes est une école d'ingénieurs généraliste en 5 ans.
@@ -19,13 +19,13 @@ const Partenaires: React.FC = () => {
disposition un local pour travailler sur nos projets.
</>,
]}
photos={['https://r2.modelec.club/ISEN-2.jpg']}
photos={['/assets//ISEN-2.jpg']}
link={'https://isen-nantes.fr'}
/>
<Partner
name={'Traco Power'}
logo={
'https://r2.modelec.club/Traco_Logo_sur_2_lignes-removebg-preview.png'
'/assets//Traco_Logo_sur_2_lignes-removebg-preview.png'
}
texts={[
<>
@@ -37,12 +37,12 @@ const Partenaires: React.FC = () => {
dans la réussite de nos projets électroniques.
</>,
]}
photos={['https://r2.modelec.club/Partenariat_Traco.png']}
photos={['/assets//Partenariat_Traco.png']}
link={'https://www.tracopower.com/fr/fra'}
/>
<Partner
name={'MercuryCloud'}
logo={'https://r2.modelec.club/mercurycloud.png'}
logo={'/assets//mercurycloud.png'}
texts={[
<>
MercuryCloud est un hébergeur web, de vps ainsi que de serveur de
@@ -51,12 +51,12 @@ const Partenaires: React.FC = () => {
de gestion de projet.
</>,
]}
photos={['https://r2.modelec.club/MercuryCloud.jpg']}
photos={['/assets//MercuryCloud.jpg']}
link={'https://mercurycloud.fr/aff.php?aff=14'}
/>
<Partner
name={'Odyssey BDE'}
logo={'https://r2.modelec.club/bde.png'}
logo={'/assets//bde.png'}
texts={[
<>
Le BDE de l'ISEN Nantes, Odyssey, est un partenaire de longue
@@ -64,7 +64,7 @@ const Partenaires: React.FC = () => {
nous soutiennent dans nos projets.
</>,
]}
photos={['https://r2.modelec.club/Odyseey.JPEG']}
photos={['/assets//Odyseey.JPEG']}
link={'https://instagram.com/odyssey_bde'}
/>
</div>

View File

@@ -45,13 +45,13 @@ const Projets: React.FC = () => {
{
type: 'image',
src: 'https://r2.modelec.club/MARCEL/front.PNG',
src: '/assets/MARCEL_front.PNG',
alt: 'Vue de face de Marcel en 3D',
fit: 'cover',
},
{
type: 'image',
src: 'https://r2.modelec.club/MARCEL/back-line.PNG',
src: '/assets/MARCEL_back-line.PNG',
alt: 'Vue de dos de Marcel en 3D',
fit: 'cover',
},
@@ -90,13 +90,13 @@ const Projets: React.FC = () => {
{
type: 'image',
src: 'https://r2.modelec.club/Bureau/IMG_3881.PNG',
src: '/assets/Bureau_IMG_3881.PNG',
alt: 'Table de jeu pour la Coupe de France de Robotique',
fit: 'cover',
},
{
type: 'image',
src: 'https://r2.modelec.club/Bureau/IMG_3882.PNG',
src: '/assets/Bureau_IMG_3882.PNG',
alt: 'Table de jeu pour la Coupe de France de Robotique',
fit: 'cover',
},
@@ -105,7 +105,7 @@ const Projets: React.FC = () => {
{
title: 'Serge : Notre robot',
date: '2024',
banner: 'https://r2.modelec.club/serge.png',
banner: '/assets/serge.png',
paragraphs: [
<>
Voici Serge, notre robot pour la{' '}
@@ -143,7 +143,7 @@ const Projets: React.FC = () => {
{ type: 'stat', data: '14', label: '/82 équipes' },
{
type: 'image',
src: 'https://r2.modelec.club/cdf.png',
src: '/assets/cdf.png',
alt: 'Logo Coupe de France de Robotique',
fit: 'contain',
},
@@ -164,7 +164,7 @@ const Projets: React.FC = () => {
cards: [
{
type: 'image',
src: 'https://r2.modelec.club/PAMI-V1.png',
src: '/assets/PAMI-V1.png',
alt: 'PAMI v1',
fit: 'cover',
},
@@ -185,25 +185,25 @@ const Projets: React.FC = () => {
cards: [
{
type: 'image',
src: 'https://r2.modelec.club/table2024.jpg',
src: '/assets/table2024.jpg',
alt: 'Table de jeu pour la Coupe de France de Robotique',
fit: 'cover',
},
{
type: 'image',
src: 'https://r2.modelec.club/Table/20231102_163959.jpg',
src: '/assets/Table_20231102_163959.jpg',
alt: 'Table de jeu pour la Coupe de France de Robotique',
fit: 'cover',
},
{
type: 'image',
src: 'https://r2.modelec.club/Table/20231102_164300.jpg',
src: '/assets/Table_20231102_164300.jpg',
alt: 'Table de jeu pour la Coupe de France de Robotique',
fit: 'cover',
},
{
type: 'image',
src: 'https://r2.modelec.club/Table/IMG_20231202_160702.jpg',
src: '/assets/Table_IMG_20231202_160702.jpg',
alt: 'Table de jeu pour la Coupe de France de Robotique',
fit: 'cover',
},

View File

@@ -1 +1 @@
{"root":["./src/App.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/banner/banner.tsx","./src/components/box/box.tsx","./src/components/carousel/carousel.tsx","./src/components/contact/contact.tsx","./src/components/partner/partner.tsx","./src/components/socialnetwork/socialnetwork.tsx","./src/components/team/team.tsx","./src/components/timeline/timeline.tsx","./src/hooks/scrollToTop.tsx","./src/hooks/useWindowsSize.tsx","./src/layouts/footer/footer.tsx","./src/layouts/navbar/navbar.tsx","./src/pages/404/404.tsx","./src/pages/contact/Contact.tsx","./src/pages/home/Home.tsx","./src/pages/partenaires/Partenaires.tsx","./src/pages/projets/Projets.tsx"],"version":"5.7.2"}
{"root":["./src/app.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/components/banner/banner.tsx","./src/components/box/box.tsx","./src/components/carousel/carousel.tsx","./src/components/contact/contact.tsx","./src/components/partner/partner.tsx","./src/components/socialnetwork/socialnetwork.tsx","./src/components/team/team.tsx","./src/components/timeline/timeline.tsx","./src/hooks/scrolltotop.tsx","./src/hooks/usewindowssize.tsx","./src/layouts/footer/footer.tsx","./src/layouts/navbar/navbar.tsx","./src/pages/404/404.tsx","./src/pages/contact/contact.tsx","./src/pages/home/home.tsx","./src/pages/partenaires/partenaires.tsx","./src/pages/projets/projets.tsx"],"version":"5.7.2"}