 In early August, Microsoft released a minor update to the SharePoint framework with version 1.15.2. And this was a relatively minor update that included just a few things. An updated ESLint rule configuration, automatically registering Azure service principles when permissioned scopes of requests are approved, and two things for adaptive cards. The QuickView cards now support deferred loading and the media selectors were promoted to generally available. And then they also squashed 16 issues or bugs, including five of the ones that I reported. In this episode, I'm gonna go over all these updates and I'm gonna share some additional things that I found after spending some time picking apart this release of the SharePoint framework. Hey, I'm Andrew, and if you're new here, subscribe to get notified of my future videos for professional developers on Microsoft 365 and Microsoft Azure Topics. All right, let's dig in. I'll start with what's new because everyone always wants to check out the new toys. Remember, this is just a patch release though, so there's not a lot here. If there was, it wouldn't have been a minor release. For this first one, it's easiest to understand how things work before you can appreciate what Microsoft added in the SharePoint framework, version 1.15.2. Now, administrators can approve permission grant requests for APIs to SharePoint online. And this enables an SPFX component, or anyone for that matter, to request an OAuth 2 access token from Azure Active Directory to use in calling an API, such as a Microsoft Graph or some other endpoint. Previously, if the API wasn't already present in the tenant when the tenant administrator approved the permission grant request, it would throw an error. And this can happen when the app principle hasn't been created in the case of a custom app that you define, or a service principle isn't present in the case of a multi-tenant app that's registered in another Azure AD tenant. To address this, the 1.15.2 release includes the ability for developers to define the API's application ID and the reply URL by including two permission properties in the permission grant request section within the SharePoint project's package-solution.json file. So if I went into an existing project where I was gonna make that kind of a request, I can say the web API permission request and then I would have to pass in an object. And before, I would always have something like a resource, which in a scope as well. So the scope, let's say in my case, is just Botanos Secure is the name of my endpoint and the permission request I'm requesting is the mission read permission. Now, the two new properties that we have are the app ID, which is gonna be some good. This is gonna be the GUID of the Azure AD app that's associated with our endpoint. And the other option is the reply URL. Both these properties are optional. And this is gonna be the reply URL where of the callback when someone is authenticated. Like that. Unfortunately, it looks like a little attention to detail was missed as the schema for this JSON file. It doesn't respect these properties yet. And in fact, it doesn't even like any properties other than these scope and the resource properties at this time. That's okay. I bugged it. So hopefully it's gonna get fixed soon. Another thing that Microsoft added in this release is the ability to defer loading of the quick view cards in an adaptive card extension or an ACE. Now, currently when an ACE is loaded on a page, Viva Connections is gonna load both the card view and the quick view. But if the user never interacts or activates the quick view, it's kind of a waste to go through and load it, a waste in performance. So you can improve the performance of your ACE by defer loading it until you need it. And to do this, if I take a look at the release notes for 1.15.2, you're gonna use the register method, the methods callback, and you're gonna return back either a promise of type T view or just a T view. Here you can see that you're just gonna call register. You're gonna pass in the ID of the card and then in the callback, you're gonna use an import statement to import the path to the file that contains your quick view. Now, to fully take advantage of this, you wanna make sure that you remove the import statement that loads your quick view card in the class that's gonna extend the base adaptive card extension. Otherwise, it's still gonna get loaded when the card itself is loaded or your extension loads. And in this case here, I'm gonna remove that and really only do that when the quick view navigator gets registered, so I'm only gonna load it on demand. Okay, now that we've looked at what's new in this release, let's look at a couple of the changes to the SharePoint framework that Microsoft has introduced in this latest release. Now in my video of the SharePoint framework 1.15 release, I explained how Microsoft swapped out the old deprecated TS Lint utility in favor of ES Lint. And unfortunately, it didn't take too long for a lot of us to notice how much of an impact that this was gonna have on our existing projects, but also really our new projects. So the next video that I published called SPFX 1.15, the attack of ES Lint. Yeah, I get it, it's a little click baby. That was created to help developers understand how to address the rules, as well as how to disable some of those rules. But then in an attempt to demonstrate and hopefully convince Microsoft to change how default projects were created in the next video I published, I showed how to set up a single ES Lint configuration on your developer environment and then configure your SharePoint framework projects to always use this if present instead of using their rules. In the SharePoint framework 1.15.2 release, they made some changes, but I'm a little disappointed the direction that they went, but so be it is what it is. They changed the ES Lint RC.js file that is created in every project to instead contain a rule that was previously buried in the different NPM packages with their reasoning. I'm happy to see that it's much more transparent or in something that we can configure, but we're now looking at a file that's nearly 380 lines long. So check this out. If I come over here and I look at this, a difference between a project from 1.15 and a 1.15.2, this happens to be a SharePoint web part project for SharePoint online using React. So here if I come over here and I look at the ES Lint RC.js file, here's the difference between what we had in 1.15 and 1.15.2. So you can see this in the line four change where they just added a comma at the end and then all this green is all the stuff they added for the in 1.15.2. And then you can see at the very end, it just goes through and finishes out closing the object. I mean, yeah, I guess that's gonna help us, but I gotta be honest, I almost feel like we're being mocked, but hey, I mean, at least the rules are easier to find. No worries. The approach that I outlined in my last video, it still works if you wanna continue with that kind of an approach, but I just wanna call that out and make sure you're aware of that. Now the last thing that I wanna call out is something that was promoted from a developer preview feature to being now generally available. The adaptive card extension type for a media selection was introduced in the SharePoint framework version 1.14 release. It enabled your adaptive card extension to support the native media picker or file picker so that users can select files. So here we have our new action types for media where we can actually select media. Here in 1.15.2, if I scroll down, we can now see that the media types are now marked as generally available. If you wanna learn more about the selector action or the media selector action from the SharePoint framework, the documentation that's available to you to learn more about this and the SharePoint framework docs, it's linked in the description below. Now the release notes for the SharePoint framework 1.15.2, they include at least 16 things that were addressed as part of this release. So check out the fixed issues in the release notes and I'll link to that in the description below. Now it makes me happy to know that five of the issues of the 16 they fixed, they were ones that I found when I was working with the SharePoint framework version 1.15. So let me show you these guys, the ones that I had found. So if I come back to ak.ms.spfx-issues, that'll redirect me to the issue list. And if I filter to just see things that I've submitted and things that are currently closed and let's look at things that were have the milestone of 1.15.2, let me look at each one of these guys about please suppressing the unnecessary ES no async await rule. That was suppressed. That's not gonna be there anymore because it's no longer necessary. So I did get, I was able to convince them that we shouldn't have that ESLint rule. The gulp clean doesn't remove the releases folders. So what this did is if I ran the task gulp clean, it removed folders like lib and dist and temp. But there was another folder called releases and that wasn't being purged. That was still, that was added, I think on like 1.13 of the SharePoint framework from some of the dependencies, the clean task wasn't cleaning that out. So I flagged that and they're like, yeah, you're right. So they fixed it. The serve.json file, that didn't include the serve configurations for IntelliSense. So like for example, if I come over and look at that list, here if I was working with an extension, the SharePoint framework extension, this thing about serve configurations, it says that it's not allowed with all the values that are inside of that. That doesn't really give you a good IntelliSense example. And so when you don't get that, I said the developers are gonna curse at VS Code, they're gonna cry in solitude and kittens are gonna run for safety to avoid being kicked by the developer. Cool thing is I said the expected behavior is that we would get IntelliSense and the resulting reaction would be a Microsoft engineer who took the time to update the file on their way home from work to enjoy a good streaming movie when they were picking up their takeout tacos. They come to find out that someone paid it forward and thanks for them fixing this schema file and now they're gonna be able to enjoy free tacos with their streaming movie they're gonna have that night. Ha ha ha. Let's see what else that they have. Oh, the form customizer for, list form customizer for React template, it included the wrong text. I can show you that actually, how that changed. If I come back over here to this project that I have where I can see a list of, let's get a list of all the commits and let me find the commit for the form customizer for React. So let's look at that commit. And in this one, if I'm not mistaken, I think that this is in the code file. Yeah, so in the code file it used to say a list form customizer called it a field customizer where it's really a form customizer. And then the other one that they fixed was the SharePoint web part manifest points to a 404 of the Office UI fabric icons. So for this one, when you would hover over the manifest, it would show you this old URL that didn't exist anymore. But now when you do that, if I come over here and open up the manifest, now if I look at the font file, you can see here that it now redirects to a new URL because they've updated that for us. So thankfully found those errors and they squashed them as part of this release and we now get, we click on this, it takes us now to a redirect to a place where I can see all those Office UI fabric icons. So that's cool. Unfortunately, I've already found a couple of things with 1.15.2 that I already highlighted earlier. So hopefully we'll get those fixed soon too. My goal in this video was to give you a solid overview on everything that you're gonna find and then some in the SharePoint framework 1.15.2 release. What do you think about all these changes in the latest release of the SharePoint framework, especially how they've changed the ESLint configuration? Do you like that or not? I'm not a big fan. Let me know by dropping a comment below and let me know if you also wanna see more videos about the SharePoint framework. And if you liked this video, please give me a thumbs up and subscribe by smashing that subscribe button below the video or the one in the end screen here. So that you're gonna see when I publish more videos for professional developers on Microsoft 365, Microsoft Azure and including topics on the SharePoint framework. Thanks a lot and I'll see you in my next video.