Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.
 
 
 
 

85 rindas
2.5 KiB

  1. import './search-results.scss';
  2. import {createElement} from "../../_global/scripts/helpers";
  3. import {
  4. SearchResultsDownloads,
  5. SearchResultsEvents,
  6. SearchResultsEventsExtended,
  7. SearchResultsNoBorder
  8. } from "./SearchResultsData";
  9. import {createButton} from "../../atoms/button/ButtonComponent";
  10. import {createEventTeaser} from "../../atoms/event-teaser/EventTeaserComponent";
  11. export const createSearchResults = ({
  12. type = 'downloads',
  13. }) => {
  14. const wrapper = createElement('div', ['results-wrapper', type]);
  15. let data = null;
  16. if (type === 'no-border') {
  17. data = SearchResultsNoBorder;
  18. }
  19. if (type === 'downloads') {
  20. data = SearchResultsDownloads;
  21. }
  22. if (type === 'events') {
  23. data = SearchResultsEvents;
  24. }
  25. if (type === 'events-extended') {
  26. data = SearchResultsEventsExtended;
  27. }
  28. if (data.icon) {
  29. wrapper.classList.add(data.icon);
  30. }
  31. if (data.headline) {
  32. createElement('h3', [], data.headline, wrapper);
  33. }
  34. if (type === 'no-border') {
  35. data.items.map((item) => {
  36. const result = createElement('div', item.icon ? ['result', item.icon] : ['result'], null, wrapper);
  37. const a = createElement('a', [], null, result);
  38. a.href = item.link;
  39. if (item.kicker && item.kicker.length > 0) {
  40. createElement('div', ['h-kicker'], item.kicker, a);
  41. }
  42. if (item.title && item.title.length > 0) {
  43. createElement('div', ['h-title'], item.title, a);
  44. }
  45. if (item.copy && item.copy.length > 0) {
  46. createElement('p', [], item.copy, result);
  47. }
  48. })
  49. } else if (type === 'events') {
  50. data.items.map((item) => {
  51. const result = createElement('div', ['result'], null, wrapper);
  52. result.appendChild(createEventTeaser(item));
  53. })
  54. } else if (type === 'events-extended') {
  55. for (let i = 0; i < 12; i++) {
  56. const result = createElement('div', ['result'], null, wrapper);
  57. result.appendChild(createEventTeaser({isExtended: true}));
  58. }
  59. } else {
  60. const results = createElement('ul', ['results'], null, wrapper);
  61. data.items.map((item) => {
  62. const li = createElement('li', [], null, results);
  63. const a = createElement('a', ['result-link'], item.title, li);
  64. a.href = item.link;
  65. })
  66. }
  67. if (data.totalCount) {
  68. const moreWrapper = createElement('div', ['more-wrapper'], null, wrapper);
  69. moreWrapper.appendChild(createButton({
  70. label: 'Alle <strong>' + data.totalCount + ' Treffer</strong> anzeigen',
  71. icon: 'pfeil-simple-rechts',
  72. iconPosition: 'icon-right',
  73. color: 'white',
  74. }));
  75. }
  76. return wrapper;
  77. }