You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fix typos in formatting-syntax-reference and form-customizer docs (#10474)
* Fix typos in formatting-syntax-reference and form-customizer docs
* Fix HTML tag warning
* grammatical and markdown fixes
- `id` is a property, so it should be formatted as code
- fixed other grammatical issues throughout doc
- update timestamp
---------
Co-authored-by: Andrew Connell <[email protected]>
Copy file name to clipboardExpand all lines: docs/declarative-customization/formatting-syntax-reference.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -381,8 +381,8 @@ See [Formatting multi-value fields](column-formatting.md#formatting-multi-value-
381
381
382
382
> [!NOTE]
383
383
>
384
-
> - The `src` needs to be just the `url` part of an embeddable code generated by an app (usually found in the `src` attribute of the `iframe` element).
385
-
> - This action is only available in the newer version of the Microsoft Lists App.
384
+
> - The src can be the URL part of an embed code generated by an app (usually the srcof an iframe) or any valid URL that returns embeddable HTML content, such as a SharePoint list item display form (DispForm.aspx?ID=`<ItemID>`).
385
+
> - This action is available in the newer version of the Microsoft Lists App and Document Library.
386
386
387
387
For more information about allowing or restricting domains, see [Allow or restrict the ability to embed content on SharePoint Lists using custom formatters](https://go.microsoft.com/fwlink/p/?linkid=2258033).
Copy file name to clipboardExpand all lines: docs/spfx/extensions/get-started/building-form-customizer.md
+20-20Lines changed: 20 additions & 20 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,16 +1,16 @@
1
1
---
2
2
title: Build your first Form customizer extension
3
-
description: Form customizers are SharePoint Framework components giving you an option to override the form experience in a list or library level by associating the component to the used content type.
4
-
ms.date: 12/14/2023
3
+
description: Form customizers are SharePoint Framework components giving you an option to override the form experience at a list or library level by associating the component with the used content type.
4
+
ms.date: 11/14/2025
5
5
ms.custom: scenarios:getting-started
6
6
---
7
7
8
8
# Build your first Form Customizer extension
9
9
10
-
Form customizers are SharePoint Framework components giving you an option to override the form experience in a list or library level by associating the component to the used content type. Form customizer components can be used in SharePoint Online, and you build them using modern JavaScript tools and libraries.
10
+
Form customizers are SharePoint Framework components that give you an option to override the form experience at a list or library level by associating the component with the used content type. Form customizer components can be used in SharePoint Online, and you build them using modern JavaScript tools and libraries.
11
11
12
12
>[!Important]
13
-
> Form customizer were released as part of the SharePoint Framework 1.15, so ensure that you are using the right version in your environment. See [v1.15 release notes](../../release-1.15.md) for details.
13
+
> Form customizers were released as part of the SharePoint Framework v1.15, so ensure that you are using the right version in your environment. See [v1.15 release notes](../../release-1.15.md) for details.
14
14
15
15
> [!TIP]
16
16
> You can find the output from this tutorial from [GitHub](https://github.com/pnp/spfx-reference-scenarios/tree/main/samples/spfx-formcustomizer-basics).
@@ -56,7 +56,7 @@ Form customizers are SharePoint Framework components giving you an option to ove
56
56
57
57
1. Open the **./src/extensions/helloWorld/HelloWorldFormCustomizer.manifest.json** file.
58
58
59
-
This file defines your extension type and a unique identifier `id` for your extension which can be used to set to be used in content type level for enabling a custom rendering with this component.
59
+
This file defines your extension type and a unique identifier (`id`) for your extension. The `id` is used to associate the form customizer with a content type, enabling custom form rendering for that content type.
60
60
61
61
## Code your Form Customizer
62
62
@@ -74,7 +74,7 @@ import {
74
74
The logic for your Form Customizer is contained in the `onInit()`, `render()`, and `onDispose()` methods.
75
75
76
76
-`onInit()` is where you'll execute the setup needed for your extension. This event occurs after `this.context` and `this.properties` are assigned, but before the page DOM is ready. As with web parts, `onInit()` returns a promise that you can use to do asynchronous operations; `render()` isn't called until your promise has resolved. If you don’t need that, simply return `Promise.resolve<void>();`.
77
-
-`render()` occurs when component is rendered. It provides an `event.domElement` HTML element where your code can write its content.
77
+
-`render()` occurs when the component is rendered. It provides an `event.domElement` HTML element where your code can write its content.
78
78
-`onDispose()` occurs immediately before the form host element is deleted. It can be used to free any resources that were allocated during form rendering. For example, if `render()` mounted a React element, `onDispose()` must be used to free it; otherwise, a resource leak would occur.
79
79
80
80
The following are the contents of `render()` and `onDispose()` in the default solution:
@@ -91,7 +91,7 @@ The following are the contents of `render()` and `onDispose()` in the default so
91
91
}
92
92
```
93
93
94
-
As by default the form customzier component does not render any information, let's update the render method as follows.
94
+
By default, the form customizer component does not render any information. Let's update the render method as follows.
95
95
96
96
```typescript
97
97
publicrender(): void {
@@ -105,7 +105,7 @@ As by default the form customzier component does not render any information, let
105
105
106
106
You can test and debug your Form Customizer within a live SharePoint Online site. You do not need to deploy your customizations to the tenant app catalog to do this, which makes the debugging experience simple and efficient.
107
107
108
-
1. To test your extension, you'll need to first create list to test the customizer in. So move to the site in your SharePoint Online tenant where you want to test the form customizer.
108
+
1. To test your extension, you'll need to first create a list to test the customizer in. So move to the site in your SharePoint Online tenant where you want to test the form customizer.
109
109
1. On the toolbar, select **New**, and then select **List**.
110
110
111
111

@@ -120,7 +120,7 @@ You can test and debug your Form Customizer within a live SharePoint Online site
120
120
121
121
1. Within Visual Studio Code, open the **./config/serve.json** file.
122
122
123
-
Update the `pageUrl` attributes to match a URL of the list which we created in the preview steps. After the changes, your **serve.json** should look like the following code:
123
+
Update the `pageUrl` attributes to match the URL of the list that we created in the preview steps. After the changes, your **serve.json** should look like the following code:
124
124
125
125
```json
126
126
{
@@ -140,11 +140,11 @@ You can test and debug your Form Customizer within a live SharePoint Online site
140
140
}
141
141
```
142
142
143
-
Let's call out few specific topics from serve.json file
143
+
Let's call out a few specific topics from the **serve.json** file
144
144
145
-
- You can see multiple different configurations which can be used to debug new, edit and view forms with specific query parameter differences. You can define the used configuration in your gulp serve command, for example as `gulp serve --config=helloWorld_EditForm`
145
+
- You can see multiple different configurations that can be used to debug new, edit, and view forms with specific query parameter differences. You can define the used configuration in your gulp serve command, for example, as `gulp serve --config=helloWorld_EditForm`
146
146
- componentId is automatically associated to be the first list formatting component in your solution (if you have multiple components)
147
-
- To simplify the debugging, you do not need to define target content type id to which the component is associated, but in the runtime the association is performed in content type level by updating at least one of the following properties in the content type:
147
+
- To simplify the debugging, you do not need to define the target content type `id` to which the component is associated, but in the runtime, the association is performed in the content type level by updating at least one of the following properties in the content type:
148
148
- ContentType.**NewFormClientSideComponentId** - component id for new form
Notice how the the custom component is rendered in the page based on the custom content which we updated to the render method.
171
+
Notice how the custom component is rendered in the page based on the custom content, which we updated to the render method.
172
172
173
173

174
174
175
175
## Add form item editing capabilities to the sample
176
176
177
-
Now that we have created the baseline component and tested that it works properly. We will be creating a separate rendering logic for display, edit and new forms and to support saving new items to the list.
177
+
Now that we have created the baseline component and tested that it works properly. We will be creating a separate rendering logic for display, edit, and new form,s and to support saving new items to the list.
178
178
179
179
1. Open the **./src/extensions/helloWorld/loc/myStrings.d.ts** file, and add new **Title** to the **IHelloWorldFormCustomizerStrings** interface . Interface should be as follows after your edits..
180
180
@@ -273,7 +273,7 @@ Now that we have created the baseline component and tested that it works properl
273
273
}
274
274
```
275
275
276
-
1. Update the **render()** method as follows. Render the form either in displayonly or in the edit mode, depending on the display mode of the form. In this case we use the same renderig for new and edit experience, but you could easily have dedicated option if needed.
276
+
1. Update the **render()** method as follows. Render the form either in display-only or in edit mode, depending on the display mode of the form. In this case, we use the same rendering for new and edit experience, but you could easily have a dedicated option if needed.
277
277
278
278
```typescript
279
279
public render(): void {
@@ -382,16 +382,16 @@ Now that we have created the baseline component and tested that it works properl
382
382
}
383
383
```
384
384
385
-
Now the code is complete to support minimal New, Edit and Display experiences and you can test out the different experiences using different configurations for debugging.
385
+
Now the code is complete to support minimal New, Edit, and Display experiences, and you can test out the different experiences using different configurations for debugging.
386
386
387
387

388
388
389
389
## Deployment of your extension
390
390
391
-
Whenever you are ready to start using your component, there are few steps to consider related on the component association to the content type. Steps for deployment are as follows:
391
+
Whenever you are ready to start using your component, there are a few steps to consider related to the component's association with the content type. Steps for deployment are as follows:
392
392
393
393
1. Deploy solution to SharePoint App Catalog
394
-
1. Install solution to the site collection where you want to use the extension if you are not using the tenantscoped deployment
395
-
1. Associate the custom component to the content type using the specific properties in ContentType object. There are few options to do this:
394
+
1. Install the solution to the site collection where you want to use the extension if you are not using the tenant-scoped deployment
395
+
1. Associate the custom component to the content type using the specific properties in `ContentType` object. There are a few options to do this:
396
396
1. You can provision the used list and content type from your solution if you are using site scoped deployment option
397
-
1. You can associate the component to content types using REST or CSOM APIs. Notice that if you associate the component in the site collection or in the content type hub level, it's automatically inherited to all new content type instances
397
+
1. You can associate the component with content types using REST or CSOM APIs. Notice that if you associate the component in the site collection or in the content type hub level, it's automatically inherited to all new content type instances
0 commit comments