neos / neos-ui

Neos CMS UI written in ReactJS with Immutable data structures.
GNU General Public License v3.0
264 stars 135 forks source link

BUG: Occasions of the loading indicator running in an endless loop #3477

Open grebaldi opened 1 year ago

grebaldi commented 1 year ago

Description

There are a couple of occasions in which the loading indicator doesn't notice that some async process has failed and just ends up looping endlessly.

Several older issues mention this phenomenon:

Steps to Reproduce

Repro 1

  1. Open a page in the backend
  2. Run ./flow session:destroyall
  3. Navigate to a different page in the backend, so the login dialog shows up
  4. See that the loading indicator runs in an endless loop

Repro 2

  1. Render a page with just one Neos.Fusion:Debug output like this:
    prototype(Vendor.Site:Document.Page) < prototype(Neos.Fusion:Component) {
    renderer = Neos.Fusion:Debug {
        foo = 'bar'
    }
    }
  2. Open that page in the backend
  3. See that the loading indicator runs in an endless loop

Repro 3

  1. Provoke an error by rendering a page like this:
    prototype(Vendor.Site:Document.Page) < prototype(Neos.Fusion:Component) {
    ren/derer = 'foo'
    }
  2. Open that page in the backend
  3. See an error message an the loading indicator running in an endless loop

Expected behavior

The loading indicator should not run in an endless loop, but stop when an error occurs.

Actual behavior

Peek 2023-05-02 15-44

Affected Versions

Neos: >= 7.3 (and older)

UI: >= 7.3 (and older)

laurahaenel commented 6 months ago

Problem

We don't want to force users to reload the complete page (F5) when an error occurs. We want devs to be able to use the UI to print debug staff (or to investigate errors without reloading).

Possible solution

@mhsdesign We need to specify what the modal should say and which functionalities to offer.

Opened new feature request https://github.com/neos/neos-ui/issues/3746

@grebaldi any thoughts on that?

mhsdesign commented 5 months ago

Things we discussed / found out at the sprint