INSERT INTO `cp_filejs` (`id`,`app`,`path`,`modul`,`file_name`,`content`) VALUES ('208','1','u2/creator','waste','js/waste-view.js-','import app from \\\"./app.js\\\"\r\nimport {\r\n getWasteById\r\n} from \\\"./api/waste.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 renderWaste(waste) {\r\n const user = store.getters.user.value\r\n\r\n let waste_actions = `\r\n
\r\n
`\r\n\r\n const date = formatPostDate(waste.create_at)\r\n const maxDescriptionLength = 10; // Set your character limit here\r\n const isLongDescription = waste.caption.length > maxDescriptionLength;\r\n const shortDescription = isLongDescription ? waste.caption.slice(0, maxDescriptionLength) : waste.caption;\r\n let imageHeight = 400;\r\n\r\n if (waste.media.length > 0) {\r\n imageHeight = waste.media[0].media_height;\r\n\r\n if (imageHeight > 400) {\r\n imageHeight = \\\'auto\\\';\r\n }\r\n }\r\n\r\n let profile_link;\r\n\r\n if (waste.user_id == user.id) {\r\n profile_link = `\r\n \r\n \r\n \r\n ${waste.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 (waste.user_id == user.id) {\r\n waste_actions += `\r\n \r\n gear_alt\r\n
\r\n `\r\n }\r\n\r\n waste_actions += `${waste.username}
\r\n `\r\n } else {\r\n profile_link = `\r\n \r\n \r\n ${waste.username}
\r\n `\r\n }\r\n\r\n const wasteItem = `\r\n \r\n
`\r\n\r\n return wasteItem\r\n}\r\n\r\nexport function displayWaste(waste) {\r\n const wastesContainer = document.getElementById(\\\'waste-view-container\\\')\r\n wastesContainer.innerHTML = \\\'\\\' // Clear any existing wastes\r\n\r\n const user = store.getters.user.value\r\n\r\n let waste_actions = `\r\n \r\n
\r\n \r\n ${profile_link}\r\n
\r\n ${date}
\r\n \r\n
\r\n ${waste_actions}\r\n \r\n
\r\n \r\n ${waste.media.map(mediaItem => `\r\n \r\n `).join(\\\'\\\')}\r\n
\r\n \r\n ${waste.likes_count} likes
\r\n \r\n ${waste.username}
${shortDescription}\r\n ${waste.caption}\r\n ${isLongDescription ? `... more` : \\\'\\\'}\r\n
\r\n ${waste.comments_count > 0 ? `${shortDescription}\r\n ${waste.caption}\r\n ${isLongDescription ? `... more` : \\\'\\\'}\r\n
View ${waste.comments_count} comments
` : \\\'\\\'}\r\n \r\n
`\r\n\r\n const date = formatPostDate(waste.create_at)\r\n const maxDescriptionLength = 10; // Set your character limit here\r\n const isLongDescription = waste.caption.length > maxDescriptionLength;\r\n const shortDescription = isLongDescription ? waste.caption.slice(0, maxDescriptionLength) : waste.caption;\r\n let imageHeight = 400;\r\n\r\n if (waste.media.length > 0) {\r\n imageHeight = waste.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 (waste.user_id == user.id) {\r\n profile_link = `\r\n \r\n \r\n \r\n ${waste.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 (waste.user_id == user.id) {\r\n waste_actions += `\r\n \r\n gear_alt\r\n
\r\n `\r\n }\r\n\r\n waste_actions += `${waste.username}
\r\n `\r\n } else {\r\n profile_link = `\r\n \r\n \r\n ${waste.username}
\r\n `\r\n }\r\n\r\n const wasteItem = `\r\n \r\n
`\r\n\r\n wastesContainer.insertAdjacentHTML(\\\'beforeend\\\', wasteItem)\r\n}\r\n\r\n$(document).on(\\\'page:beforein\\\', \\\'.page[data-name=\\\"waste-view\\\"]\\\', async function (e) {\r\n var pathStore = store.getters.getPathData\r\n\r\n var wasteId = 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 (!wasteId || wasteId === \\\'-1\\\') {\r\n return\r\n }\r\n\r\n let cachedData = null\r\n\r\n try {\r\n if (pathStore && pathStore.value[`/waste/${wasteId}`]) {\r\n cachedData = pathStore.value[`/waste/${wasteId}`]\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.waste-view\\\').show()\r\n\r\n const waste = await getWasteById(wasteId)\r\n if (!waste) {\r\n app.dialog.alert(\\\'Waste not found\\\', \\\'Error\\\')\r\n return\r\n }\r\n\r\n store.dispatch(\\\'setPathData\\\', {\r\n path: `/waste/${wasteId}`,\r\n data: waste,\r\n })\r\n\r\n cachedData = waste\r\n } else {\r\n $(\\\'.loading-fullscreen.waste-view\\\').hide()\r\n }\r\n\r\n displayWaste(cachedData)\r\n\r\n if (commentId) {\r\n $(\\\'.media-waste-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})');\r\n
\r\n \r\n ${profile_link}\r\n
\r\n ${date}
\r\n \r\n
\r\n ${waste_actions}\r\n \r\n
\r\n \r\n ${waste.media.map(mediaItem => `\r\n \r\n `).join(\\\'\\\')}\r\n
\r\n \r\n ${waste.likes_count} likes
\r\n \r\n ${waste.username}
${shortDescription}\r\n ${waste.caption}\r\n ${isLongDescription ? `... more` : \\\'\\\'}\r\n
\r\n ${waste.comments_count > 0 ? `${shortDescription}\r\n ${waste.caption}\r\n ${isLongDescription ? `... more` : \\\'\\\'}\r\n
View ${waste.comments_count} comments
` : \\\'\\\'}\r\n