| <div> | |
| <div style="display: flex;justify-content: space-between;"> | |
| <div class="potd"> | |
| π POTD π | |
| </div> | |
| <div> | |
| <label class="toggle-btn"> | |
| <span class="toggle-letter">Filter NSFW</span> | |
| <input type="checkbox" v-model="filterNsfw" @change="fetchBests"> | |
| <span class="slider round"></span> | |
| </label> | |
| </div> | |
| </div> | |
| <div class="product-slider" v-if="bestFeeds.length > 0"> | |
| <div class="pinterest-gallery"> | |
| <template v-for="(imageData, j) in bestFeeds" :key="j"> | |
| <div class="pinterest-item"> | |
| <button @click="openModal(imageData)"> | |
| <img :src="imageData.url"> | |
| </button> | |
| <div class="item-overlay"> | |
| <div style="display:flex;align-items: center;height:100%;"> | |
| <template v-if="!imageData.liked"> | |
| <div class="liked-button-div not-liked-div" @click="addToWishList(imageData)"> | |
| <button class="like-button">π {{formatNumber(imageData.likecount)}}</button> | |
| </div> | |
| </template> | |
| <template v-else> | |
| <div class="liked-button-div already-liked-div" @click="deleteWishList(imageData)"> | |
| <button class="like-button already-liked-button">π {{formatNumber(imageData.likecount)}}</button> | |
| </div> | |
| </template> | |
| <div style="display: flex;justify-content: center;align-items: center;margin-left:5px;height:100%;"> | |
| <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="12" zoomAndPan="magnify" viewBox="0 0 39 38.999999" height="12" preserveAspectRatio="xMidYMid meet" version="1.0"><defs><clipPath id="6d2be58645"><path d="M 2.515625 24 L 36.265625 24 L 36.265625 39 L 2.515625 39 Z M 2.515625 24 " clip-rule="nonzero"/></clipPath></defs><path fill="#ffffff" d="M 19.453125 0.21875 C 18.429688 0.21875 17.601562 1.054688 17.601562 2.085938 L 17.601562 22.101562 L 13.253906 17.730469 C 11.507812 16.023438 8.933594 18.601562 10.632812 20.367188 C 10.632812 20.367188 18.144531 27.925781 18.144531 27.925781 C 18.84375 28.65625 20.0625 28.632812 20.765625 27.925781 C 20.765625 27.925781 28.277344 20.367188 28.277344 20.367188 C 29.96875 18.605469 27.410156 16.023438 25.652344 17.730469 C 25.652344 17.730469 21.308594 22.101562 21.308594 22.101562 L 21.308594 2.085938 C 21.308594 1.054688 20.476562 0.21875 19.453125 0.21875 Z M 19.453125 0.21875 " fill-opacity="1" fill-rule="nonzero"/><g clip-path="url(#6d2be58645)"><path fill="#ffffff" d="M 4.433594 24.738281 C 3.410156 24.738281 2.578125 25.574219 2.578125 26.605469 L 2.578125 29.359375 C 2.578125 34.554688 6.78125 38.78125 11.945312 38.78125 L 26.964844 38.78125 C 32.128906 38.78125 36.328125 34.554688 36.328125 29.359375 L 36.328125 26.605469 C 36.328125 25.574219 35.5 24.738281 34.476562 24.738281 C 33.453125 24.738281 32.621094 25.574219 32.621094 26.605469 L 32.621094 29.359375 C 32.621094 32.496094 30.082031 35.050781 26.964844 35.050781 L 11.945312 35.050781 C 8.824219 35.050781 6.289062 32.496094 6.289062 29.359375 L 6.289062 26.605469 C 6.289062 25.574219 5.457031 24.738281 4.433594 24.738281 Z M 4.433594 24.738281 " fill-opacity="1" fill-rule="nonzero"/></g></svg> | |
| </div> | |
| <div style="display:flex;justify-content: center;align-items: center;color:white;"> | |
| {{formatNumber(imageData.total_sendto)}} | |
| </div> | |
| <div style="display: flex;justify-content: center;align-items: center;margin-left:5px;height:100%;"> | |
| <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="20" zoomAndPan="magnify" viewBox="0 0 39 38.999999" height="20" preserveAspectRatio="xMidYMid meet" version="1.0"><defs><clipPath id="ae37d71e45"><path d="M 5.074219 5.542969 L 33.574219 5.542969 L 33.574219 33.292969 L 5.074219 33.292969 Z M 5.074219 5.542969 " clip-rule="nonzero"/></clipPath></defs><g clip-path="url(#ae37d71e45)"><path fill="#ffffff" d="M 11.796875 33.273438 C 11.722656 33.273438 11.648438 33.253906 11.582031 33.21875 C 11.4375 33.136719 11.347656 32.988281 11.347656 32.820312 L 11.347656 28.015625 L 9.152344 28.015625 C 6.902344 28.015625 5.074219 26.171875 5.074219 23.90625 L 5.074219 9.671875 C 5.074219 7.410156 6.902344 5.566406 9.152344 5.566406 L 29.492188 5.566406 C 31.742188 5.566406 33.570312 7.410156 33.570312 9.671875 L 33.570312 23.90625 C 33.570312 26.171875 31.742188 28.015625 29.492188 28.015625 L 20.226562 28.015625 C 17.496094 29.746094 14.765625 31.472656 12.035156 33.203125 C 11.964844 33.25 11.878906 33.273438 11.796875 33.273438 Z M 11.796875 33.273438 " fill-opacity="1" fill-rule="nonzero"/></g></svg> | |
| </div> | |
| <div style="display:flex;justify-content: center;align-items: center;color:white;"> | |
| {{formatNumber(imageData.total_comments)}} | |
| </div> | |
| </div> | |
| <div style="display:flex;align-items:center;"> | |
| <a href="javascript:void(0);" target="_self" @click="(e)=>moveFeedProfileTab(e,imageData.nickname)" class="item-author">by {{imageData.nickname}}</a> | |
| </div> | |
| </div> | |
| </div> | |
| </template> | |
| </div> | |
| </div> | |
| <div :class="{promptModal: showModal}" v-if="showModal"> | |
| <div class="prompt-modal-page"> | |
| <div class="prompt-modal-image" @click="closeOutsideModal"> | |
| <img :src="src" alt="Pretty Image" class="prompt-modal-image-tag"/> | |
| </div> | |
| <div class="prompt-modal-sidebar"> | |
| <div class="modal-sidebar-header"> | |
| <div style="display:flex;"> | |
| <div class="modal-like-wrapper"> | |
| <template v-if="!currentItem.liked"> | |
| <div class="big-liked-button-div not-liked-div" @click="addToWishList(currentItem)"> | |
| <button class="like-button">π {{formatNumber(currentItem.likecount)}}</button> | |
| </div> | |
| </template> | |
| <template v-else> | |
| <div class="big-liked-button-div already-liked-div" @click="deleteWishList(currentItem)"> | |
| <button class="like-button already-liked-button">π {{formatNumber(currentItem.likecount)}}</button> | |
| </div> | |
| </template> | |
| </div> | |
| <div class="modal-writer-wrappers"> | |
| <a class="modal-writer" href="javascript:void(0);" target="_self" @click="(e)=>moveFeedProfileTab(e,currentItem.nickname)">By {{currentItem.nickname}}</a> | |
| <div class="modal-writer-time">{{currentItem.created_at}}</div> | |
| </div> | |
| </div> | |
| <div class="modal-writer-wrapper-exit" @click="close()"> | |
| <div> | |
| <svg xmlns="http://www.w3.org/2000/svg" width="35" height="35" viewBox="0 0 35 35" fill="none"> | |
| <path d="M19.9037 17.8831L27.752 25.7314V27.7998H25.6837L17.8354 19.9514L9.98703 27.7998H7.9187V25.7314L15.767 17.8831L7.9187 10.0348V7.96643H9.98703L17.8354 15.8148L25.6837 7.96643H27.752V10.0348L19.9037 17.8831Z" fill="white"/> | |
| <rect x="1.32679" y="1.37439" width="33.0173" height="33.0173" rx="4.50866" stroke="#0E0E0E" stroke-width="0.982675"/> | |
| </svg> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="modal-write-input-wrapper"> | |
| <div class="modal-write-input-div"> | |
| <textarea v-model="comment" @input="handleTextareaInput" id="modal-writer-type" class="modal-writer-type" @focus="makeSaveButtonVisible" placeholder="Type your comment"></textarea> | |
| </div> | |
| <div style="display:flex;justify-content:center;width:100%;"> | |
| <div v-if="showCommentWrite" class="write-row-button"> | |
| <button class="btn-write-row btn-cancel" @click="hideSaveButtonVisible">Cancel</button> | |
| <button class="btn-write-row btn-save" @click="writeComment()">Comment</button> | |
| / </div> | |
| </div> | |
| </div> | |
| <div style="margin-top:10px;border-bottom: 1px solid #AFB6BD;padding-bottom:17px;"> | |
| <template v-for="(commentData, j) in comments" :key="j"> | |
| <div style="margin-left:10px;margin-right:10px;"> | |
| <div style="display:flex;width:100%;margin-bottom:12px;color:white;"> | |
| <div style="margin-right:10px;color:white;font-size:17px;font-weight:700;">{{commentData.user.nickname}}</div> | |
| <div style="color:white;font-size:12px;font-weight:300;">{{commentData.created_at}}</div> | |
| </div> | |
| <div style="display:flex;width:100%;color:white;"> | |
| <div style="color:white;font-size:13px;">{{commentData.text}}</div> | |
| </div> | |
| </div> | |
| </template> | |
| </div> | |
| <div class="prompt-send-to"> | |
| <button class="btn-send-to btn-send-to-text" @click="this.sendToTextToImage()">Send to t2i</button> | |
| <button class="btn-send-to btn-send-to-img" @click="this.sendToImageToImage()">Send to i2i</button> | |
| </div> | |
| <div style="margin-top:12px;"> | |
| <div style="margin-left: 10px;margin-right: 10px;"> | |
| <div style="color:white;margin-bottom:12px;">Generation Data</div> | |
| <div style="box-sizing: border-box;display: flex;flex-direction: column;justify-content: center;align-items: flex-start;padding-left:20px;padding-right:20px;padding-top:10px;padding-bottom:10px;border: 1px solid #AFB6BD;border-radius: 5px;color:white;"> | |
| <template v-for="(value, key) in metadata"> | |
| <template v-if="/^[A-Z]/.test(key)"> | |
| {{key}}:{{value}}, | |
| </template> | |
| </template> | |
| </div> | |
| <div style="display:flex;justify-content:center;margin-top:20px;"> | |
| <button @click="copyClipboard" style="text-align:center;box-sizing: border-box;display: flex;flex-direction: column;justify-content: center;align-items: flex-start;padding-top:10px;padding-bottom:10px;border: 1px solid #AFB6BD;border-radius: 5px;color:white;width:100%;"> | |
| <div style="color:white;margin:auto;">Copy Generation Data</div></button> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> |