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

Table.view onStoreRecordchange: refactor to call createViewData for the specific record #5179

Open
wants to merge 5 commits into
base: dev
Choose a base branch
from

Conversation

gplanansky
Copy link

What kind of change does this PR introduce? (check at least one)

  • Refactor

  • [ x] Other, please describe:

    The onStoreRecordChange colspan implementation invokes createViewData to reprocess all items:

         //we should narrow it down to only update the current row
        me.createViewData(me.store.items)

The proposed change invokes createViewData to process only the single specified record. This works for any change that createViewData handles, not just colspan. For example it will work for annotation.selected processing, if that happens in createViewData.

Does this PR introduce a breaking change? (check one)

  • No : I do not think so, , testing against Neo.examples, Neo.apps, and my own table codes.

What it does:

onStoreRecordChange is empty now, it just calls createViewData.

createViewData(inputData) now tests whether inputData is a data array (from store & collection), or, a single record from onStoreRecordChange. If it is a single record there is some bookkeeping with the index values to process the record as a record array of length 1.

It turns out that an initial loading of Store can trigger both the expected data array load event, and an equivalent series of recordChange events. To forestall that double processing, onStoreRecordChange is only enabled if isLoaded === true. When createViewData encounters a data/items array, it sets isLoaded to true.

George Planansky and others added 5 commits December 1, 2023 08:30
…eta or shift keys were down, it also fires ('select/deselect', {record}). App listeners can check the rowclick data object for MouseEvent properties. Select/deselect listeners work as before.
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.

None yet

1 participant