You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

52 rivejä
2.1 KiB

  1. import './events.scss';
  2. import $ from 'jquery';
  3. import {createElement} from "../../_global/scripts/helpers";
  4. import {createButton} from "../../atoms/button/ButtonComponent";
  5. import {EventsData} from "./EventsData";
  6. import IHKEventsList from "./events";
  7. import {createEventTeaser} from "../../atoms/event-teaser/EventTeaserComponent";
  8. import {EventTeaserTitles} from "../../atoms/event-teaser/EventTeaserData";
  9. export const createEventsSection = ({
  10. headline = 'Aktuelle Veranstaltungen',
  11. updateText = 'Updates zu dieser Liste per Mail abonnieren',
  12. allButtonLabel = 'Alle anzeigen',
  13. showItems = 5,
  14. scrollItems = 5,
  15. events = EventsData,
  16. }) => {
  17. const section = createElement('section', ['events']);
  18. const container = createElement('div', ['container'], null, section);
  19. if (headline && headline.length > 0) {
  20. createElement('h2', [], headline, container);
  21. }
  22. const wrapper = createElement('div', ['events-wrapper'], null, container);
  23. const list = createElement('ul', ['events-list'], null, wrapper);
  24. list.dataset.pagination = 'true';
  25. list.dataset.items = showItems.toString();
  26. list.dataset.scroll = scrollItems.toString();
  27. events.map((event) => {
  28. event.title = EventTeaserTitles[Math.floor(Math.random() * EventTeaserTitles.length)];
  29. const li = createElement('li', [], null, list);
  30. li.appendChild(createEventTeaser({
  31. event: event,
  32. }))
  33. })
  34. const actions = createElement('div', ['events-actions'], null, container);
  35. const updateLink = createElement('a', ['mailupdate'], updateText, actions);
  36. const prevBtn = actions.appendChild(createButton({elementType: 'button', color: 'white', label: null, icon: 'pfeil-rechts', iconPosition: 'icon-inline'}));
  37. const nextBtn = actions.appendChild(createButton({elementType: 'button', color: 'white', label: null, icon: 'pfeil-rechts', iconPosition: 'icon-inline'}));
  38. actions.appendChild(createButton({elementType: 'a', color: 'white', label: allButtonLabel, icon: 'kalender', iconPosition: 'icon-right'}));
  39. updateLink.href = '#';
  40. prevBtn.classList.add('prev');
  41. nextBtn.classList.add('next');
  42. new IHKEventsList($(list));
  43. return section;
  44. }