Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
8882850
1852: added rowsPerPage, maxWidth, minWidth, padding, compactThreshol…
Ateina Apr 5, 2025
86c2d38
Adding new prop to `ListView`: `flattenItems`
michaelmaillot Apr 6, 2025
7aa8052
update documentation
Ateina Apr 19, 2025
af6c1ba
Merge branch 'dev' into 1852-Grid-layout-settings-as-parameters
Ateina Apr 19, 2025
ea3e826
Add support for detecting file picker cancellation
Ateina Apr 27, 2025
1cbefcd
Add fallback user search for guests
patrikhellgren May 5, 2025
0b10681
Change styling for comments control
patrikhellgren May 5, 2025
2493024
Add comments placeholder localized string
patrikhellgren May 8, 2025
802fd99
Fix-1994 : Files keep loading when previewing all files in OneDrive
NishkalankBezawada May 22, 2025
a5760ae
Added new rowSpan property to IWidget interface.
GuidoZam Jun 2, 2025
63093cc
Updated ControlsTest for the new rowSpan widget property.
GuidoZam Jun 2, 2025
e94255e
Update ListItemAttachments.tsx
Floris-Pleegzorg-Oost-Vlaanderen Jun 5, 2025
96a9b14
Merge branch 'dev' into sp-listitem-comments
patrikhellgren Jun 6, 2025
79b614f
add itemsQueryCountLimit to DynamicForm
Jul 30, 2025
962fddb
data-interception attributed added in carousel component
Aug 5, 2025
1b245e8
data-interception attributed added in carousel component
HarminderSethi Aug 5, 2025
a0814fb
Update spfx-fast-serve-helpers to 1.21.1
mbice Aug 5, 2025
fea2fbb
#2036 fix issue with RichText toolbar not rendering correctly
mbice Aug 5, 2025
dd7f1db
Merge branch '1966-ListItemAttachments-cancel-event' of https://githu…
joelfmrodrigues Aug 8, 2025
78b64f5
Merge branch '1852-Grid-layout-settings-as-parameters' of https://git…
joelfmrodrigues Aug 8, 2025
fae0642
Merge branch 'feat/listview-flatten' of https://github.com/pnp/sp-dev…
joelfmrodrigues Aug 8, 2025
90607ff
Merge branch 'sp-listitem-comments' of https://github.com/SherpasGrou…
joelfmrodrigues Aug 8, 2025
f24b7d9
Merge branch 'Fix-1994' of https://github.com/NishkalankBezawada/sp-d…
joelfmrodrigues Aug 8, 2025
2610b1d
Merge branch 'dashboard-widget-rowspan' of https://github.com/GuidoZa…
joelfmrodrigues Aug 8, 2025
3eacc82
Merge branch 'ListItemAttachments-custom-weburl' of https://github.co…
joelfmrodrigues Aug 8, 2025
c8ab4d9
Refactor SelectFromSharePoint component and update useUploadFilesStyl…
SeyedAliAsghari96 Sep 7, 2025
dad1ea1
Update FolderExplorerService.ts to add import @pnp/sp/files
moudhafersalhi Sep 25, 2025
b60de6c
Merge pull request #2039 from mbice/bugfix/2036-rich-text-toolbar-ren…
joelfmrodrigues Sep 29, 2025
5519ea2
bump version to 3.23.0 in package.json and package-lock.json
joelfmrodrigues Sep 29, 2025
73d4f3c
Update changelog and release notes for version 3.23.0
joelfmrodrigues Sep 29, 2025
784750c
Merge pull request #2038 from mbice/bugfix/update-spfx-fast-serve-hel…
joelfmrodrigues Sep 29, 2025
3d25b18
Update CHANGELOG
joelfmrodrigues Sep 29, 2025
1b41878
Update changelog and release notes
joelfmrodrigues Sep 29, 2025
baec070
Merge branch 'dev' of https://github.com/pnp/sp-dev-fx-controls-react…
joelfmrodrigues Sep 29, 2025
94573ac
Merge pull request #2034 from nsoeth/master
joelfmrodrigues Sep 29, 2025
5c2135f
Merge pull request #2037 from HarminderSethi/dev
joelfmrodrigues Sep 29, 2025
e3a2a8a
Update CHANGELOG
joelfmrodrigues Sep 29, 2025
0da745c
Update release notes and changelog for version 3.23.0 enhancements
joelfmrodrigues Sep 29, 2025
a7dda88
Merge branch 'dev' of https://github.com/pnp/sp-dev-fx-controls-react…
joelfmrodrigues Sep 29, 2025
89d9a7e
Fix special characters encoding in ListItemComments
Ateina Oct 5, 2025
2ad1a4e
Fix timezone issue in Calendar day string conversion using date-fns f…
Ateina Oct 7, 2025
ada798d
Fix missing closing tag in CAML OrderBy query for calculated columns
Ateina Oct 7, 2025
7819c64
Merge pull request #2054 from Ateina/1870-ListItemPicker-calculated-c…
AJIXuMuK Oct 12, 2025
79195bb
changelog
AJIXuMuK Oct 12, 2025
4c5f684
pre-commit
AJIXuMuK Oct 12, 2025
f0dca00
Merge pull request #2053 from Ateina/2025-Calendar-not-displaying-Items
AJIXuMuK Oct 12, 2025
3742f99
changelog
AJIXuMuK Oct 12, 2025
1b33079
pre-commit
AJIXuMuK Oct 12, 2025
0c1097c
Merge pull request #2052 from Ateina/2047-ListItemComments-special-ch…
AJIXuMuK Oct 12, 2025
9bd97bb
changelog
AJIXuMuK Oct 12, 2025
97ee212
pre-commit
AJIXuMuK Oct 12, 2025
4b02067
Merge pull request #2050 from moudhafersalhi/patch-1
AJIXuMuK Oct 12, 2025
f5610fe
changelog
AJIXuMuK Oct 12, 2025
e613eb6
pre-commit
AJIXuMuK Oct 12, 2025
ee4bfac
Merge pull request #2046 from SeyedAliAsghari96/master
AJIXuMuK Oct 12, 2025
e25ce26
changelog
AJIXuMuK Oct 12, 2025
d45660b
pre-commit
AJIXuMuK Oct 12, 2025
f209876
Initial plan
Copilot Oct 12, 2025
4a03fa4
Add ETag update callback to ListItemAttachments control
Copilot Oct 12, 2025
008c204
Initial plan
Copilot Oct 12, 2025
54f515f
Add updateETag method to DynamicForm and update documentation
Copilot Oct 12, 2025
bef665f
Fix: Replace IncreaseIndentLegacy and DecreaseIndentLegacy with corre…
Copilot Oct 12, 2025
0fac092
remove unused names
AJIXuMuK Oct 12, 2025
6a965be
Merge pull request #2059 from pnp/copilot/fix-indent-controls-icons
AJIXuMuK Oct 12, 2025
872b28b
changelog
AJIXuMuK Oct 12, 2025
8805050
pre-commit
AJIXuMuK Oct 12, 2025
f1e3367
Merge pull request #2058 from pnp/copilot/fix-etag-errors-attachments
AJIXuMuK Oct 12, 2025
10e5ad4
changelog
AJIXuMuK Oct 12, 2025
e38e944
pre-commit
AJIXuMuK Oct 12, 2025
7b5f1ba
Improving MPA page with compatibility matrix (#2063)
michaelmaillot Oct 31, 2025
34ab7a8
Updating changelog following merged PR #2063
michaelmaillot Oct 31, 2025
7a2b32d
Updating PeoplePicker doc page to include search for external users
michaelmaillot Nov 4, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 32 additions & 8 deletions CHANGELOG.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,36 @@
{
"versions": [
{
"version": "3.23.0",
"changes": {
"new": [],
"enhancements": [
"Update MPA page with compatibility matrix [#2063](https://github.com/pnp/sp-dev-fx-controls-react/pull/2063)",
"`fast-serve`: Update spfx-fast-serve-helpers to 1.21.1 [#2038](https://github.com/pnp/sp-dev-fx-controls-react/pull/2038)",
"`DynamicForm`: Add itemsQueryCountLimit for Lookup fields [#2033](https://github.com/pnp/sp-dev-fx-controls-react/issues/2033)",
"`ImagePicker`: FluentProvider to SelectFromSharePoint component so token is not undefined [#2046](https://github.com/pnp/sp-dev-fx-controls-react/pull/2046)"
],
"fixes": [
"`RichText`: Rich Text in v 3.22 ribbon renders incorrectly [#2036](https://github.com/pnp/sp-dev-fx-controls-react/issues/2036)",
"`Carousel`: links not opening on a new tab with target: _blank [#2022](https://github.com/pnp/sp-dev-fx-controls-react/issues/2022)",
"`ListItemPicker`: calculated column as columnInternalName not working [#1870](https://github.com/pnp/sp-dev-fx-controls-react/issues/1870)",
"`Calendar`: not displaying items [#2025](https://github.com/pnp/sp-dev-fx-controls-react/issues/2025)",
"`ListItemComments`: Error when using some special characters in text [#2047](https://github.com/pnp/sp-dev-fx-controls-react/issues/2047)",
"Update `FolderExplorerService.ts` to add import @pnp/sp/files [#2050](https://github.com/pnp/sp-dev-fx-controls-react/pull/2050)",
"`RichText`: indent controls missing icons [#2045](https://github.com/pnp/sp-dev-fx-controls-react/issues/2045)",
"Using `ListItemAttachments` to add/remove attachments causes ETag errors [#2051](https://github.com/pnp/sp-dev-fx-controls-react/issues/2051)"
]
},
"contributions": [
"[Antanina Druzhkina](https://github.com/Ateina)",
"[Harminder Singh](https://github.com/HarminderSethi)",
"[Mark Bice](https://github.com/mbice)",
"[Michaël Maillot](https://github.com/michaelmaillot)",
"[moudhafersalhi](https://github.com/moudhafersalhi)",
"[Niels Söth](https://github.com/nsoeth)",
"[SeyedAliAsghari96](https://github.com/SeyedAliAsghari96)"
]
},
{
"version": "3.22.0",
"changes": {
Expand Down Expand Up @@ -55,7 +86,6 @@
"Add cs-cz.ts [#1932](https://github.com/pnp/sp-dev-fx-controls-react/pull/1932)",
"`FilterBar`: new control `FilterBar` [#1884](https://github.com/pnp/sp-dev-fx-controls-react/pull/1884)",
"`Calendar`: new controls `Calendar` [#1955](https://github.com/pnp/sp-dev-fx-controls-react/pull/1955)"

],
"enhancements": [
"Update markdown-it to >=13.0.2 [#1916](https://github.com/pnp/sp-dev-fx-controls-react/issues/1916)",
Expand Down Expand Up @@ -215,7 +245,7 @@
},
{
"version": "3.17.0",
"changes":{
"changes": {
"new": [],
"enhancements": [
"`DyanmicForm`: Added file handling [#1625](https://github.com/pnp/sp-dev-fx-controls-react/pull/1625)",
Expand Down Expand Up @@ -359,7 +389,6 @@
"[Sergei Sergeev](https://github.com/s-KaiNet)",
"[Sharepointalist](https://github.com/sharepointalist)",
"[Zhephyr](https://github.com/Zhephyr54)"

]
},
{
Expand Down Expand Up @@ -417,7 +446,6 @@
"`AdaptiveCardHost`: Logic to prevent re-renders (flicker) [#1425](https://github.com/pnp/sp-dev-fx-controls-react/pull/1425)",
"`ListItemComments`: Add new parameter for ListItemComments to highlight comment [#1430](https://github.com/pnp/sp-dev-fx-controls-react/pull/1430)",
"`ComboBoxListItemPicker`: Update ComboBoxListItemPicker.md [#1470](https://github.com/pnp/sp-dev-fx-controls-react/pull/1470)"

],
"fixes": [
"`DateTimePicker`: broken link for `getErrorMessage` property fixed [#1277](https://github.com/pnp/sp-dev-fx-controls-react/pull/1381)",
Expand All @@ -438,7 +466,6 @@
"`DateTimePicker`: Date picker locale [#1095](https://github.com/pnp/sp-dev-fx-controls-react/issues/1095)",
"`RichText`: Use theme colors - fix dark mode [#669](https://github.com/pnp/sp-dev-fx-controls-react/issues/669)",
"`FilePicker`: Use theme colors - fix dark mode [#1132](https://github.com/pnp/sp-dev-fx-controls-react/issues/1132)"

]
},
"contributions": [
Expand All @@ -460,7 +487,6 @@
"[Samuele Furnari](https://github.com/SamueleFurnari)",
"[sambilfinger](https://github.com/sambilfinger)",
"[wuxiaojun514](https://github.com/wuxiaojun514)"

]
},
{
Expand Down Expand Up @@ -513,7 +539,6 @@
"`Placeholder`: Documentation example to only display in edit mode [#1280](https://github.com/pnp/sp-dev-fx-controls-react/issues/1280)",
"`DynamicForm`: Update documentation regarding onBeforeSubmit [#1319](https://github.com/pnp/sp-dev-fx-controls-react/issues/1319)",
"`DynamicForm`: FirstDayOfWeek in DatePickers from webs regional settings [#1317](https://github.com/pnp/sp-dev-fx-controls-react/issues/1317)"

],
"fixes": [
"`PeoplePicker`: fixes where people picker returns no results [#1292](https://github.com/pnp/sp-dev-fx-controls-react/issues/1292)",
Expand Down Expand Up @@ -584,7 +609,6 @@
"`PeoplePicker`: PeoplePicker validation on focus out [#1221](https://github.com/pnp/sp-dev-fx-controls-react/pull/1221)",
"`DynamicForm`: Cannot display lookup value when the source field is not Title [#1215](https://github.com/pnp/sp-dev-fx-controls-react/issues/1215)",
"`FilePicker`: the endPoint for webSearch do not work [#1256](https://github.com/pnp/sp-dev-fx-controls-react/issues/1256)"

]
},
"contributions": [
Expand Down
24 changes: 24 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# Releases

## 3.23.0

### Enhancements

- Update MPA page with compatibility matrix [#2063](https://github.com/pnp/sp-dev-fx-controls-react/pull/2063)
- `fast-serve`: Update spfx-fast-serve-helpers to 1.21.1 [#2038](https://github.com/pnp/sp-dev-fx-controls-react/pull/2038)
- `DynamicForm`: Add itemsQueryCountLimit for Lookup fields [#2033](https://github.com/pnp/sp-dev-fx-controls-react/issues/2033)
- `ImagePicker`: FluentProvider to SelectFromSharePoint component so token is not undefined [#2046](https://github.com/pnp/sp-dev-fx-controls-react/pull/2046)

### Fixes

- `RichText`: Rich Text in v 3.22 ribbon renders incorrectly [#2036](https://github.com/pnp/sp-dev-fx-controls-react/issues/2036)
- `Carousel`: links not opening on a new tab with target: _blank [#2022](https://github.com/pnp/sp-dev-fx-controls-react/issues/2022)
- `ListItemPicker`: calculated column as columnInternalName not working [#1870](https://github.com/pnp/sp-dev-fx-controls-react/issues/1870)
- `Calendar`: not displaying items [#2025](https://github.com/pnp/sp-dev-fx-controls-react/issues/2025)
- `ListItemComments`: Error when using some special characters in text [#2047](https://github.com/pnp/sp-dev-fx-controls-react/issues/2047)
- Update `FolderExplorerService.ts` to add import @pnp/sp/files [#2050](https://github.com/pnp/sp-dev-fx-controls-react/pull/2050)
- `RichText`: indent controls missing icons [#2045](https://github.com/pnp/sp-dev-fx-controls-react/issues/2045)
- Using `ListItemAttachments` to add/remove attachments causes ETag errors [#2051](https://github.com/pnp/sp-dev-fx-controls-react/issues/2051)

### Contributors

Special thanks to our contributors (in alphabetical order): [Antanina Druzhkina](https://github.com/Ateina), [Harminder Singh](https://github.com/HarminderSethi), [Mark Bice](https://github.com/mbice), [Michaël Maillot](https://github.com/michaelmaillot), [moudhafersalhi](https://github.com/moudhafersalhi), [Niels Söth](https://github.com/nsoeth), [SeyedAliAsghari96](https://github.com/SeyedAliAsghari96).

## 3.22.0

### New control(s)
Expand Down
24 changes: 24 additions & 0 deletions docs/documentation/docs/about/release-notes.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,29 @@
# Releases

## 3.23.0

### Enhancements

- Update MPA page with compatibility matrix [#2063](https://github.com/pnp/sp-dev-fx-controls-react/pull/2063)
- `fast-serve`: Update spfx-fast-serve-helpers to 1.21.1 [#2038](https://github.com/pnp/sp-dev-fx-controls-react/pull/2038)
- `DynamicForm`: Add itemsQueryCountLimit for Lookup fields [#2033](https://github.com/pnp/sp-dev-fx-controls-react/issues/2033)
- `ImagePicker`: FluentProvider to SelectFromSharePoint component so token is not undefined [#2046](https://github.com/pnp/sp-dev-fx-controls-react/pull/2046)

### Fixes

- `RichText`: Rich Text in v 3.22 ribbon renders incorrectly [#2036](https://github.com/pnp/sp-dev-fx-controls-react/issues/2036)
- `Carousel`: links not opening on a new tab with target: _blank [#2022](https://github.com/pnp/sp-dev-fx-controls-react/issues/2022)
- `ListItemPicker`: calculated column as columnInternalName not working [#1870](https://github.com/pnp/sp-dev-fx-controls-react/issues/1870)
- `Calendar`: not displaying items [#2025](https://github.com/pnp/sp-dev-fx-controls-react/issues/2025)
- `ListItemComments`: Error when using some special characters in text [#2047](https://github.com/pnp/sp-dev-fx-controls-react/issues/2047)
- Update `FolderExplorerService.ts` to add import @pnp/sp/files [#2050](https://github.com/pnp/sp-dev-fx-controls-react/pull/2050)
- `RichText`: indent controls missing icons [#2045](https://github.com/pnp/sp-dev-fx-controls-react/issues/2045)
- Using `ListItemAttachments` to add/remove attachments causes ETag errors [#2051](https://github.com/pnp/sp-dev-fx-controls-react/issues/2051)

### Contributors

Special thanks to our contributors (in alphabetical order): [Antanina Druzhkina](https://github.com/Ateina), [Harminder Singh](https://github.com/HarminderSethi), [Mark Bice](https://github.com/mbice), [Michaël Maillot](https://github.com/michaelmaillot), [moudhafersalhi](https://github.com/moudhafersalhi), [Niels Söth](https://github.com/nsoeth), [SeyedAliAsghari96](https://github.com/SeyedAliAsghari96).

## 3.22.0

### New control(s)
Expand Down
1 change: 1 addition & 0 deletions docs/documentation/docs/controls/Dashboard.md
Original file line number Diff line number Diff line change
Expand Up @@ -111,6 +111,7 @@ Provides settings of Dashboard's widget
| controlOptions | IWidgetControlOptions | no | Component rendering options. |
| body | IWidgetBodyContent[] | no | Widget's content (children) rendered as tabs. |
| link | IWidgetLink | no | Widget's link rendered at the bottom part of the widget. |
| rowSpan | number | no | Number of rows the widget should span. If specified, it will override any vertical value set from the size property. |

Interface `IWidgetActionKey`

Expand Down
51 changes: 51 additions & 0 deletions docs/documentation/docs/controls/DynamicForm.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,7 @@ The `DynamicForm` can be configured with the following properties:
| useModernTaxonomyPicker | boolean | no | Specifies if the form should render [ModernTaxonomyPicker](./ModernTaxonomyPicker.md) control for Managed metadata fields. If set to `true`, Dynamic form will render ModernTaxonomyPicker control. If set to `false`, Dynamic form will render TaxonomyPicker control. Default is `false` |
| className | string | no | Set CSS Class. |
| styles | IStyleFunctionOrObject<IDynamicFormStyleProps, [IDynamicFormStyles](#idynamicformstyles-interface)> | no | Styles to apply on control. See the example [here](#how-to-use-styles-property) |
| itemsQueryCountLimit | number | no | Number of items to display in the lookup fields of the form | |

## Validation Error Dialog Properties `IValidationErrorDialogProps`

Expand Down Expand Up @@ -119,6 +120,56 @@ The `DynamicForm` can be configured with the following properties:
| thumbnailFieldButtons | IStyle | styles for button when field type is 'Thumbnail' |
| selectedFileContainer | IStyle | styles for File Selection Control |

## Public Methods

The `DynamicForm` control exposes the following public methods that can be called using a ref:

### updateETag(itemData: any): void

Updates the ETag stored in the component's state. This is useful when the list item has been modified externally (e.g., by adding/removing attachments using the ListItemAttachments control) and you need to update the ETag to prevent 412 conflict errors on save.

**Parameters:**
- `itemData` - The updated item data containing the new ETag (typically from SharePoint REST API response with `odata.etag` property)

**Example:**

```TypeScript
import * as React from 'react';
import { DynamicForm } from '@pnp/spfx-controls-react/lib/DynamicForm';
import { ListItemAttachments } from '@pnp/spfx-controls-react/lib/ListItemAttachments';

export class MyComponent extends React.Component {
private dynamicFormRef = React.createRef<DynamicForm>();

private onAttachmentChange = (itemData: any): void => {
// Update the DynamicForm's ETag when attachments are modified
if (this.dynamicFormRef.current) {
this.dynamicFormRef.current.updateETag(itemData);
}
}

public render() {
return (
<div>
<ListItemAttachments
listId={this.props.listId}
itemId={this.props.itemId}
context={this.props.context}
onAttachmentChange={this.onAttachmentChange}
/>
<DynamicForm
ref={this.dynamicFormRef}
context={this.props.context}
listId={this.props.listId}
listItemId={this.props.itemId}
respectETag={true}
/>
</div>
);
}
}
```

## How to use styles property

Property styles of Dynamic Form gives you a set of properties which you can use to modify styles.
Expand Down
5 changes: 5 additions & 0 deletions docs/documentation/docs/controls/GridLayout.md
Original file line number Diff line number Diff line change
Expand Up @@ -147,5 +147,10 @@ The grid layout control can be configured with the following properties:
| items | any[] | yes | The array of items you wish to display. |
| listProps | IListProps | no | Provides additional list properties to customize the underlying list. |
| onRenderGridItem | function | yes | onRenderGridItem handler for the grid layout. Use this handler to specify how you wish to render each grid item |
| itemPadding | number | no | Gap between items. |
| itemMinWidth | number | no | Minimum width for each item. |
| itemMaxWidth | number | no | Maximum width for each item. |
| compactThreshold | number | no | Threshold width below which the compact layout is activated. |
| rowsPerPage | number | no | Number of rows displayed per page. |

![](https://telemetry.sharepointpnp.com/sp-dev-fx-controls-react/wiki/controls/gridlayout)
48 changes: 48 additions & 0 deletions docs/documentation/docs/controls/ListItemAttachments.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,5 +63,53 @@ The `ListItemAttachments` control can be configured with the following propertie
| description | string | no | Description text to display on the placeholder, below the main text and icon. |
| disabled | boolean | no | Specifies if the control is disabled or not. |
| openAttachmentsInNewWindow | boolean | no | Specifies if the attachment should be opened in a separate browser tab. Use this property set to `true` if you plan to use the component in Microsoft Teams. |
| onAttachmentChange | (itemData: any) => void | no | Callback function invoked when attachments are added or removed. Receives the updated item data including the new ETag. This is useful when using the control within a form (like DynamicForm) that tracks ETags for optimistic concurrency control. |

## Usage with DynamicForm

When using `ListItemAttachments` within a `DynamicForm` or any component that uses ETags for optimistic concurrency control, you should use the `onAttachmentChange` callback to update the ETag when attachments are modified:

```TypeScript
import * as React from 'react';
import { DynamicForm } from '@pnp/spfx-controls-react/lib/DynamicForm';
import { ListItemAttachments } from '@pnp/spfx-controls-react/lib/ListItemAttachments';

export class MyFormComponent extends React.Component<any, any> {
private dynamicFormRef = React.createRef<DynamicForm>();

/**
* Callback invoked when attachments are added or removed
* Updates the ETag in DynamicForm to prevent 412 conflicts
*/
private onAttachmentChange = (itemData: any): void => {
if (this.dynamicFormRef.current) {
this.dynamicFormRef.current.updateETag(itemData);
}
}

public render(): React.ReactElement {
return (
<div>
<ListItemAttachments
listId={listId}
itemId={itemId}
context={this.props.context}
onAttachmentChange={this.onAttachmentChange}
/>

<DynamicForm
ref={this.dynamicFormRef}
context={this.props.context}
listId={listId}
listItemId={itemId}
respectETag={true}
/>
</div>
);
}
}
```

This prevents 412 ETag conflict errors when saving the form after adding or removing attachments.

![](https://telemetry.sharepointpnp.com/sp-dev-fx-controls-react/wiki/controls/ListItemAttachments)
Loading