diff --git a/packages/dev/codemods/src/s1-to-s2/__tests__/__snapshots__/picker.test.ts.snap b/packages/dev/codemods/src/s1-to-s2/__tests__/__snapshots__/picker.test.ts.snap
index 29264af6bb8..6a1d6ca6c4d 100644
--- a/packages/dev/codemods/src/s1-to-s2/__tests__/__snapshots__/picker.test.ts.snap
+++ b/packages/dev/codemods/src/s1-to-s2/__tests__/__snapshots__/picker.test.ts.snap
@@ -149,6 +149,25 @@ exports[`handles sections 1`] = `
"
`;
+exports[`renames deprecated selection props 1`] = `
+"import { PickerItem, Picker } from "@react-spectrum/s2";
+let selectedKey = 'cat';
+
+
+ Dog
+ Cat
+
+
console.log(key)} value={selectedKey}>
+ Dog
+ Cat
+
+
+ Dog
+ Cat
+
+
"
+`;
+
exports[`replaces isLoading with loadingState and keeps onLoadMore 1`] = `
"import { PickerItem, Picker } from "@react-spectrum/s2";
<>
diff --git a/packages/dev/codemods/src/s1-to-s2/__tests__/picker.test.ts b/packages/dev/codemods/src/s1-to-s2/__tests__/picker.test.ts
index f59e2c96b45..a6864ec2409 100644
--- a/packages/dev/codemods/src/s1-to-s2/__tests__/picker.test.ts
+++ b/packages/dev/codemods/src/s1-to-s2/__tests__/picker.test.ts
@@ -162,3 +162,22 @@ test('replaces isLoading with loadingState and keeps onLoadMore', `
>
`);
+
+test('renames deprecated selection props', `
+import {Picker, Item} from '@adobe/react-spectrum';
+let selectedKey = 'cat';
+
+
+ - Dog
+ - Cat
+
+
console.log(key)} selectedKey={selectedKey}>
+ - Dog
+ - Cat
+
+
+ - Dog
+ - Cat
+
+
+`);
diff --git a/packages/dev/codemods/src/s1-to-s2/src/codemods/components/Picker/transform.ts b/packages/dev/codemods/src/s1-to-s2/src/codemods/components/Picker/transform.ts
index 7c3faea2c8c..971de36ff46 100644
--- a/packages/dev/codemods/src/s1-to-s2/src/codemods/components/Picker/transform.ts
+++ b/packages/dev/codemods/src/s1-to-s2/src/codemods/components/Picker/transform.ts
@@ -14,6 +14,9 @@ import * as t from '@babel/types';
* - Change validationState="invalid" to isInvalid.
* - Remove validationState="valid" (it is no longer supported in Spectrum 2).
* - Replace isLoading with loadingState.
+ * - Rename onSelectionChange to onChange.
+ * - Rename selectedKey to value.
+ * - Rename defaultSelectedKey to defaultValue.
*/
export default function transformPicker(path: NodePath): void {
// Change menuWidth value from a DimensionValue to a pixel value
@@ -39,4 +42,22 @@ export default function transformPicker(path: NodePath): void {
newPropName: 'loadingState',
comment: 'Replace boolean passed to isLoading with appropriate loadingState.'
});
+
+ // Rename onSelectionChange to onChange
+ updatePropName(path, {
+ oldPropName: 'onSelectionChange',
+ newPropName: 'onChange'
+ });
+
+ // Rename selectedKey to value
+ updatePropName(path, {
+ oldPropName: 'selectedKey',
+ newPropName: 'value'
+ });
+
+ // Rename defaultSelectedKey to defaultValue
+ updatePropName(path, {
+ oldPropName: 'defaultSelectedKey',
+ newPropName: 'defaultValue'
+ });
}