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

Incorrect / stale context.listView on updated SharePoint List UI experience (ListView Command Set) #9908

Open
1 of 9 tasks
chrisredman01 opened this issue Sep 5, 2024 · 6 comments
Labels
Needs: Triage 🔍 Awaiting categorization and initial review. type:bug-suspected Suspected bug (not working as designed/expected). See “type:bug-confirmed” for confirmed bugs.

Comments

@chrisredman01
Copy link

Target SharePoint environment

SharePoint Online

What SharePoint development model, framework, SDK or API is this about?

💥 SharePoint Framework

Developer environment

Windows

What browser(s) / client(s) have you tested

  • 💥 Internet Explorer
  • 💥 Microsoft Edge
  • 💥 Google Chrome
  • 💥 FireFox
  • 💥 Safari
  • mobile (iOS/iPadOS)
  • mobile (Android)
  • not applicable
  • other (enter in the "Additional environment details" area below)

Additional environment details

  • browser version 128.0.6613.114
  • SPFx version 1.19.0
  • Node.js version v18.20.4

Describe the bug / error

When a SharePoint List is using the updated UI experience, and the list has folders enabled, the this.context.listView object is not kept in sync.

For example, this.context.listView.folderInfo.folderPath property contains the initial value when the page is loaded, but is not updated when the user clicks in to folders on the list.

The this.context.listView.rows is also stale, and only shows the items from the initial page load.

We have a ListView Command Set extension which uses the folderPath property to determine where in the list the user is when they clicked the Command Set button.

This differs to the behaviour on the 'old' modern UI.

Example:

  • First load of the list is mainly correct i.e. empty folder path as it's the root, rows = 3
    image

  • Clicking in to 'Test' folder, folder path is still empty, and we see row count of 3, rather than row count of 1
    image

  • If the page is refreshed while in the 'Test' folder, the context is correct
    image

  • Clicking 'My List' on the breadcrumb, then leaves the context stale and showing the values for the 'Test' folder still
    image

Steps to reproduce

  1. Create the default Command Set SPFx extension and update the config so it applies to Lists
  2. Change the dialog to output this.content.listView.folderInfo.folderPath and add console.log(this.context.listView)
  3. Create a SharePoint List and enable the 'New Folder' option via Advanced Settings
  4. Add items and a folder to the list
  5. Deploy the SPFx package
  6. Click in to the folder, then click the Command Set button
  7. Observe the stale context in the console
  8. Refresh the page while in the folder and click the Command Set button
  9. Observe the context is correct
  10. Click back to the root of the list using the list breadcrumb, and click the Command Set button
  11. Observe the context is stale

Expected behavior

The listView object should reflect the correct rows property and folderInfo, as it does on the 'old' modern experience.

@chrisredman01 chrisredman01 added the type:bug-suspected Suspected bug (not working as designed/expected). See “type:bug-confirmed” for confirmed bugs. label Sep 5, 2024
@VesaJuvonen VesaJuvonen added the Needs: Triage 🔍 Awaiting categorization and initial review. label Sep 16, 2024
@chrisredman01
Copy link
Author

@reedpamsft thanks for your responses in #9944.

I've attached a basic SPFx package that was to demonstrate the broken behaviour for this issue.

If you did get chance to test this with the updated UI, that would be really helpful - thanks!

spfx-test-app.zip - the zip contains the deployable sppkg and a zip of the source code.

If you configure a SharePoint List to support folders and add a few items. There will be a 'Folder Info' button on the command bar. Clicking this will open a dialog and write details to the console to check the listView context matches up.

So if you do this at root level, then within a folder, hopefully the console messages match with what the SharePoint view is showing.

Folder1

Folder2

@reedpamsft
Copy link
Contributor

@chrisredman01 thanks for sharing! I am seeing the alert and console logging working.

image

@chrisredman01
Copy link
Author

@reedpamsft Ok great - and if you click into that 'Folder1', does it correctly reflect the files in the folder when you click the command bar button again? Thanks for taking time to test.

@reedpamsft
Copy link
Contributor

@chrisredman01 seems to!

image

@chrisredman01
Copy link
Author

@reedpamsft - the UI changes have now hit my tenancy, but I'm not seeing the expected behaviour?

  • From root of List, clicking into Folder
  • Click the 'Folder Info' command set button
  • Context is showing the root info

image

If you refresh the page while in the folder:

  • Click 'Folder Info' now shows correct info
  • Clicking back to the root of the folder
  • Then 'Folder Info' now shows the info from the Folder still

image

@reedpamsft
Copy link
Contributor

@chrisredman01 thanks! I think this matches with other behavior we've seen reported. We have a bug fix that should be coming soon (essentially the next client build that releases). We'll leave the changes set to first release users until that fix is available worldwide.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Needs: Triage 🔍 Awaiting categorization and initial review. type:bug-suspected Suspected bug (not working as designed/expected). See “type:bug-confirmed” for confirmed bugs.
Projects
None yet
Development

No branches or pull requests

4 participants
@chrisredman01 @VesaJuvonen @reedpamsft and others