Source: js/media.js

  1. import { addLink } from './storage.js';
  2. import { getDaysKey } from './date.js';
  3. // Popup for the media button
  4. const mediaImg = document.getElementById('media-img');
  5. const submitButton = document.getElementById('media-submit-button');
  6. const url = document.getElementById('media-url');
  7. const mediaDiv = document.getElementById('media-text-area');
  8. /**
  9. * Toggle the display of the HTML element with elementID between displayType and none
  10. * @param {string} elementID - The ID for the HTML element
  11. * @param {string} displayType - The desired display type
  12. */
  13. function toggle(elementID, displayType) {
  14. const element = document.getElementById(elementID);
  15. if (element.style.display === displayType) {
  16. element.style.display = 'none';
  17. } else {
  18. element.style.display = displayType;
  19. }
  20. }
  21. function youtubeUpload(link) {
  22. const youtubeDiv = document.createElement('div');
  23. youtubeDiv.setAttribute('class', 'media-item');
  24. const youtubeIfr = document.createElement('iframe');
  25. youtubeIfr.setAttribute('src', `https://www.youtube.com/embed/${link.substring(32)}`);
  26. youtubeIfr.style.width = '560';
  27. youtubeIfr.style.height = '315';
  28. youtubeDiv.appendChild(youtubeIfr);
  29. mediaDiv.appendChild(youtubeDiv);
  30. }
  31. function pinterestUpload(link) {
  32. const pinterestDiv = document.createElement('div');
  33. pinterestDiv.setAttribute('class', 'media-item');
  34. const pinterestIfr = document.createElement('iframe');
  35. const pinterestUrl = `https://assets.pinterest.com/ext/embed.html?id=${link.substring(30)}`;
  36. pinterestIfr.setAttribute('src', pinterestUrl.substr(0, pinterestUrl.length - 1));
  37. pinterestIfr.style.width = '236';
  38. pinterestIfr.style.height = '520';
  39. pinterestIfr.setAttribute('scrolling', 'no');
  40. pinterestIfr.setAttribute('frameborder', '0');
  41. pinterestDiv.appendChild(pinterestIfr);
  42. mediaDiv.appendChild(pinterestDiv);
  43. }
  44. function soundcloudUpload(link) {
  45. const soundcloudDiv = document.createElement('div');
  46. soundcloudDiv.setAttribute('class', 'media-item');
  47. const soundcloudIfr = document.createElement('iframe');
  48. soundcloudIfr.setAttribute('src', `https://w.soundcloud.com/player/?url=${link}`);
  49. soundcloudIfr.style.width = '100%';
  50. soundcloudIfr.style.height = '150';
  51. soundcloudIfr.setAttribute('scrolling', 'no');
  52. soundcloudIfr.setAttribute('frameborder', '0');
  53. soundcloudDiv.appendChild(soundcloudIfr);
  54. mediaDiv.appendChild(soundcloudDiv);
  55. }
  56. export { youtubeUpload, pinterestUpload, soundcloudUpload };
  57. mediaImg.addEventListener('click', () => {
  58. toggle('popup-media', 'flex');
  59. });
  60. submitButton.addEventListener('click', () => {
  61. toggle('popup-media', 'flex');
  62. addLink(getDaysKey(window.curDate), url.value);
  63. if (url.value.includes('youtube')) {
  64. youtubeUpload(url.value);
  65. }
  66. if (url.value.includes('pinterest')) {
  67. pinterestUpload(url.value);
  68. }
  69. if (url.value.includes('soundcloud')) {
  70. soundcloudUpload(url.value);
  71. }
  72. document.getElementById('media-uploader').reset();
  73. });