Add IFMG Sectors info
This commit is contained in:
parent
119dd7df4f
commit
1386db20ad
5 changed files with 181 additions and 2 deletions
40
src/components/SectorCard/index.js
Normal file
40
src/components/SectorCard/index.js
Normal file
|
@ -0,0 +1,40 @@
|
||||||
|
import {
|
||||||
|
Card,
|
||||||
|
CardMedia,
|
||||||
|
CardContent,
|
||||||
|
Typography,
|
||||||
|
CardActions,
|
||||||
|
Button,
|
||||||
|
} from '@mui/material';
|
||||||
|
|
||||||
|
import styles from './styles';
|
||||||
|
|
||||||
|
function SectorCard({
|
||||||
|
title,
|
||||||
|
description,
|
||||||
|
coverImage,
|
||||||
|
informationUrl,
|
||||||
|
layoutType,
|
||||||
|
}) {
|
||||||
|
const { card, cardMedia } = styles;
|
||||||
|
return (
|
||||||
|
<Card sx={card}>
|
||||||
|
<CardMedia {...cardMedia} image={coverImage.image} alt={coverImage.alt} />
|
||||||
|
<CardContent sx={layoutType === 'desktop' ? { height: 190 } : null}>
|
||||||
|
<Typography gutterBottom variant="h5" component="div">
|
||||||
|
{title}
|
||||||
|
</Typography>
|
||||||
|
<Typography variant="body2" color="text.secondary">
|
||||||
|
{description}
|
||||||
|
</Typography>
|
||||||
|
</CardContent>
|
||||||
|
<CardActions>
|
||||||
|
<Button href={informationUrl} target="__blank" size="small">
|
||||||
|
Informações
|
||||||
|
</Button>
|
||||||
|
</CardActions>
|
||||||
|
</Card>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default SectorCard;
|
13
src/components/SectorCard/styles.js
Normal file
13
src/components/SectorCard/styles.js
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
const card = {
|
||||||
|
maxWidth: 510,
|
||||||
|
display: 'flex',
|
||||||
|
flexDirection: 'column',
|
||||||
|
justifyContent: 'space-between',
|
||||||
|
};
|
||||||
|
|
||||||
|
const cardMedia = {
|
||||||
|
component: 'img',
|
||||||
|
height: '140',
|
||||||
|
};
|
||||||
|
const styles = { card, cardMedia };
|
||||||
|
export default styles;
|
|
@ -7,11 +7,12 @@ import {
|
||||||
Stack,
|
Stack,
|
||||||
Skeleton,
|
Skeleton,
|
||||||
} from '@mui/material';
|
} from '@mui/material';
|
||||||
|
import SectorCard from '../../components/SectorCard';
|
||||||
import { createArrayFrom1ToN } from '../../utils/createArrayFrom1ToN';
|
import { createArrayFrom1ToN } from '../../utils/createArrayFrom1ToN';
|
||||||
|
|
||||||
import styles from './styles';
|
import styles from './styles';
|
||||||
|
|
||||||
function View({ faq, layoutType }) {
|
function View({ faq, sectors, layoutType }) {
|
||||||
const {
|
const {
|
||||||
stackContainer,
|
stackContainer,
|
||||||
skeletonTitle,
|
skeletonTitle,
|
||||||
|
@ -20,6 +21,8 @@ function View({ faq, layoutType }) {
|
||||||
accordionSkeletonStack,
|
accordionSkeletonStack,
|
||||||
title,
|
title,
|
||||||
accordionSummary,
|
accordionSummary,
|
||||||
|
sectorsTitle,
|
||||||
|
sectorsStack,
|
||||||
} = styles[layoutType];
|
} = styles[layoutType];
|
||||||
|
|
||||||
if (layoutType === 'desktop') {
|
if (layoutType === 'desktop') {
|
||||||
|
@ -59,6 +62,18 @@ function View({ faq, layoutType }) {
|
||||||
) : (
|
) : (
|
||||||
<h1>Nenhuma pergunta encontrada</h1>
|
<h1>Nenhuma pergunta encontrada</h1>
|
||||||
)}
|
)}
|
||||||
|
<h1 style={sectorsTitle}>Setores do IFMG Campus Sabará</h1>
|
||||||
|
<Stack {...sectorsStack}>
|
||||||
|
{sectors.map(sector => (
|
||||||
|
<SectorCard
|
||||||
|
key={sector.title}
|
||||||
|
title={sector.title}
|
||||||
|
description={sector.description}
|
||||||
|
coverImage={sector.coverImage}
|
||||||
|
informationUrl={sector.informationUrl}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
</Stack>
|
||||||
</Stack>
|
</Stack>
|
||||||
);
|
);
|
||||||
} else if (layoutType === 'mobile') {
|
} else if (layoutType === 'mobile') {
|
||||||
|
@ -98,6 +113,18 @@ function View({ faq, layoutType }) {
|
||||||
) : (
|
) : (
|
||||||
<h1>Nenhuma pergunta encontrada</h1>
|
<h1>Nenhuma pergunta encontrada</h1>
|
||||||
)}
|
)}
|
||||||
|
<h1 style={sectorsTitle}>Setores do IFMG Campus Sabará</h1>
|
||||||
|
<Stack {...sectorsStack}>
|
||||||
|
{sectors.map(sector => (
|
||||||
|
<SectorCard
|
||||||
|
key={sector.title}
|
||||||
|
title={sector.title}
|
||||||
|
description={sector.description}
|
||||||
|
coverImage={sector.coverImage}
|
||||||
|
informationUrl={sector.informationUrl}
|
||||||
|
/>
|
||||||
|
))}
|
||||||
|
</Stack>
|
||||||
</Stack>
|
</Stack>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,76 @@ function Information() {
|
||||||
getClassrooms();
|
getClassrooms();
|
||||||
}, [fetchFAQ]);
|
}, [fetchFAQ]);
|
||||||
|
|
||||||
return <View faq={faq} layoutType={layoutType} />;
|
const sectors = [
|
||||||
|
{
|
||||||
|
title: 'Controle e Registro Acadêmico (CRA)',
|
||||||
|
description:
|
||||||
|
'Realiza atividades como a expedição de históricos escolares, declarações de matrícula, diplomas, desligamento de curso, dispensas de disciplinas e outros requerimentos diversos.',
|
||||||
|
informationUrl:
|
||||||
|
'https://www.ifmg.edu.br/sabara/ensino-pesquisa-e-extensao/controle-e-registro-academico',
|
||||||
|
coverImage: {
|
||||||
|
image: 'https://pixabay.com/images/download/archive-1850170_640.jpg',
|
||||||
|
alt: 'Fotografia de uma sala cheia de arquivos',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Núcleo de Apoio Educacional (NAE)',
|
||||||
|
description:
|
||||||
|
'O Núcleo de Apoio Educacional – NAE é o setor que oferece suporte e assessoria às atividades de ensino, pesquisa e extensão. Atua no acompanhamento e assistência direta aos discentes e docentes, no atendimento à comunidade externa e na colaboração com o trabalho dos gestores.',
|
||||||
|
informationUrl:
|
||||||
|
'https://www.ifmg.edu.br/sabara/ensino-pesquisa-e-extensao/nae',
|
||||||
|
coverImage: {
|
||||||
|
image: 'https://pixabay.com/images/download/people-2557399_640.jpg',
|
||||||
|
alt: 'Fotografia de pessoas estudando juntas',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Estágios',
|
||||||
|
description:
|
||||||
|
'Atua na orientação do discente sobre todo o processo de documentação e acompanhamento do estágio.',
|
||||||
|
informationUrl:
|
||||||
|
'https://www.ifmg.edu.br/sabara/ensino-pesquisa-e-extensao/estagios-1',
|
||||||
|
coverImage: {
|
||||||
|
image:
|
||||||
|
'https://thumbs.dreamstime.com/b/est%C3%A1gio-e-lista-de-profissionais-escritos-na-nota-122225688.jpg',
|
||||||
|
alt: 'Fotografia de pessoas estudando juntas',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Pesquisa',
|
||||||
|
description:
|
||||||
|
'A Coordenação de Pesquisa, Inovação e Pós-graduação do IFMG Campus Sabará, busca fomentar o desenvolvimento da pesquisa e inovação por meio de estímulos para criação de projetos que envolvam a comunidade acadêmica.',
|
||||||
|
informationUrl:
|
||||||
|
'https://www.ifmg.edu.br/sabara/ensino-pesquisa-e-extensao/estagios-1',
|
||||||
|
coverImage: {
|
||||||
|
image: 'https://pixabay.com/images/download/microscope-275984_640.jpg',
|
||||||
|
alt: 'Fotografia de um microscópio',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Extensão e Relações Institucionais',
|
||||||
|
description:
|
||||||
|
'O desenvolvimento da extensão permite a comunidade acadêmica ter um canal de comunicação e de mútuo aprendizado no binômio escola - comunidade.',
|
||||||
|
informationUrl:
|
||||||
|
'https://www.ifmg.edu.br/sabara/ensino-pesquisa-e-extensao/estagios-1',
|
||||||
|
coverImage: {
|
||||||
|
image: 'https://pixabay.com/images/download/team-386673_640.jpg',
|
||||||
|
alt: 'Fotografia de pessoas estendendo uma mão em uma roda',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'Biblioteca',
|
||||||
|
description:
|
||||||
|
'A biblioteca do IFMG Campus Sabará tem como finalidade proporcionar ao seu corpo docente e discente, técnicos administrativos, pesquisadores e à comunidade geral o acesso a materiais e informações bibliográficas. Assim, a biblioteca disponibiliza aos seus usuários os serviços de empréstimos, reservas, renovação, auxílio aos alunos, levantamentos bibliográficos e consulta local ao acervo.',
|
||||||
|
informationUrl: 'https://www.ifmg.edu.br/sabara/biblioteca/apresentacao',
|
||||||
|
coverImage: {
|
||||||
|
image: 'https://pixabay.com/images/download/books-1281581_640.jpg',
|
||||||
|
alt: 'Fotografia de uma biblioteca',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
|
return <View faq={faq} sectors={sectors} layoutType={layoutType} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
export default Information;
|
export default Information;
|
||||||
|
|
|
@ -37,6 +37,19 @@ const desktopAccordionSummary = {
|
||||||
backgroundColor: '#f7f7f7',
|
backgroundColor: '#f7f7f7',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const desktopSectorsTitle = {
|
||||||
|
marginTop: '100px',
|
||||||
|
textAlign: 'center',
|
||||||
|
};
|
||||||
|
|
||||||
|
const desktopSectorsStack = {
|
||||||
|
sx: { padding: '40px', paddingBottom: '100px' },
|
||||||
|
justifyContent: 'center',
|
||||||
|
flexWrap: 'wrap',
|
||||||
|
flexDirection: 'row',
|
||||||
|
gap: '20px',
|
||||||
|
};
|
||||||
|
|
||||||
const desktop = {
|
const desktop = {
|
||||||
stackContainer: desktopStackContainer,
|
stackContainer: desktopStackContainer,
|
||||||
skeletonTitle: desktopSkeletonTitle,
|
skeletonTitle: desktopSkeletonTitle,
|
||||||
|
@ -45,6 +58,8 @@ const desktop = {
|
||||||
accordionSkeletonStack: desktopAccordionSkeletonStack,
|
accordionSkeletonStack: desktopAccordionSkeletonStack,
|
||||||
title: desktopTitle,
|
title: desktopTitle,
|
||||||
accordionSummary: desktopAccordionSummary,
|
accordionSummary: desktopAccordionSummary,
|
||||||
|
sectorsTitle: desktopSectorsTitle,
|
||||||
|
sectorsStack: desktopSectorsStack,
|
||||||
};
|
};
|
||||||
|
|
||||||
// ========== Mobile ==========
|
// ========== Mobile ==========
|
||||||
|
@ -87,6 +102,17 @@ const mobileAccordionSummary = {
|
||||||
backgroundColor: '#f7f7f7',
|
backgroundColor: '#f7f7f7',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const mobileSectorsTitle = {
|
||||||
|
marginTop: '80px',
|
||||||
|
textAlign: 'center',
|
||||||
|
marginBottom: '30px',
|
||||||
|
};
|
||||||
|
|
||||||
|
const mobileSectorsStack = {
|
||||||
|
sx: { padding: '20px', paddingBottom: '100px' },
|
||||||
|
gap: '20px',
|
||||||
|
};
|
||||||
|
|
||||||
const mobile = {
|
const mobile = {
|
||||||
stackContainer: mobileStackContainer,
|
stackContainer: mobileStackContainer,
|
||||||
skeletonTitle: mobileSkeletonTitle,
|
skeletonTitle: mobileSkeletonTitle,
|
||||||
|
@ -95,6 +121,8 @@ const mobile = {
|
||||||
accordionSkeletonStack: mobileAccordionSkeletonStack,
|
accordionSkeletonStack: mobileAccordionSkeletonStack,
|
||||||
title: mobileTitle,
|
title: mobileTitle,
|
||||||
accordionSummary: mobileAccordionSummary,
|
accordionSummary: mobileAccordionSummary,
|
||||||
|
sectorsTitle: mobileSectorsTitle,
|
||||||
|
sectorsStack: mobileSectorsStack,
|
||||||
};
|
};
|
||||||
|
|
||||||
// ========== Unset ==========
|
// ========== Unset ==========
|
||||||
|
@ -106,6 +134,8 @@ const unset = {
|
||||||
accordionSkeletonStack: null,
|
accordionSkeletonStack: null,
|
||||||
title: null,
|
title: null,
|
||||||
accordionSummary: null,
|
accordionSummary: null,
|
||||||
|
sectorsTitle: null,
|
||||||
|
sectorsStack: null,
|
||||||
};
|
};
|
||||||
|
|
||||||
const styles = { desktop, mobile, unset };
|
const styles = { desktop, mobile, unset };
|
||||||
|
|
Loading…
Reference in a new issue