-
Rafael László authoredRafael László authored
Home.js 11.80 KiB
import './Home.css';
import {
Button,
Container,
Divider,
Header,
Icon,
Image,
Responsive,
Segment,
} from 'semantic-ui-react';
/* eslint-disable react/jsx-props-no-spreading */
import React, { Component } from 'react';
import KSZKbiglogo from '../images/kszk_with_shadow.png';
import { Link } from 'react-router-dom';
import Slider from 'react-slick';
import { connect } from 'react-redux';
import { getImages } from '../../actions/home';
const settings = {
dots: false,
autoplay: true,
arrows: false,
infinite: true,
speed: 2000,
autoplaySpeed: 4000,
slidesToShow: 1,
slidesToScroll: 1,
centerMode: true,
lazyLoad: true,
initialSlide: Math.floor(Math.random() * 32 + 1),
};
class Home extends Component {
UNSAFE_componentWillMount() {
this.props.getImages();
}
renderSlider(view, imageWidth) {
if (view === 0) {
return (
<div>
{!!this.props.images}
<Slider {...settings}>
{this.props.images &&
this.props.images.map((image) => (
<div key={image}>
<img src={image.image} width={imageWidth} alt="" />
</div>
))}
</Slider>
<div className="car-text-kszk">
<Segment textAlign="center" vertical>
<Header
as="h1"
content="Üdvözlünk a"
inverted
style={{
fontSize: '3vw',
fontWeight: 'normal',
marginBottom: 0,
}}
/>
<Header
as="h1"
content="Kollégiumi Számítástechnikai Kör"
inverted
style={{
fontSize: '3.5vw',
fontWeight: 'bold',
marginBottom: '0.5vw',
marginTop: '0.5vw',
}}
/>
<Header
as="h1"
content="újoncképzésének weboldalán!"
inverted
style={{
fontSize: '3vw',
fontWeight: 'normal',
marginBottom: 0,
marginTop: '0.5vw',
}}
/>
<Image
verticalAlign="middle"
src={KSZKbiglogo}
style={{ marginTop: '1vw', width: '17%' }}
/>
<Header
as="h1"
content="Szeretettel várunk a KSZKépzésre!"
inverted
style={{
fontSize: '3vw',
fontWeight: 'normal',
marginBottom: 0,
marginTop: '1vw',
}}
/>
<Container>
{this.props.user.id ? (
<Button
as={Link}
to="/profile"
primary
size="huge"
style={{
fontSize: '2vw',
marginTop: '1vw',
marginBottom: '1vw',
fontWeight: 'bold',
letterSpacing: '0.13vw',
}}
>
Jelentkezés
<Icon name="right arrow" />
</Button>
) : (
<Button
href="/api/v1/login/authsch/"
primary
size="huge"
style={{
fontSize: '2vw',
marginTop: '1vw',
marginBottom: '1vw',
fontWeight: 'bold',
letterSpacing: '0.13vw',
}}
>
Bejelentkezés
<Icon name="right arrow" />
</Button>
)}
</Container>
</Segment>
</div>
</div>
);
}
if (view === 1) {
return (
<div>
<Slider {...settings}>
{this.props.images.map((image) => (
<div key={image}>
<img src={image.image} width={imageWidth} alt="" />
</div>
))}
</Slider>
<div className="car-text-kszk">
<Segment textAlign="center" vertical>
<Header
as="h1"
content="Üdvözlünk a"
inverted
style={{
fontSize: '5vw',
fontWeight: 'bold',
marginBottom: 0,
}}
/>
<Header
as="h1"
content="Kollégiumi Számítástechnikai Kör"
inverted
style={{
fontSize: '6vw',
fontWeight: 'bold',
marginBottom: '0.5vw',
marginTop: '0.5vw',
}}
/>
<Header
as="h1"
content="újoncképzésének weboldalán!"
inverted
style={{
fontSize: '5vw',
fontWeight: 'bold',
marginBottom: 0,
marginTop: '0.5vw',
}}
/>
<Image
className="kszklogo"
verticalAlign="middle"
src={KSZKbiglogo}
style={{ marginTop: '1vw', width: '20%' }}
/>
<Header
as="h1"
content="Szeretettel várunk a KSZKépzésre!"
inverted
style={{
fontSize: '5vw',
fontWeight: 'bold',
marginBottom: 0,
marginTop: '1vw',
}}
/>
<Container>
{this.props.user.id ? (
<Button
as={Link}
to="/profile"
primary
size="massive"
style={{
fontSize: '4vw',
marginTop: '1.5vw',
marginBottom: '1vw',
fontWeight: 'bold',
letterSpacing: '0.15vw',
}}
>
Jelentkezés
<Icon name="right arrow" />
</Button>
) : (
<Button
href="/api/v1/login/authsch/"
primary
size="massive"
style={{
fontSize: '4vw',
marginTop: '1vw',
marginBottom: '1vw',
fontWeight: 'bold',
letterSpacing: '0.15vw',
}}
>
Bejelentkezés
<Icon name="right arrow" />
</Button>
)}
</Container>
</Segment>
</div>
</div>
);
}
}
// eslint-disable-next-line class-methods-use-this
renderText() {
const kszk_age = new Date().getFullYear() - 1976;
return (
<Segment style={{ padding: '8em 0em', fontFamily: 'Arial' }} vertical>
<Container text>
<Header as="h3" style={{ fontSize: '2em', fontFamily: 'Arial' }}>
Kik is vagyunk mi?
</Header>
<p style={{ fontSize: '1.33em', fontFamily: 'Arial' }}>
A Kollégiumi Számítástechnikai Kör az Egyetem legrégebben működő és
legnagyobb aktív, informatikával foglalkozó öntevékeny
csoportosulása, idén ünnepeljük {kszk_age}. születésnapunkat. A
patinás név mögött vidám hangulatú, alkotó kedvű csapat rejlik, mely
a Kar jó szakmai képességű, számítástechnika iránt kiemelten
érdeklődő tagjaiból verbuválódott, és bővül évente új tehetségekkel,
lelkes informatikusokkal, villamosmérnökökkel.
</p>
<Button as={Link} size="large" to="/groups">
Ismerd meg a köreinket! <Icon name="right arrow" />
</Button>
<Divider as="h4" className="header" style={{ margin: '3em 0em' }} />
<Header as="h3" style={{ fontSize: '2em', fontFamily: 'Arial' }}>
Lehetőségek
</Header>
<p style={{ fontSize: '1.33em', fontFamily: 'Arial' }}>
A KSZK a lehetőségek tárháza, a hely ahol Te – leendő mérnök –
minden területen kipróbálhatod, továbbképezheted magad. Nálunk
kibontakoztathatod kreativitásod, tapasztalatot, mérnöki szemléletet
szerezhetsz, miközben az ún. soft skill-jeidet is fejlesztheted. Ha
számodra a szakma hivatás, ha szeretsz új dolgokat alkotni vagy csak
jó társaságra vágysz, a legjobb helyre kerültél. A reszort körei a
szakma egy-egy meghatározó területével foglalkoznak a fejlesztés és
üzemeltetés területén.
</p>
<Divider as="h4" className="header" style={{ margin: '3em 0em' }} />
<Header as="h3" style={{ fontSize: '2em', fontFamily: 'Arial' }}>
Képzésünk
</Header>
<p style={{ fontSize: '1.33em', fontFamily: 'Arial' }}>
Kilenc alkalmas képzésünk végén Te is igazi KSZK-ssá válhatsz,
hiszen rengeteg szakmai tudást igyekszünk átadni nektek. A
képzésalkalmak rendkívül jó hangulatban telnek, és a szociális
irányultságú foglalkozások alatt egy nagyon jó csapat kovácsolódik
az érdeklődőkből. Az első képzés időpontja február 16. vasárnap
18:00, ettől kezdve pedig minden héten találkozunk ugyanabban az
időpontban. A képzés ideje alatt április 17-19 között rendezünk
tábort. Az alkalmakon és a táboron kötelező a részvétel.
</p>
<Divider as="h4" className="header" style={{ margin: '3em 0em' }} />
<Segment inverted color="red" tertiary>
<Header as="h3" style={{ fontSize: '2em', fontFamily: 'Arial' }}>
Korlátos férőhely
</Header>
<p style={{ fontSize: '1.33em', fontFamily: 'Arial' }}>
Általánosságban elmondható, hogy a KSZK tagjai rengeteg dologgal
foglalkoznak a hétköznapjaik során, hogy minden informatikai
rendszer úgy működjön a kollégiumban, ahogy kell. Így van ez
velünk képzőkkel is, emiatt hetente csak egy képzésalkalmat tudunk
tartani. Mivel az oktatóterem férőhelyében korlátozott, ezért a
képzésre maximum 35 embert tudunk befogadni.
</p>
<p style={{ fontSize: '1.33em', fontFamily: 'Arial' }}>
Sajnos előfordulhat olyan eset, hogy valaki már nem fér be a
képzésre, ezért kérünk titeket, hogy ennek tudatában
jelentkezzetek majd. Ilyen esetben reméljük ez nem szegi
kedveteket és jövőre újra próbálkoztok majd!
</p>
</Segment>
</Container>
</Segment>
);
}
render() {
return (
<div>
<Responsive minWidth={600}>
<div className="car-image-kszk">
<div />
{this.renderSlider(0, '120%')}
</div>
{this.renderText()}
</Responsive>
<Responsive maxWidth={600}>
<div className="car-image-kszk">{this.renderSlider(1, '200%')}</div>
{this.renderText()}
</Responsive>
</div>
);
}
}
const mapStateToProps = ({ user, images }) => ({
user,
images,
});
export default connect(mapStateToProps, { getImages })(Home);