Skip to content
Snippets Groups Projects
Home.js 11.9 KiB
Newer Older
  • Learn to ignore specific revisions
  • import React, { Component } from 'react';
    
    import {
      Button,
      Container,
      Header,
      Icon,
      Segment,
    
      Divider,
    
      Responsive,
    
    } from 'semantic-ui-react';
    
    import { connect } from 'react-redux';
    
    import Slider from 'react-slick';
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
    import { Link } from 'react-router-dom';
    
    import './Home.css';
    
    import KSZKbiglogo from '../images/kszk_with_shadow.png';
    
    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>
    
    Tamás Szabó's avatar
    Tamás Szabó committed
              <Slider {...settings}>
                {
    
                  this.props.images.map(image => (
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                    <div key={image}>
    
                      <img src={image.image} width={imageWidth} alt='' />
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                    </div>
                  ))
                }
              </Slider>
              <div className='car-text-kszk'>
                <Segment textAlign='center' vertical>
                  <Header
                    as='h1'
                    content='Üdvözlünk a'
                    inverted
                    style={{
    
                      fontSize: '3vw',
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                      fontWeight: 'normal',
                      marginBottom: 0,
                    }}
                  />
                  <Header
                    as='h1'
                    content='Kollégiumi Számítástechnikai Kör'
                    inverted
                    style={{
    
                      fontSize: '3.5vw',
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                      fontWeight: 'bold',
    
                      marginBottom: '0.5vw',
                      marginTop: '0.5vw',
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                    }}
                  />
                  <Header
                    as='h1'
    
    attiss's avatar
    attiss committed
                    content='újoncképzésének weboldalán!'
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                    inverted
                    style={{
    
                      fontSize: '3vw',
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                      fontWeight: 'normal',
                      marginBottom: 0,
    
                      marginTop: '0.5vw',
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                    }}
                  />
                  <Image
                    verticalAlign='middle'
                    src={KSZKbiglogo}
    
                    style={{ marginTop: '1vw', width: '17%' }}
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                  />
                  <Header
                    as='h1'
    
    attiss's avatar
    attiss committed
                    content='Szeretettel várunk a KSZKépzésre!'
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                    inverted
                    style={{
    
                      fontSize: '3vw',
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                      fontWeight: 'normal',
                      marginBottom: 0,
    
                      marginTop: '1vw',
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                    }}
                  />
                  <Container>
    
                    {
                      this.props.user.id ?
                        <Button
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
                          as={Link}
                          to='/profile'
    
                          primary
                          size='huge'
                          style={{
    
                            fontSize: '2vw',
                            marginTop: '1vw',
                            marginBottom: '1vw',
    
                            fontWeight: 'bold',
                            letterSpacing: '0.13vw'
    
    Barnabás Czémán's avatar
    Barnabás Czémán committed
                          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>
                    }
    
    Tamás Szabó's avatar
    Tamás Szabó committed
                  </Container>
                </Segment>
              </div>
            </div>
    
          )
        } else 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>
          )
        }
      }
    
      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
                 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  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
    
              <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  hangulatban telnek, és a szociális 
                irányultságú foglalkozások alatt egy nagyon  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
    
                <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 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!
    
              </Segment>
            </Container>
          </Segment>
        )
      }
    
      render() {
        return (
          <div>
            <Responsive minWidth={600} >
              <div className='car-image-kszk'>
                <div></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>
    
    const mapStateToProps = ({ user, images }) => ({
      user, images
    
    export default connect(mapStateToProps, { getImages })(Home);