dsg
INSERT INTO `cp_filejs` (`id`,`app`,`path`,`modul`,`file_name`,`content`) VALUES ('176','1','u2/creator','post','js/post-view.js-','import app from \\\"./app.js\\\"\r\nimport {\r\n getPostById\r\n} from \\\"./api/posts.js\\\"\r\nimport {\r\n formatPostDate\r\n} from \\\"./utils.js\\\"\r\nimport store from \\\"./store.js\\\"\r\nvar $ = Dom7\r\n\r\nexport function renderPost(post) {\r\n const user = store.getters.user.value\r\n\r\n let post_actions = `\r\n
\r\n
\r\n ${post.is_liked ? \\\'heart_fill\\\' : \\\'heart\\\'}\r\n
\r\n
\r\n chat_bubble\r\n
\r\n
\r\n paperplane\r\n
\r\n `\r\n\r\n if (post.user_id == user.id) {\r\n post_actions += `\r\n
\r\n gear_alt\r\n
\r\n `\r\n }\r\n\r\n post_actions += `
`\r\n\r\n const date = formatPostDate(post.post_date)\r\n const maxDescriptionLength = 10; // Set your character limit here\r\n const isLongDescription = post.caption.length > maxDescriptionLength;\r\n const shortDescription = isLongDescription ? post.caption.slice(0, maxDescriptionLength) : post.caption;\r\n let imageHeight = 400;\r\n\r\n if (post.media.length > 0) {\r\n imageHeight = post.media[0].media_height;\r\n\r\n if (imageHeight > 800) {\r\n imageHeight = \\\'auto\\\';\r\n }\r\n }\r\n\r\n let profile_link;\r\n\r\n if (post.user_id == user.id) {\r\n profile_link = `\r\n \r\n
\r\n
${post.username}
\r\n
`\r\n } else {\r\n profile_link = `\r\n \r\n
\r\n
${post.username}
\r\n
`\r\n }\r\n\r\n const postItem = `\r\n
\r\n
\r\n
\r\n ${profile_link}\r\n \r\n
\r\n
\r\n
\r\n
\r\n ${post.media.map(mediaItem => `\r\n
\r\n ${mediaItem.media_type === \\\'video\\\' ? `\r\n \r\n ` : `\r\n \\\"${mediaItem.media_alt}\\\"\r\n `}\r\n
\r\n `).join(\\\'\\\')}\r\n
\r\n
\r\n
\r\n
\r\n ${post_actions}\r\n
${post.likes_count} likes
\r\n
\r\n ${post.username}
${shortDescription}\r\n ${post.caption}\r\n ${isLongDescription ? `... more` : \\\'\\\'}\r\n
\r\n ${post.comments_count > 0 ? `
View ${post.comments_count} comments
` : \\\'\\\'}\r\n
\r\n
`\r\n\r\n return postItem\r\n}\r\n\r\nexport function displayPost(post) {\r\n const postsContainer = document.getElementById(\\\'post-view-container\\\')\r\n postsContainer.innerHTML = \\\'\\\' // Clear any existing posts\r\n\r\n const user = store.getters.user.value\r\n\r\n let post_actions = `\r\n
\r\n
\r\n ${post.is_liked ? \\\'heart_fill\\\' : \\\'heart\\\'}\r\n
\r\n
\r\n chat_bubble\r\n
\r\n
\r\n paperplane\r\n
\r\n `\r\n\r\n if (post.user_id == user.id) {\r\n post_actions += `\r\n
\r\n gear_alt\r\n
\r\n `\r\n }\r\n\r\n post_actions += `
`\r\n\r\n const date = formatPostDate(post.post_date)\r\n const maxDescriptionLength = 10; // Set your character limit here\r\n const isLongDescription = post.caption.length > maxDescriptionLength;\r\n const shortDescription = isLongDescription ? post.caption.slice(0, maxDescriptionLength) : post.caption;\r\n let imageHeight = 400;\r\n\r\n if (post.media.length > 0) {\r\n imageHeight = post.media[0].media_height;\r\n\r\n if (imageHeight > 800) {\r\n imageHeight = \\\'auto\\\';\r\n }\r\n }\r\n\r\n let profile_link;\r\n\r\n if (post.user_id == user.id) {\r\n profile_link = `\r\n \r\n
\r\n
${post.username}
\r\n
`\r\n } else {\r\n profile_link = `\r\n \r\n
\r\n
${post.username}
\r\n
`\r\n }\r\n\r\n const postItem = `\r\n
\r\n
\r\n
\r\n ${profile_link}\r\n \r\n
\r\n
\r\n
\r\n
\r\n ${post.media.map(mediaItem => `\r\n
\r\n ${mediaItem.media_type === \\\'video\\\' ? `\r\n \r\n ` : `\r\n \\\"${mediaItem.media_alt}\\\"\r\n `}\r\n
\r\n `).join(\\\'\\\')}\r\n
\r\n
\r\n
\r\n
\r\n ${post_actions}\r\n
${post.likes_count} likes
\r\n
\r\n ${post.username}
${shortDescription}\r\n ${post.caption}\r\n ${isLongDescription ? `... more` : \\\'\\\'}\r\n
\r\n ${post.comments_count > 0 ? `
View ${post.comments_count} comments
` : \\\'\\\'}\r\n
\r\n
`\r\n\r\n postsContainer.insertAdjacentHTML(\\\'beforeend\\\', postItem)\r\n}\r\n\r\n// $(document).on(\\\'touchstart\\\', \\\'.media-single-post-content .swiper-wrapper\\\', detectDoubleTapClosure((e) => {\r\n// const parent = e.closest(\\\'.media-post\\\')\r\n// const postId = parent.getAttribute(\\\'data-post-id\\\')\r\n// const isLiked = parent.getAttribute(\\\'data-is-liked\\\') === \\\'true\\\'\r\n\r\n// if (isLiked) {\r\n// return\r\n// }\r\n\r\n// togglePostLike(postId, true)\r\n// }), {\r\n// passive: false\r\n// })\r\n\r\n$(document).on(\\\'page:beforein\\\', \\\'.page[data-name=\\\"post-view\\\"]\\\', async function (e) {\r\n var pathStore = store.getters.getPathData\r\n\r\n var postId = e.detail.route.params.id\r\n var query = e.detail.route.query\r\n\r\n let commentId;\r\n\r\n if (query && query.commentId) {\r\n commentId = query.commentId\r\n }\r\n\r\n if (!postId || postId === \\\'-1\\\') {\r\n return\r\n }\r\n\r\n let cachedData = null\r\n\r\n try {\r\n if (pathStore && pathStore.value[`/post/${postId}`]) {\r\n cachedData = pathStore.value[`/post/${postId}`]\r\n }\r\n } catch (error) {\r\n console.error(\\\'Error fetching cached data:\\\', error)\r\n }\r\n\r\n if (!cachedData) {\r\n $(\\\'.loading-fullscreen.post-view\\\').show()\r\n\r\n const post = await getPostById(postId)\r\n if (!post) {\r\n app.dialog.alert(\\\'Post not found\\\', \\\'Error\\\')\r\n return\r\n }\r\n\r\n store.dispatch(\\\'setPathData\\\', {\r\n path: `/post/${postId}`,\r\n data: post,\r\n })\r\n\r\n cachedData = post\r\n } else {\r\n $(\\\'.loading-fullscreen.post-view\\\').hide()\r\n }\r\n\r\n displayPost(cachedData)\r\n\r\n if (commentId) {\r\n $(\\\'.media-post-comment\\\').click()\r\n }\r\n\r\n\r\n setTimeout(() => {\r\n // find .comment data-comment-id=\\\"${comment.id}\\\" and animate it to glow#\r\n if (commentId) {\r\n const comment = $(`.comment[data-comment-id=\\\"${commentId}\\\"]`)\r\n console.log(\\\'Comment:\\\', comment);\r\n\r\n if (comment.length > 0) {\r\n comment.addClass(\\\'target-highlight\\\')\r\n // Scroll to the comment\r\n document.querySelector(`.comment[data-comment-id=\\\"${commentId}\\\"]`).scrollIntoView({\r\n behavior: \\\'smooth\\\', // Optional, adds smooth scrolling\r\n block: \\\'start\\\', // Aligns the element to the top of the view\r\n inline: \\\'nearest\\\' // Aligns the element horizontally in the viewport\r\n });\r\n\r\n }\r\n\r\n setTimeout(() => {\r\n comment.removeClass(\\\'target-highlight\\\')\r\n }, 3000)\r\n }\r\n }, 2000)\r\n})');
Copy This

Warning: file_get_contents(/home/u340524018/domains/agniaga.com/public_html/sub/u2/creator/js/post-view.js-): Failed to open stream: No such file or directory in /home/u340524018/domains/agniaga.com/public_html/sub/u2/cp/inc.filejs.php on line 190
import app from \"./app.js\"
import {
  getPostById
} from \"./api/posts.js\"
import {
  formatPostDate
} from \"./utils.js\"
import store from \"./store.js\"
var $ = Dom7

export function renderPost(post) {
  const user = store.getters.user.value

  let post_actions = `
     <div class=\"media-post-actions\">
        <div class=\"media-post-like\" data-post-id=\"${post.id}\">
          <i class=\"icon f7-icons ${post.is_liked ? \'text-red\' : \'\'}\" data-post-id=\"${post.id}\">${post.is_liked ? \'heart_fill\' : \'heart\'}</i>
        </div>
        <div class=\"media-post-comment popup-open\" data-popup=\".comments-popup\" data-post-id=\"${post.id}\">
          <i class=\"icon f7-icons\">chat_bubble</i>
        </div>
        <div class=\"media-post-share popup-open\" data-popup=\".share-popup\">
          <i class=\"icon f7-icons\">paperplane</i>
        </div>
    `

  if (post.user_id == user.id) {
    post_actions += `
        <div class=\"media-post-edit popup-open\" data-popup=\".edit-post-popup\" data-post-id=\"${post.id}\">
          <i class=\"icon f7-icons\">gear_alt</i>
        </div>
      `
  }

  post_actions += `</div>`

  const date = formatPostDate(post.post_date)
  const maxDescriptionLength = 10; // Set your character limit here
  const isLongDescription = post.caption.length > maxDescriptionLength;
  const shortDescription = isLongDescription ? post.caption.slice(0, maxDescriptionLength) : post.caption;
  let imageHeight = 400;

  if (post.media.length > 0) {
    imageHeight = post.media[0].media_height;

    if (imageHeight > 800) {
      imageHeight = \'auto\';
    }
  }

  let profile_link;

  if (post.user_id == user.id) {
    profile_link = `
      <a href=\"#\" class=\"view-profile\">
        <div class=\"media-post-avatar\" style=\"background-image: url(\'${post.user_profile_image || \'assets/img/profile-placeholder.jpg\'}\');\"></div>
        <div class=\"media-post-user\">${post.username}</div>
      </a>`
  } else {
    profile_link = `
      <a href=\"/profile-view/${post.user_id}\">
        <div class=\"media-post-avatar\" style=\"background-image: url(\'${post.user_profile_image || \'assets/img/profile-placeholder.jpg\'}\');\"></div>
        <div class=\"media-post-user\">${post.username}</div>
      </a>`
  }

  const postItem = `
  <div class=\"media-post single\" data-post-id=\"${post.id}\" data-is-liked=\"${post.is_liked}\">
    <div class=\"media-single-post-content\">
    <div class=\"media-post-header\">
        ${profile_link}
        <div class=\"media-post-date\">${date}</div>
      </div>
      <div class=\"media-single-post-content\">
        <div class=\"swiper-container\">
          <div class=\"swiper-wrapper\">
            ${post.media.map(mediaItem => `
                <div class=\"swiper-slide post-media\" style=\"height: ${imageHeight};\">
                ${mediaItem.media_type === \'video\' ? `
                  <video autoplay loop muted playsinline class=\"video-background media-post-video\" id=\"${mediaItem.id}\">
                    <source src=\"${mediaItem.media_url}\" type=\"${mediaItem.media_mime_type}\" />
                  </video>
                ` : `
                  <img src=\"${mediaItem.media_url}\" alt=\"${mediaItem.media_alt}\" />
                `}
              </div>
            `).join(\'\')}
          </div>
          <div class=\"swiper-pagination\"></div>
        </div>
      </div>
      ${post_actions}
      <div class=\"media-post-likecount\" data-like-count=\"${post.likes_count}\">${post.likes_count} likes</div>
      <div class=\"media-post-description\">
        <strong>${post.username}</strong> <br/> <span class=\"post-caption\">${shortDescription}</span>
        <span class=\"full-description hidden\">${post.caption}</span>
        ${isLongDescription ? `<span class=\"media-post-readmore\">... more</span>` : \'\'}
      </div>
      ${post.comments_count > 0 ? `<div class=\"media-post-commentcount popup-open\" data-popup=\".comments-popup\" data-post-id=\"${post.id}\">View ${post.comments_count} comments</div>` : \'\'}
    </div>
  </div>`

  return postItem
}

export function displayPost(post) {
  const postsContainer = document.getElementById(\'post-view-container\')
  postsContainer.innerHTML = \'\' // Clear any existing posts

  const user = store.getters.user.value

  let post_actions = `
     <div class=\"media-post-actions\">
        <div class=\"media-post-like\" data-post-id=\"${post.id}\">
          <i class=\"icon f7-icons ${post.is_liked ? \'text-red\' : \'\'}\" data-post-id=\"${post.id}\">${post.is_liked ? \'heart_fill\' : \'heart\'}</i>
        </div>
        <div class=\"media-post-comment popup-open\" data-popup=\".comments-popup\" data-post-id=\"${post.id}\">
          <i class=\"icon f7-icons\">chat_bubble</i>
        </div>
        <div class=\"media-post-share popup-open\" data-popup=\".share-popup\">
          <i class=\"icon f7-icons\">paperplane</i>
        </div>
    `

  if (post.user_id == user.id) {
    post_actions += `
        <div class=\"media-post-edit popup-open\" data-popup=\".edit-post-popup\" data-post-id=\"${post.id}\">
          <i class=\"icon f7-icons\">gear_alt</i>
        </div>
      `
  }

  post_actions += `</div>`

  const date = formatPostDate(post.post_date)
  const maxDescriptionLength = 10; // Set your character limit here
  const isLongDescription = post.caption.length > maxDescriptionLength;
  const shortDescription = isLongDescription ? post.caption.slice(0, maxDescriptionLength) : post.caption;
  let imageHeight = 400;

  if (post.media.length > 0) {
    imageHeight = post.media[0].media_height;

    if (imageHeight > 800) {
      imageHeight = \'auto\';
    }
  }

  let profile_link;

  if (post.user_id == user.id) {
    profile_link = `
      <a href=\"#\" class=\"view-profile\">
        <div class=\"media-post-avatar\" style=\"background-image: url(\'${post.user_profile_image || \'assets/img/profile-placeholder.jpg\'}\');\"></div>
        <div class=\"media-post-user\">${post.username}</div>
      </a>`
  } else {
    profile_link = `
      <a href=\"/profile-view/${post.user_id}\">
        <div class=\"media-post-avatar\" style=\"background-image: url(\'${post.user_profile_image || \'assets/img/profile-placeholder.jpg\'}\');\"></div>
        <div class=\"media-post-user\">${post.username}</div>
      </a>`
  }

  const postItem = `
  <div class=\"media-post single\" data-post-id=\"${post.id}\" data-is-liked=\"${post.is_liked}\">
            <div class=\"media-single-post-content\">
            <div class=\"media-post-header\">
                ${profile_link}
                <div class=\"media-post-date\">${date}</div>
              </div>
              <div class=\"media-single-post-content\">
                <div class=\"swiper-container\">
                  <div class=\"swiper-wrapper\">
                    ${post.media.map(mediaItem => `
                       <div class=\"swiper-slide post-media\" style=\"height: ${imageHeight};\">
                        ${mediaItem.media_type === \'video\' ? `
                          <video autoplay loop muted playsinline class=\"video-background media-post-video\" id=\"${mediaItem.id}\">
                            <source src=\"${mediaItem.media_url}\" type=\"${mediaItem.media_mime_type}\" />
                          </video>
                        ` : `
                          <img src=\"${mediaItem.media_url}\" alt=\"${mediaItem.media_alt}\" />
                        `}
                      </div>
                    `).join(\'\')}
                  </div>
                  <div class=\"swiper-pagination\"></div>
                </div>
              </div>
              ${post_actions}
              <div class=\"media-post-likecount\" data-like-count=\"${post.likes_count}\">${post.likes_count} likes</div>
              <div class=\"media-post-description\">
                <strong>${post.username}</strong> <br/> <span class=\"post-caption\">${shortDescription}</span>
                <span class=\"full-description hidden\">${post.caption}</span>
                ${isLongDescription ? `<span class=\"media-post-readmore\">... more</span>` : \'\'}
              </div>
              ${post.comments_count > 0 ? `<div class=\"media-post-commentcount popup-open\" data-popup=\".comments-popup\" data-post-id=\"${post.id}\">View ${post.comments_count} comments</div>` : \'\'}
            </div>
          </div>`

  postsContainer.insertAdjacentHTML(\'beforeend\', postItem)
}

// $(document).on(\'touchstart\', \'.media-single-post-content .swiper-wrapper\', detectDoubleTapClosure((e) => {
//   const parent = e.closest(\'.media-post\')
//   const postId = parent.getAttribute(\'data-post-id\')
//   const isLiked = parent.getAttribute(\'data-is-liked\') === \'true\'

//   if (isLiked) {
//     return
//   }

//   togglePostLike(postId, true)
// }), {
//   passive: false
// })

$(document).on(\'page:beforein\', \'.page[data-name=\"post-view\"]\', async function (e) {
  var pathStore = store.getters.getPathData

  var postId = e.detail.route.params.id
  var query = e.detail.route.query

  let commentId;

  if (query && query.commentId) {
    commentId = query.commentId
  }

  if (!postId || postId === \'-1\') {
    return
  }

  let cachedData = null

  try {
    if (pathStore && pathStore.value[`/post/${postId}`]) {
      cachedData = pathStore.value[`/post/${postId}`]
    }
  } catch (error) {
    console.error(\'Error fetching cached data:\', error)
  }

  if (!cachedData) {
    $(\'.loading-fullscreen.post-view\').show()

    const post = await getPostById(postId)
    if (!post) {
      app.dialog.alert(\'Post not found\', \'Error\')
      return
    }

    store.dispatch(\'setPathData\', {
      path: `/post/${postId}`,
      data: post,
    })

    cachedData = post
  } else {
    $(\'.loading-fullscreen.post-view\').hide()
  }

  displayPost(cachedData)

  if (commentId) {
    $(\'.media-post-comment\').click()
  }


  setTimeout(() => {
    // find .comment data-comment-id=\"${comment.id}\" and animate it to glow#
    if (commentId) {
      const comment = $(`.comment[data-comment-id=\"${commentId}\"]`)
      console.log(\'Comment:\', comment);

      if (comment.length > 0) {
        comment.addClass(\'target-highlight\')
        // Scroll to the comment
        document.querySelector(`.comment[data-comment-id=\"${commentId}\"]`).scrollIntoView({
          behavior: \'smooth\', // Optional, adds smooth scrolling
          block: \'start\', // Aligns the element to the top of the view
          inline: \'nearest\' // Aligns the element horizontally in the viewport
        });

      }

      setTimeout(() => {
        comment.removeClass(\'target-highlight\')
      }, 3000)
    }
  }, 2000)
})
Add JS Function Name