Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

42 строки
1.4 KiB

  1. import './event-teaser.scss';
  2. import {createElement} from "../../_global/scripts/helpers";
  3. import {EventTeaserData, EventTeaserStatus, EventTeaserTitles, SearchResultEventTeaserData} from "./EventTeaserData";
  4. export const createEventTeaser = ({
  5. event = EventTeaserData,
  6. isExtended = false,
  7. }) => {
  8. const a = createElement('a', ['event-teaser']);
  9. const dateBox = createElement('div', ['date-box'], null, a);
  10. const textBox = createElement('div', ['text-box', 'date-wrapper'], null, a);
  11. if (isExtended) {
  12. event = SearchResultEventTeaserData;
  13. event.title = EventTeaserTitles[Math.floor(Math.random() * EventTeaserTitles.length)];
  14. event.details.status = EventTeaserStatus[Math.floor(Math.random() * EventTeaserStatus.length)];
  15. }
  16. if (event.date) {
  17. createElement('span', ['weekday'], event.date.weekday, dateBox);
  18. createElement('span', ['day'], event.date.day, dateBox);
  19. createElement('span', ['month'], event.date.month, dateBox);
  20. } else {
  21. dateBox.classList.add('no-date');
  22. }
  23. createElement('p', ['ev-title'], event.title, textBox);
  24. if (event.details) {
  25. for (const [key, value] of Object.entries(event.details)) {
  26. if (typeof value === 'string') {
  27. createElement('div', [key], value, textBox);
  28. } else if (typeof value === 'object') {
  29. createElement('div', [key, value.type], value.label, textBox);
  30. }
  31. }
  32. }
  33. a.href = event.link;
  34. return a;
  35. }