Advertisement
Guest User

Untitled

a guest
Aug 15th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. export const createInfoBar = ({
  2.         projectName,
  3.         episodeName,
  4.         seasonName,
  5.         projectUrl,
  6.         seasonUrl
  7.     }, withSubscriptionButton = false) => {
  8.     const infoBar = createElement({ className: INFO_BAR_CLASS });
  9.  
  10.     const isDefaultView = seasonName ? !!(parseInt(seasonName, 10)) : true;
  11.  
  12.     let seasonHtml = '';
  13.     if (seasonName) {
  14.         const seasonLinkClassName = `${INFO_BAR_SEASON_CLASS} ${INFO_BAR_LINK_CLASS} ${INFO_BAR_SEASON_LINK_CLASS}`;
  15.         seasonHtml = seasonUrl
  16.             ? `<a href="${seasonUrl}" class="${seasonLinkClassName}" target="_parent">
  17.                    ${seasonName}
  18.                </a>`
  19.             : `<span class='${INFO_BAR_SEASON_CLASS}'>${seasonName}</span>`;
  20.     }
  21.  
  22.     const firstRowClassName = `${INFO_BAR_ROW_CLASS}${seasonUrl && seasonName ? ` ${INFO_BAR_ROW_LINK_CLASS}` : ''}`;
  23.  
  24.     const episodeHtml = episodeName ? `<span class='${INFO_BAR_EPISODE_CLASS}'>${episodeName}</span>` : '';
  25.  
  26.     const projectClassName = `${INFO_BAR_LINK_CLASS} ${INFO_BAR_PROJECT_LINK_CLASS}`;
  27.     const projectLinkHtml = projectUrl
  28.         ? `<a href="${projectUrl}" class="${projectClassName}" target="_parent">${projectName}</a>`
  29.         : projectName;
  30.     const project = projectName ? projectLinkHtml : '';
  31.  
  32.     let infoBarClassName = INFO_BAR_TITLE_CLASS;
  33.     infoBarClassName += episodeHtml || seasonHtml ? ` ${INFO_BAR_TITLE_CLASS}--w-episode` : '';
  34.     infoBarClassName += !withSubscriptionButton ? ` ${INFO_BAR_TITLE_CLASS}--long` : '';
  35.  
  36.     const infoBarDefaultHtml = `
  37.         <div class='${infoBarClassName}'>
  38.             ${seasonHtml || episodeHtml ? `<p class="${firstRowClassName}">${seasonHtml} ${episodeHtml}</p>` : ''}
  39.             ${project ? `<p class='${INFO_BAR_ROW_CLASS}'>${project}</p>` : ''}
  40.         </div>
  41.     `;
  42.  
  43.     const separator = project && seasonHtml ? '・' : '';
  44.     const infoBarAltHtml = `
  45.         <div class='${infoBarClassName}'>
  46.             ${episodeHtml ? `<p class="${INFO_BAR_ROW_CLASS}">${episodeHtml}</p>` : ''}
  47.             ${project || seasonHtml ? `<p class='${INFO_BAR_ROW_CLASS}'>${project}${separator}${seasonHtml}</p>` : ''}
  48.         </div>
  49.     `;
  50.  
  51.     infoBar.innerHTML = isDefaultView ? infoBarDefaultHtml : infoBarAltHtml;
  52.  
  53.     return infoBar;
  54. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement