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.
 
 
 
 

54 line
1.6 KiB

  1. import './participation-teaser.scss';
  2. import {createElement} from "../../_global/scripts/helpers";
  3. import {createProgressBar} from "../../atoms/progress-bar/ProgressBarComponent";
  4. import {createButton} from "../../atoms/button/ButtonComponent";
  5. export const createParticipationTeaser = ({
  6. isListItem = false,
  7. kicker = 'Noch 6 Tage offen',
  8. progress = 65,
  9. headline = 'Ideen zur Stärkung der Innenstädte und Ortskerne',
  10. copy = 'Die Auswirkungen der Corona-Pandemie treffen die Innenstädte und Ortskerne. Wir sammeln Ideen, um den neuen Herausforderungen zu begegnen.',
  11. moreCta = {
  12. label: 'Mehr Infos',
  13. link: '#',
  14. target: '_self',
  15. },
  16. participateCta = {
  17. label: 'Jetzt beteiligen',
  18. link: '#',
  19. target: '_self',
  20. }
  21. }) => {
  22. const teaser = createElement('div', ['participation-teaser', 'tile']);
  23. const tb = createElement('div', ['text-box'], null, teaser);
  24. const kickerSpan = createElement('p', ['kicker'], kicker, tb);
  25. const progressBar = createProgressBar({progress});
  26. tb.appendChild(progressBar);
  27. createElement('h3', ['like-h4'], headline, tb);
  28. createElement('p', [], copy, tb);
  29. if (isListItem) {
  30. tb.insertBefore(progressBar, kickerSpan);
  31. }
  32. const buttons = createElement('div', ['buttons'], null, teaser);
  33. if (moreCta) {
  34. buttons.appendChild(createButton({
  35. label: moreCta.label,
  36. link: moreCta.link,
  37. color: 'primary-light',
  38. size: 'small',
  39. }))
  40. }
  41. if (participateCta) {
  42. buttons.appendChild(createButton({
  43. label: participateCta.label,
  44. link: participateCta.link,
  45. size: 'small',
  46. }))
  47. }
  48. return teaser;
  49. }