5

My educated guess would be that the bottleneck is during rendering. Given ~25 fields times ~3,000 rows, that's going to result in at least ~75k DOM elements minimum to render (probably closer to ~225k elements, from what I know of SLDS), which is going to take some time. Notice how about from about 12 seconds to 63 seconds, all of that is just rendering time,...


5

Take a look into the lightning/uiListApi module. It has below functionality - Get list view records and metadata for a list view by API name import { LightningElement, wire } from 'lwc'; import { getListUi } from 'lightning/uiListApi'; import ACCOUNT_OBJECT from '@salesforce/schema/Account'; export default class Example extends LightningElement {...


4

Change the wired function to: @wire(getContactList, { contId: '$contId' }) wiredContacts({ error, data }) { The property names must always be error and data (if you don't spread the properties into parameters you can call the single parameter whatever you like). Make other changes in the body of that function as needed. You then need to change the rendering ...


4

Personally I would say it was a bug that this worked before. Are you aware that the fields array does not need to be a constant and can be dynamically generated? Here I do this, just to get the correct object's external ID (see the documentation for how and when an implicit objectApiName can be used, similar to recordId): export default class ...


3

The connectedCallback will likely be called before the wires are invoked. Instead hang the behaviour that requires some data off where that data becomes available, so in this case when the page reference is returned: // A private property for holding the full detail of the page reference _currentPageReference; @wire(CurrentPageReference) ...


2

If this approach of JSON.parse + JSON.stringify might break with future releases of LWC (is it stable enough ?) Yes, it's perfectly normal JS, although not the most efficient. However, a point to note, this is a deep copy, not a shallow copy. Is there a more stable way to passing arrays (that need to be mutated by the child) The array is wrapped behind a ...


2

It is not possible the way you're describing it (IE accessing the LWC "Hosted on Salesforce", accessing Apex methods directly via @AuraEnabled annotation) You could expose a Salesforce Community site on the public internet but the only elements would be Embedded Services with CORS-enabled (this is what comes to mind- there may be others, I was just ...


2

You can return your wrapper directly to LWC, no need to serialize: public class outputwrapper { @AuraEnabled public string key; @AuraEnabled public string total; } ... @AuraEnabled public static outputwrapper[] getStuffFromSystem() { outputwrapper[] results = new outputwrapper[0]; // ... // return results; } This would minimize the amount of work ...


1

You need to convert your date to string & append it with your error message - this.showToast("Wrong Date selected in the Start Date It Should be between " + this.MDate.toString() + "-" + this.StDate.toString());


1

Personally, I would decouple the spinners and have each component show its own. That suggests that you can keep the conditional rendering of the child so it only appears when the parent is not still loading. However, the child can show its own spinner, taking up its visual space in the container, until it has separately loaded its data at which point it then ...


1

this refers to a class variable. badgeClass is a local variable, so you do not use this. for(let i = 0; badgeClass.length > i; i++) { Note you can also use a forEach loop: [...badgeClass].forEach(badge => badge.className = 'active'); I would recommend setting the value for the class name directly into your dataList elements, so you can directly refer ...


1

Its getPicklistValues not getPickListValue. import { getPicklistValues } from 'lightning/uiObjectInfoApi'; import { getObjectInfo } from 'lightning/uiObjectInfoApi'; import YOUR_OBJECT from '@salesforce/schema/SomeObject__c'; recordTypeId is mandatory for the getPicklistValues. Update the wired method as below. @wire(getObjectInfo, { objectApiName: ...


1

The only way that I know how to do this is to use a custom field on your Agreement object, and have a workflow rule fire every time that Agreement record is created and updated to pull in something like: BLANKVALUE(Account.Parent.Name, Account.Name) If you create this, you would then need to do a mass update (even a no data change update), to trigger this ...


1

You did not declare the sobjectResult in your js and that was the cause of unexpected behavior. You just need to add it to your js. Also, note since the Spring '20 Release, the @track decorator is no longer required. export default class ShowListView extends LightningElement { @track allListViews; @track Value; sobjectResult; ...


1

if you see the error message in console, error.body.message is having a generic message:- An error occurred while trying to update the record. Please try again as value. You need to fetch the error message from the below json structure:- error.body.output.errors[0].errorCode + error.body.output.errors[0].message so the working code would be like:- this....


1

Unfortunately, there's no easy way as you're not able to use * with the way custom metadata type records are referenced in package.xml. If you attempt to do so like below: <?xml version="1.0" encoding="UTF-8"?> <Package xmlns="http://soap.sforce.com/2006/04/metadata"> <types> <members>...


1

As I understand your question, you have a combo box populated with all list view names and that upon change in that you need to re-render your component with the records related to that list view. In order for your wired service to fetch the new data, you will need to mark the property progressValue as dynamic and reactive. So your wired service declaration ...


1

The click-to-dial event is coming from the standard HTML protocol tel:. Your browser is looking for it and if available it tries to dial that phone number when you click on it. The <lightning-formatted-phone> component looks like so when it builds in the browser: tel: is not so much a feature as it is a protocol, much in the same way that http: and ...


1

Welcome to SF Stack Exchange. You are likely getting this error because an error must have occurred during your wire process. From the documentation: data (Any type)—The value supplied by the adapter. error (Error)—An error if the adapter wasn’t able to supply the requested data or if the adapter wasn’t found. Otherwise, this property is undefined. In ...


1

You probably should not rely on the lightning-checkbox-group base component here. I implemented a change handler method that looks at the pre-existing value and the new value from the change event, filling in all the indexes in between the furthest selected extreme (start or end) of the currently selected options and the newly-checked value. *I had to make ...


1

I was able to solve the above. The issue was that lstComments under lstQuotesTemp was read-only and thus had to create their copy. Below is what I did : for(let i=0;i<this.lstQuotesTemp.length; i++){ this.lstQuotesTemp[i].lstComments = this.lstQuotesTemp[i].lstComments.map( obj => ({ ...obj })); ...


1

If I understand you correctly, you want to call the method with two different parameter values at the same time. You don't have to import it twice, just call it twice and annotate different properties / functions: import myMethod from @salesforce/apex/MyController.myMethod export default class MyLWC extends LightningElement{ @wire myMethod({param : '...


1

Since you are asking for a page layout here is a solution that I have used. However, it's not using APEX or LWC but it may be what you're looking for. Create another Record Type for Account and assign a new page layout to it. On this page layout you make the Class__c field Read-Only. I will use the Owner field from my sandbox since I don't have a Class__c ...


1

The toFixed() works only on the number, the Text_Field__c is of type text. You need to convert that to a number first. Use parseFloat(). Also, use let instead of var to create a block-scoped variable. I have created a playground.


1

You were pretty much spot on with your investigation and finding that lwc-jest has been deprecated in favor of sfdx-lwc-jest. The SFDX plugin was in fact referencing the deprecated binary. This has just been fixed in the plugin by this PR and should be released into the main SFDX CLI via a patch release in a week or two.


1

Based on your JSON object, you should be grabbing the data as follows: const dataP = testDataJSon.testpos[0].test1; const daatPS =testDataJSon.testpos[0].test2; This is because testpos is an array so you need to grab the first entry of that array before getting the test1 and test2 keys.


Only top voted, non community-wiki answers of a minimum length are eligible