Skip to content

Commit dcf312b

Browse files
authored
Codemod: remove Section and Items imports if not used elsewhere in file (#6908)
1 parent c8e5ed4 commit dcf312b

File tree

11 files changed

+75
-48
lines changed

11 files changed

+75
-48
lines changed

packages/dev/codemods/src/s1-to-s2/__tests__/__snapshots__/actionmenu.test.ts.snap

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
exports[`Dynamic - no change 1`] = `
44
"import { MenuItem, ActionMenu } from "@react-spectrum/s2";
5-
import { Item } from '@adobe/react-spectrum';
65
let actionMenuItems = [
76
{name: 'Cut'},
87
{name: 'Copy'},
@@ -19,7 +18,6 @@ let actionMenuItems = [
1918

2019
exports[`Static - no change 1`] = `
2120
"import { MenuItem, ActionMenu } from "@react-spectrum/s2";
22-
import { Item } from '@adobe/react-spectrum';
2321
2422
<div>
2523
<ActionMenu>

packages/dev/codemods/src/s1-to-s2/__tests__/__snapshots__/breadcrumbs.test.ts.snap

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
exports[`Comments out autoFocusCurrent 1`] = `
44
"import { Breadcrumb, Breadcrumbs } from "@react-spectrum/s2";
5-
import { Item } from '@adobe/react-spectrum';
65
76
// TODO(S2-upgrade): S2 Breadcrumbs no longer includes a nav element by default. You can wrap the Breadcrumbs component in a nav element if needed.
87
// TODO(S2-upgrade): autoFocusCurrent has not been implemented yet.
@@ -15,7 +14,6 @@ import { Item } from '@adobe/react-spectrum';
1514

1615
exports[`Comments out isMultiline 1`] = `
1716
"import { Breadcrumb, Breadcrumbs } from "@react-spectrum/s2";
18-
import { Item } from '@adobe/react-spectrum';
1917
2018
// TODO(S2-upgrade): S2 Breadcrumbs no longer includes a nav element by default. You can wrap the Breadcrumbs component in a nav element if needed.
2119
// TODO(S2-upgrade): isMultiline has not been implemented yet.
@@ -28,7 +26,6 @@ import { Item } from '@adobe/react-spectrum';
2826

2927
exports[`Comments out showRoot 1`] = `
3028
"import { Breadcrumb, Breadcrumbs } from "@react-spectrum/s2";
31-
import { Item } from '@adobe/react-spectrum';
3229
3330
// TODO(S2-upgrade): S2 Breadcrumbs no longer includes a nav element by default. You can wrap the Breadcrumbs component in a nav element if needed.
3431
// TODO(S2-upgrade): showRoot has not been implemented yet.
@@ -43,7 +40,6 @@ import { Item } from '@adobe/react-spectrum';
4340

4441
exports[`Dynamic - Renames Item to Breadcrumb 1`] = `
4542
"import { Breadcrumb, Breadcrumbs } from "@react-spectrum/s2";
46-
import { Item } from '@adobe/react-spectrum';
4743
let folders = [
4844
{id: 1, label: 'Home'},
4945
{id: 2, label: 'Trendy'},
@@ -59,7 +55,6 @@ let folders = [
5955

6056
exports[`Dynamic - Renames key to id 1`] = `
6157
"import { Breadcrumb, Breadcrumbs } from "@react-spectrum/s2";
62-
import { Item } from '@adobe/react-spectrum';
6358
const items = [
6459
{id: 1, name: 'News'},
6560
{id: 2, name: 'Travel'},
@@ -84,7 +79,6 @@ const items = [
8479

8580
exports[`Leaves a comment if size prop contains "S" 1`] = `
8681
"import { Breadcrumb, Breadcrumbs } from "@react-spectrum/s2";
87-
import { Item } from '@adobe/react-spectrum';
8882
8983
// TODO(S2-upgrade): S2 Breadcrumbs no longer includes a nav element by default. You can wrap the Breadcrumbs component in a nav element if needed.
9084
<Breadcrumbs // TODO(S2-upgrade): size="S" is no longer supported. You'll need to update this manually.
@@ -96,7 +90,6 @@ size={true ? 'M' : 'S'}>
9690

9791
exports[`Removes size="S" 1`] = `
9892
"import { Breadcrumb, Breadcrumbs } from "@react-spectrum/s2";
99-
import { Item } from '@adobe/react-spectrum';
10093
10194
// TODO(S2-upgrade): S2 Breadcrumbs no longer includes a nav element by default. You can wrap the Breadcrumbs component in a nav element if needed.
10295
<Breadcrumbs>
@@ -107,7 +100,6 @@ import { Item } from '@adobe/react-spectrum';
107100

108101
exports[`Static - Renames Item to Breadcrumb and adds import 1`] = `
109102
"import { Breadcrumb, Breadcrumbs } from "@react-spectrum/s2";
110-
import { Item } from '@adobe/react-spectrum';
111103
112104
<div>
113105
// TODO(S2-upgrade): S2 Breadcrumbs no longer includes a nav element by default. You can wrap the Breadcrumbs component in a nav element if needed.
@@ -121,7 +113,6 @@ import { Item } from '@adobe/react-spectrum';
121113

122114
exports[`Static - Renames key to id 1`] = `
123115
"import { Breadcrumb, Breadcrumbs } from "@react-spectrum/s2";
124-
import { Item } from '@adobe/react-spectrum';
125116
let externalKey = 'travel';
126117
<div>
127118
// TODO(S2-upgrade): S2 Breadcrumbs no longer includes a nav element by default. You can wrap the Breadcrumbs component in a nav element if needed.

packages/dev/codemods/src/s1-to-s2/__tests__/__snapshots__/combobox.test.ts.snap

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
exports[`Dynamic - Renames Item to ComboBoxItem 1`] = `
44
"import { ComboBoxItem, ComboBox } from "@react-spectrum/s2";
5-
import { Item } from '@adobe/react-spectrum';
65
let options = [
76
{id: 1, name: 'Aerospace'},
87
{id: 2, name: 'Mechanical'}
@@ -18,7 +17,6 @@ let options = [
1817

1918
exports[`Dynamic - Renames key to id 1`] = `
2019
"import { ComboBoxItem, ComboBox } from "@react-spectrum/s2";
21-
import { Item } from '@adobe/react-spectrum';
2220
const items = [
2321
{id: 1, name: 'News'},
2422
{id: 2, name: 'Travel'},
@@ -46,7 +44,6 @@ const items = [
4644

4745
exports[`Removes isQuiet 1`] = `
4846
"import { ComboBoxItem, ComboBox } from "@react-spectrum/s2";
49-
import { Item } from '@adobe/react-spectrum';
5047
let isQuiet = true;
5148
let props = {isQuiet: true};
5249
<div>
@@ -80,7 +77,6 @@ let props = {isQuiet: true};
8077

8178
exports[`Removes placeholder 1`] = `
8279
"import { ComboBoxItem, ComboBox } from "@react-spectrum/s2";
83-
import { Item } from '@adobe/react-spectrum';
8480
let placeholder = 'is this actually removed?';
8581
let props = {placeholder: 'is this actually removed?'};
8682
<div>
@@ -106,7 +102,6 @@ let props = {placeholder: 'is this actually removed?'};
106102

107103
exports[`Static - Converts menuWidth to px value 1`] = `
108104
"import { ComboBoxItem, ComboBox } from "@react-spectrum/s2";
109-
import { Item } from '@adobe/react-spectrum';
110105
let menuWidth = 'size-10';
111106
let props = {menuWidth: 'size-10'};
112107
<div>
@@ -142,7 +137,6 @@ let props = {menuWidth: 'size-10'};
142137

143138
exports[`Static - Renames Item to ComboBoxItem 1`] = `
144139
"import { ComboBoxItem, ComboBox } from "@react-spectrum/s2";
145-
import { Item } from '@adobe/react-spectrum';
146140
<div>
147141
<ComboBox label="Favorite Animal">
148142
<ComboBoxItem>Red Panda</ComboBoxItem>
@@ -153,7 +147,6 @@ import { Item } from '@adobe/react-spectrum';
153147

154148
exports[`Static - Renames key to id 1`] = `
155149
"import { ComboBoxItem, ComboBox } from "@react-spectrum/s2";
156-
import { Item } from '@adobe/react-spectrum';
157150
let externalKey = 'travel';
158151
<div>
159152
<ComboBox label="Favorite Animal">
@@ -165,7 +158,6 @@ let externalKey = 'travel';
165158

166159
exports[`changes validationState to isInvalid or nothing 1`] = `
167160
"import { ComboBoxItem, ComboBox } from "@react-spectrum/s2";
168-
import { Item } from '@adobe/react-spectrum';
169161
let validationState = 'invalid';
170162
let props = {validationState: 'invalid'};
171163
<div>
@@ -199,7 +191,6 @@ let props = {validationState: 'invalid'};
199191

200192
exports[`changes validationState to isInvalid or nothing 2`] = `
201193
"import { ComboBoxItem, ComboBox } from "@react-spectrum/s2";
202-
import { Item } from '@adobe/react-spectrum';
203194
let validationState = 'invalid';
204195
let props = {validationState: 'invalid'};
205196
<div>
@@ -226,7 +217,6 @@ let props = {validationState: 'invalid'};
226217

227218
exports[`handles sections 1`] = `
228219
"import { ComboBoxSection, ComboBoxItem, ComboBox } from "@react-spectrum/s2";
229-
import { Section, Item } from '@adobe/react-spectrum';
230220
<ComboBox>
231221
<ComboBoxSection><Header>Section title</Header>
232222
<ComboBoxItem>Item one</ComboBoxItem>

packages/dev/codemods/src/s1-to-s2/__tests__/__snapshots__/imports.test.ts.snap

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,41 @@ import { StatusLight } from "@react-spectrum/s2";
100100
</>"
101101
`;
102102

103+
exports[`should remove unused Item/Section import even if name taken in different scope 1`] = `
104+
"import { MenuSection, MenuItem, Menu } from "@react-spectrum/s2";
105+
106+
function foo() {
107+
let Item = 'something else';
108+
let Section = 'something else';
109+
}
110+
111+
<div>
112+
<Menu aria-label="Text">
113+
<MenuSection><Header>Styles</Header>
114+
<MenuItem id="bold">Bold</MenuItem>
115+
<MenuItem id="underline">Underline</MenuItem>
116+
</MenuSection>
117+
</Menu>
118+
</div>"
119+
`;
120+
121+
exports[`should remove unused Item/Section import if aliased 1`] = `
122+
"import { MenuSection, MenuItem, Menu } from "@react-spectrum/s2";
123+
import {Section, Item} from 'elsewhere';
124+
125+
<div>
126+
<Section>
127+
<Item>Test</Item>
128+
</Section>
129+
<Menu aria-label="Text">
130+
<MenuSection><Header>Styles</Header>
131+
<MenuItem id="bold"></MenuItem>
132+
<MenuItem id="underline">Underline</MenuItem>
133+
</MenuSection>
134+
</Menu>
135+
</div>"
136+
`;
137+
103138
exports[`should replace named imports 1`] = `
104139
"import { Button } from "@react-spectrum/s2";
105140
@@ -114,7 +149,6 @@ exports[`should replace named imports from individual packages 1`] = `
114149

115150
exports[`should use unique alias if newly imported component name is already in scope 1`] = `
116151
"import { Tag as Tag1, TagGroup } from "@react-spectrum/s2";
117-
import { Item } from '@adobe/react-spectrum';
118152
119153
const Tag = 'something else';
120154

packages/dev/codemods/src/s1-to-s2/__tests__/__snapshots__/menu.test.ts.snap

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
exports[`Dynamic - Renames Item to MenuItem with Submenu, Section to MenuSection 1`] = `
44
"import { MenuItem, MenuSection, Menu, MenuTrigger, SubmenuTrigger, Button } from "@react-spectrum/s2";
5-
import { Item, Section } from '@adobe/react-spectrum';
65
const items = [
76
{ id: 'copy', name: 'Copy' },
87
{ id: 'cut', name: 'Cut' },
@@ -68,7 +67,6 @@ const items = [
6867

6968
exports[`Dynamic - Renames key to id 1`] = `
7069
"import { MenuItem, Menu, MenuTrigger, SubmenuTrigger, Button } from "@react-spectrum/s2";
71-
import { Item } from '@adobe/react-spectrum';
7270
const items = [
7371
{ key: 'copy', name: 'Copy' },
7472
{ key: 'cut', name: 'Cut' },
@@ -164,8 +162,6 @@ exports[`Static - Renames Item to MenuItem, Section to MenuSection 1`] = `
164162
Header,
165163
Heading,
166164
} from "@react-spectrum/s2";
167-
168-
import { Item, Section } from '@adobe/react-spectrum';
169165
<div>
170166
<MenuTrigger>
171167
<Button>Edit</Button>
@@ -199,8 +195,6 @@ exports[`Static - Renames key to id 1`] = `
199195
Header,
200196
Heading,
201197
} from "@react-spectrum/s2";
202-
203-
import { Item, Section } from '@adobe/react-spectrum';
204198
<div>
205199
<MenuTrigger>
206200
<Button>Edit</Button>

packages/dev/codemods/src/s1-to-s2/__tests__/__snapshots__/multi-collection.test.ts.snap

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,8 +55,6 @@ exports[`Static - Renames Item to Breadcrumb and adds import 1`] = `
5555
Heading,
5656
} from "@react-spectrum/s2";
5757
58-
import { Item, Section } from '@adobe/react-spectrum';
59-
6058
<div>
6159
// TODO(S2-upgrade): S2 Breadcrumbs no longer includes a nav element by default. You can wrap the Breadcrumbs component in a nav element if needed.
6260
<Breadcrumbs>

packages/dev/codemods/src/s1-to-s2/__tests__/__snapshots__/picker.test.ts.snap

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
exports[`Dynamic - Renames Item to PickerItem 1`] = `
44
"import { PickerItem, Picker } from "@react-spectrum/s2";
5-
import { Item } from '@adobe/react-spectrum';
65
let options = [
76
{id: 1, name: 'Chocolate'},
87
{id: 2, name: 'Vanilla'}
@@ -28,7 +27,6 @@ let options = [
2827

2928
exports[`Static - Converts menuWidth to px value 1`] = `
3029
"import { PickerItem, Picker } from "@react-spectrum/s2";
31-
import { Item } from '@adobe/react-spectrum';
3230
let menuWidth = 'size-10';
3331
let props = {menuWidth: 'size-10'};
3432
<div>
@@ -64,7 +62,6 @@ let props = {menuWidth: 'size-10'};
6462

6563
exports[`Static - Removes isQuiet 1`] = `
6664
"import { PickerItem, Picker } from "@react-spectrum/s2";
67-
import { Item } from '@adobe/react-spectrum';
6865
let isQuiet = true;
6966
let props = {isQuiet: true};
7067
<div>
@@ -94,7 +91,6 @@ let props = {isQuiet: true};
9491

9592
exports[`Static - Renames Item to PickerItem 1`] = `
9693
"import { PickerItem, Picker } from "@react-spectrum/s2";
97-
import { Item } from '@adobe/react-spectrum';
9894
<div>
9995
<Picker label="Ice Cream">
10096
<PickerItem>Chocolate</PickerItem>
@@ -105,7 +101,6 @@ import { Item } from '@adobe/react-spectrum';
105101

106102
exports[`Static - Renames key to id 1`] = `
107103
"import { PickerItem, Picker } from "@react-spectrum/s2";
108-
import { Item } from '@adobe/react-spectrum';
109104
<div>
110105
<Picker label="Ice Cream">
111106
<PickerItem id="chocolate">Chocolate</PickerItem>
@@ -116,7 +111,6 @@ import { Item } from '@adobe/react-spectrum';
116111

117112
exports[`changes validationState to isInvalid or nothing 1`] = `
118113
"import { PickerItem, Picker } from "@react-spectrum/s2";
119-
import { Item } from '@adobe/react-spectrum';
120114
let validationState = 'invalid';
121115
let props = {validationState: 'invalid'};
122116
<div>
@@ -147,7 +141,6 @@ let props = {validationState: 'invalid'};
147141

148142
exports[`handles sections 1`] = `
149143
"import { PickerSection, PickerItem, Picker } from "@react-spectrum/s2";
150-
import { Section, Item } from '@adobe/react-spectrum';
151144
<Picker>
152145
<PickerSection><Header>Section title</Header>
153146
<PickerItem>Item one</PickerItem>

packages/dev/codemods/src/s1-to-s2/__tests__/__snapshots__/tabs.test.ts.snap

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ let items = [
3030

3131
exports[`Remove isEmphasized 1`] = `
3232
"import { Tab, TabPanel, Tabs, TabList } from "@react-spectrum/s2";
33-
import { Item } from '@adobe/react-spectrum';
3433
let isEmphasized = true;
3534
let props = {isEmphasized: true};
3635
<div>
@@ -65,7 +64,6 @@ let props = {isEmphasized: true};
6564

6665
exports[`Remove isQuiet 1`] = `
6766
"import { Tab, TabPanel, Tabs, TabList } from "@react-spectrum/s2";
68-
import { Item } from '@adobe/react-spectrum';
6967
let isQuiet = true;
7068
let props = {isQuiet: true};
7169
<div>
@@ -100,7 +98,6 @@ let props = {isQuiet: true};
10098

10199
exports[`Update to use new API 1`] = `
102100
"import { Tab, TabPanel, Tabs, TabList } from "@react-spectrum/s2";
103-
import { Item } from '@adobe/react-spectrum';
104101
105102
<Tabs aria-label="History of Ancient Rome"><TabList>
106103
<Tab id="FoR">Founding of Rome</Tab>

packages/dev/codemods/src/s1-to-s2/__tests__/__snapshots__/taggroup.test.ts.snap

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
exports[`Dynamic - Renames Item to Tag 1`] = `
44
"import { Tag, TagGroup } from "@react-spectrum/s2";
5-
import { Item } from '@adobe/react-spectrum';
65
const items = [
76
{id: 1, name: 'News'},
87
{id: 2, name: 'Travel'},
@@ -19,7 +18,6 @@ const items = [
1918

2019
exports[`Dynamic - Renames key to id 1`] = `
2120
"import { Tag, TagGroup } from "@react-spectrum/s2";
22-
import { Item } from '@adobe/react-spectrum';
2321
const items = [
2422
{id: 1, name: 'News'},
2523
{id: 2, name: 'Travel'},
@@ -42,7 +40,6 @@ const items = [
4240

4341
exports[`Static - Renames Item to Tag 1`] = `
4442
"import { Tag, TagGroup } from "@react-spectrum/s2";
45-
import { Item } from '@adobe/react-spectrum';
4643
4744
<div>
4845
<TagGroup aria-label="Static TagGroup items example">
@@ -56,7 +53,6 @@ import { Item } from '@adobe/react-spectrum';
5653

5754
exports[`Static - Renames key to id 1`] = `
5855
"import { Tag, TagGroup } from "@react-spectrum/s2";
59-
import { Item } from '@adobe/react-spectrum';
6056
6157
let externalKey = 'travel';
6258
<div>
@@ -71,7 +67,6 @@ let externalKey = 'travel';
7167

7268
exports[`changes validationState to isInvalid or nothing 1`] = `
7369
"import { Tag, TagGroup } from "@react-spectrum/s2";
74-
import { Item } from '@adobe/react-spectrum';
7570
7671
let validationState = 'invalid';
7772
let props = {validationState: 'invalid'};

0 commit comments

Comments
 (0)