Skip to content
Snippets Groups Projects
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);