dsg
Copy This
import {
    updatePost
} from "./api/posts.js";
import app, {
    showToast
} from "./app.js";
import store from "./store.js";

var $ = Dom7;

$(document).on(\'page:beforein\', \'.page[data-name="post-edit"]\', async function (e) {
    var posts = store.getters.myPosts.value
    var postId = e.detail.route.params.id

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

    console.log(posts);
    const post = posts.data.find(p => p.id == postId)

    $(\'#edit_post_id\').val(postId);
    $(\'#post_content\').val(post.caption);

});

$(document).on(\'click\', \'#update-post\', async function (e) {
    var view = app.views.current

    const description = $(\'#post_content\').val();
    const postId = $(\'#edit_post_id\').val();

    const data = {
        post_id: postId,
        caption: description
    }

    try {
        app.preloader.show()

        const response = await updatePost(data)

        app.preloader.hide()

        if (!response || response.error) {
            throw new Error(response.error);
        }

        showToast(\'Post updated successfully\')

        // fine elem with data-post-id="52" and update the .media-post-description .post-caption text
        var postElem = $(`[data-post-id="${postId}"]`).find(\'.media-post-description\')

        const maxDescriptionLength = 200; // Set your character limit here
        const isLongDescription = description.length > maxDescriptionLength;
        const shortDescription = isLongDescription ? description.slice(0, maxDescriptionLength) : description;

        // for each postElem, loop through and update the .post-caption and .full-description hidden input
        postElem.each(function () {
            var postCaption = $(this).find(\'.post-caption\');
            var fullDescription = $(this).find(\'.full-description\');

            postCaption.text(shortDescription);
            fullDescription.val(description);
        });

        store.dispatch(\'updatePost\', {
            post_id: postId,
            caption: description
        })

        view.router.back()
    } catch (error) {
        app.notification.create({
            titleRightText: \'now\',
            subtitle: \'Oops, something went wrong\',
            text: error.message || \'Failed to update post\',
        }).open()
        app.preloader.hide()
    }
})
Add JS Function Name