import {
addPost
} from "./api/posts.js";
import app, {
showToast
} from "./app.js";
import store from "./store.js";
var $ = Dom7;
// input post_image
$(document).on(\'change\', \'input#fileuploadInput\', function(e) {
const file = e.target.files[0]
const reader = new FileReader()
reader.onload = function(e) {
document.querySelector(\'.custom-file-upload label\').style.backgroundImage = `url(\'${e.target.result}\')`
document.querySelector(\'.custom-file-upload label\').style.backgroundSize = \'cover\'
}
reader.readAsDataURL(file)
})
$(document).on(\'click\', \'#submit-add-post-form\', async function(e) {
var view = app.views.current
const form = $(\'form#addPostForm\')
const cover_image = form.find(\'input[name="post_image"]\').prop(\'files\')[0]
const description = $(\'#post_caption\').val();
if (!cover_image) {
showToast(\'Please upload a cover image\')
return
}
let base64 = null
if (cover_image) {
// Wrap the FileReader in a Promise to wait for it to complete
base64 = await new Promise((resolve, reject) => {
const reader = new FileReader()
reader.readAsDataURL(cover_image)
reader.onload = () => resolve(reader.result)
reader.onerror = () => reject(new Error(\'Failed to read image as base64\'))
})
}
const data = {
caption: description,
cover_photo: base64
}
try {
app.preloader.show()
const response = await addPost(data)
app.preloader.hide()
if (!response || response.error) {
throw new Error(response.error);
}
showToast(\'Add post successfully\')
await store.dispatch(\'getMyPosts\', {
page: 1,
clear: true
})
view.router.navigate(\'/\')
//view.router.back()
} catch (error) {
app.notification.create({
titleRightText: \'now\',
subtitle: \'Oops, something went wrong\',
text: error.message || \'Failed to add post\',
}).open()
app.preloader.hide()
}
})