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

68 строки
2.5 KiB

  1. import {createElement} from "../../_global/scripts/helpers";
  2. import './newsletter-teaser.scss';
  3. import {createInputText} from "../../atoms/input-text/InputTextComponent";
  4. import {createButton} from "../../atoms/button/ButtonComponent";
  5. import {createFormElement} from "../form-element/FormElementComponent";
  6. export const createNewsletterTeaser =
  7. ({
  8. title = 'Überschrift',
  9. introduction = 'Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.',
  10. checkboxes = [
  11. {
  12. label: 'Ich stimme den <a href="#">Datenschutzbestimmungen</a> der IHK Musterstadt zu.',
  13. required: true,
  14. },
  15. {
  16. label: 'Ich stimme der <a href="#">erweiterten Datenspeicherung</a> und der <a href="#">Datenschutzerklärung</a> IHK Musterstadt zu.',
  17. required: true,
  18. },
  19. {
  20. label: 'Ich stimme den <a href="#">Allgemeinen Geschäftsbedingungen</a> der IHK Musterstadt zu.',
  21. required: false,
  22. },
  23. ]
  24. }) => {
  25. const newsletterTeaser = createElement('div', ['newsletter-teaser'], null);
  26. createElement('h2', [], title, newsletterTeaser);
  27. createElement('p', [], introduction, newsletterTeaser);
  28. const form = createElement('form', ['newsletter-form'], null, newsletterTeaser);
  29. const inputWrapper = createElement('div', ['input-wrapper'], null, form);
  30. inputWrapper.appendChild(createInputText({
  31. placeholder: 'Ihre E-Mail-Adresse',
  32. isRequired: true,
  33. type: 'email',
  34. }));
  35. const button = createButton({
  36. elementType: 'button',
  37. icon: 'pfeil-simple-rechts',
  38. color: 'white',
  39. iconPosition: 'icon-right',
  40. label: 'Jetzt abonnieren',
  41. })
  42. button.type ='submit';
  43. inputWrapper.appendChild(button);
  44. const checkboxList = createElement('ul', ['checkboxes'], null, form);
  45. checkboxes.map((cbDefinition, index) => {
  46. const li = createElement('li', [], null, checkboxList);
  47. li.appendChild(createFormElement({
  48. inputType: 'checkbox',
  49. name: 'newsletter-checkbox-' + index,
  50. isRequired: cbDefinition.required,
  51. label: cbDefinition.label,
  52. }))
  53. /*
  54. const cb = createElement('input', [], null, li);
  55. const label = createElement('label', ['checkbox-label'], cbDefinition.label, li);
  56. cb.type = 'checkbox';
  57. cb.required = cbDefinition.required;
  58. cb.id = 'newsletter-checkbox-' + index;
  59. label.for = 'newsletter-checkbox-' + index;
  60. */
  61. })
  62. return newsletterTeaser;
  63. }