dsg
Copy This
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()
  }
})
Add JS Function Name