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

refreshGraphQL doesn't trigger refresh in Local Dev #197

Open
readeral opened this issue Oct 9, 2024 · 1 comment
Open

refreshGraphQL doesn't trigger refresh in Local Dev #197

readeral opened this issue Oct 9, 2024 · 1 comment

Comments

@readeral
Copy link

readeral commented Oct 9, 2024

Summary

I've done my best to give you relevant info, but you might need me to grab more details from Devtools or whatever...

In the context of Local Dev, when using GraphQL with the lightning/uiGraphQLApi Wire adapter, a call to refreshGraphQL doesn't update the wire data on the component.

Deploying source to org and using the LWC without Local Dev, we get the expected result: re-query occurs and UI is re-rendered with fresh data.

Steps To Reproduce:

  1. Create a LWC importing {gql, graphql, refreshGraphQL} from "lightning/uiGraphQLApi" and making an API query
  2. store 'result' in graphQLqueryResult
  3. render API data in some way along with a button
  4. create a method 'refresh' which returns refreshGraphQL(this.graphQLqueryResult) and append to button
  5. adjust API data on the record. Hit refresh button.

Expected Result

Record data now reflects the change in the updated API wire property

Actual Result

API call is being made (can see it in Network tab) and is returning correct data, but it isn't making its way into the component API wire response.

Additional Information

I struggled to make a minimum reproducible example because when attaching it to a Lightning layout (in this instance, an Account record layout, with an API call against that same record) there was all sorts of funky cache issues going on in Local Dev, but I managed to get the issue to manifest before the page reaches for the cache.

Screenshots:

InitialNetworkCall
initialWireProps
refreshNetworkCall
refreshWireProps

Logs:

System Information

SF CLI:

{
  "architecture": "darwin-arm64",
  "cliVersion": "@salesforce/cli/2.60.13",
  "nodeVersion": "node-v20.16.0",
  "osVersion": "Darwin 24.0.0",
  "rootPath": "/Users/alan/.nvm/versions/node/v20.16.0/lib/node_modules/@salesforce/cli",
  "shell": "zsh",
  "pluginVersions": [
    "@oclif/plugin-autocomplete 3.2.4 (core)",
    "@oclif/plugin-commands 4.0.15 (core)",
    "@oclif/plugin-help 6.2.12 (core)",
    "@oclif/plugin-not-found 3.2.21 (core)",
    "@oclif/plugin-plugins 5.4.9 (core)",
    "@oclif/plugin-search 1.2.9 (core)",
    "@oclif/plugin-update 4.5.9 (core)",
    "@oclif/plugin-version 2.2.13 (core)",
    "@oclif/plugin-warn-if-update-available 3.1.17 (core)",
    "@oclif/plugin-which 3.2.14 (core)",
    "@salesforce/cli 2.60.13 (core)",
    "apex 3.4.10 (core)",
    "api 1.2.2 (core)",
    "auth 3.6.62 (core)",
    "data 3.6.7 (core)",
    "deploy-retrieve 3.12.11 (core)",
    "info 3.4.9 (core)",
    "lightning-dev 1.3.0 (user) published 18 days ago (Sat Sep 21 2024) (latest is 1.8.0)",
    "limits 3.3.32 (core)",
    "marketplace 1.2.26 (core)",
    "org 4.5.10 (core)",
    "packaging 2.8.11 (user) published 3 days ago (Sat Oct 05 2024)",
    "schema 3.3.32 (core)",
    "settings 2.3.21 (core)",
    "signups 2.3.10 (user) published 121 days ago (Sun Jun 09 2024) (latest is 2.5.21)",
    "sobject 1.4.38 (core)",
    "source 3.5.21 (core)",
    "telemetry 3.6.15 (core)",
    "templates 56.3.21 (core)",
    "trust 3.7.31 (core)",
    "user 3.5.31 (core)",
    "@salesforce/sfdx-scanner 4.4.0 (user) published 70 days ago (Wed Jul 31 2024) (latest is 4.6.0)",
    "sfdmu 4.36.3 (user) published 19 days ago (Fri Sep 20 2024)",
    "sfdx-essentials 2.12.0 (user) published 1029 days ago (Wed Dec 15 2021)",
    "sfdx-git-delta 5.46.0 (user) published 7 days ago (Wed Oct 02 2024) (latest is 5.47.0)",
    "sfdx-hardis 5.0.10 (user) published 5 days ago (Fri Oct 04 2024)",
    "texei-sfdx-plugin 2.7.0 (user) published 28 days ago (Wed Sep 11 2024)"
  ]
}

OS:
MacOS 15.0.1

minReproduce.zip

@readeral
Copy link
Author

readeral commented Oct 9, 2024

For context, I was using an Apex API call and using refreshApex with no issue. Swapping out GraphQL equivalents produced this result, so I'm relatively confident in the rest of my component's logic.

Also now I've created this issue, I've realised that my minReproduce example actually rerenders the LWC on the account page with the updated info because I assume it picks up the refreshed cache from the parent page.

The behaviour of the minReproduce component in local dev, if you refresh the page, it displays nothing, because now it's reaching for a cache that (I assume) is somehow incorrectly structured. Maybe the Local Dev cache doesn't handle graphql appropriately?

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

No branches or pull requests

1 participant