Untitled
unknown
javascript
3 years ago
1.3 kB
12
Indexable
import Events from "@/components/content/Events";
import PropTypes from "prop-types";
import getEventById from "services/helpers/getEventById";
import wordpress from "..";
const getContentBySlug = async (contentType, slug) => {
try {
let { data } = await wordpress.get(`${contentType}`, {
params: {
slug: slug,
_fields: `title,slug,acf,id,type`,
per_page: 1,
},
});
[data] = data;
if (!data.acf.content) {
console.error("Component data not loading");
return;
}
// Retain original page data whilst changing that pages' content
const results = data.acf.content.map((component) => {
if (component.events) {
let result = component.events.map((event, i, arr) =>
getEventById("events", event.ID).then((response) => (arr[i] = response))
);
return result;
}
return component;
});
data.acf.content = results;
return data;
} catch (err) {
console.error(`Failed to get ${contentType}: `, err);
}
};
export default getContentBySlug;
getContentBySlug.propTypes = {
contentType: PropTypes.string,
slug: PropTypes.string.isRequired,
};
getContentBySlug.defaultProps = {
contentType: "pages",
slug: "home",
};
Editor is loading...