Untitled

mail@pastecode.io avatar
unknown
javascript
2 years ago
1.6 kB
5
Indexable
import { getElementById } from "domutils";
import getEventById from "services/helpers/getEventById";
import getEventMediaById from "services/helpers/getEventMediaById";

const getPagesComponents = (components) => {
  components
    ? components.map(async (component) => {
        switch (component.acf_fc_layout) {
          case "slider":
            switch (component.content_type) {
              case "events":
                const eventQuery = component.events.map(async (e) => await getEventById(component.content_type, e.ID));
                const eventsResults = await Promise.all(eventQuery);
                const finalEvents = eventsResults.map((x) => {
                  return { title: x.title.rendered, author: x.excerpt };
                });
                const mediaQuery = component.events.map(
                  async (e, index) => await getEventMediaById("media", eventsResults[index].featured_media)
                );
                const mediaResults = await Promise.all(mediaQuery);
                const finalMedia = mediaResults.map((x) => {
                  return { mediaDetails: x.media_details.sizes.full.source_url };
                });
                const finalResults = finalEvents.map((e, index) => ({
                  ...e,
                  image: { src: finalMedia[index].mediaDetails },
                }));
                console.log("End result: ", finalResults[0], finalResults[1]);
            }
            break;
        }
      })
    : console.log("Component data not loading");
  return;
};

export default getPagesComponents;