Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: fix inconsistent pb element save-behavior in editor #3540

Open
wants to merge 7 commits into
base: next
Choose a base branch
from

Conversation

neatbyte-vnobis
Copy link
Collaborator

@neatbyte-vnobis neatbyte-vnobis commented Sep 20, 2023

Changes

Resolve issue: Inconsistent pb element save-behavior in editor.

  1. Page revision now updates after adding an element to the page.
  2. Added fallback message to empty elements (image, embeds) on website.
    image

How Has This Been Tested?

Manual

Documentation

None

@neatbyte-vnobis neatbyte-vnobis force-pushed the neatbyte/pb-element-save-inconsistency branch from 31cf6ad to b28739a Compare September 20, 2023 14:59
@adrians5j adrians5j self-assigned this Oct 13, 2023
Copy link
Member

@adrians5j adrians5j left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Left a couple of comments.

import { CreateElementEventActionArgsType } from "./types";
import { EventActionCallable } from "~/types";

export const createElementAction: EventActionCallable<CreateElementEventActionArgsType> = () => {
return {
actions: []
actions: [new UpdateDocumentActionEvent()]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's add a comment why this step please.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did some more investigation on this.

Currently, Page Builder does not send update document requests to API when an element is added to a page. However, based on my testing, some elements (such as Heading, Paragraph, Image, Button, Pages List and Form) do trigger a document update.

For instance, adding a button element triggers this updateSettings function, when added to the page. Elements utilizing the Lexical Editor (like Heading and Paragraph) are triggering this onChange function.

By adding new UpdateDocumentActionEvent() to the createElementAction we ensure the document is updated after adding a new element to the page. But since the elements mentioned already trigger a document update on their own, this addition now results in two separate API calls when they are added.

I've tried to fix this for the Button, but the fix didn't work as expected, so I reverted these Button changes.

packages/app-page-builder/src/types.ts Outdated Show resolved Hide resolved
@adrians5j adrians5j added this to the 5.39.0 milestone Nov 28, 2023
@neatbyte-vnobis
Copy link
Collaborator Author

@adrians5j Is this PR ready to be merged?

@adrians5j adrians5j modified the milestones: 5.39.0, 5.40.0 Jan 12, 2024
@adrians5j adrians5j removed this from the 5.40.0 milestone Apr 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants