public/assets/js/utils.js (41 lines of code) (raw):
export const onVisible = function(element, callback) {
const options = {
root: document
};
const observer = new IntersectionObserver((entries, observer) => {
entries.forEach((entry) => {
callback(entry, observer);
});
}, options);
observer.observe(element);
};
export function getContentType(resourceType, linkURL) {
switch (resourceType) {
case "tutorialstep":
return "Part of tutorial";
case "link":
if (!linkURL) {
return "Link";
}
if (
(linkURL.indexOf("youtube.com") >= 0 ||
linkURL.indexOf("youtu.be") >= 0)
) {
return "YouTube";
} else if (linkURL.indexOf("blog.jetbrains.com") >= 0) {
return "JetBrains Blog";
} else if (
linkURL.indexOf("jetbrains.com") >= 0 &&
linkURL.indexOf("help") >= 0
) {
return "Documentation";
} else if (linkURL.indexOf("medium.com") >= 0) {
return "Medium";
}
return "Link";
default:
return resourceType.length > 1
? resourceType.charAt(0).toUpperCase() + resourceType.slice(1)
: resourceType;
}
}