Skip to content

Commit

Permalink
refactor: add codemod for Table
Browse files Browse the repository at this point in the history
  • Loading branch information
snitin315 committed Jan 17, 2024
1 parent 1bce840 commit 8d1759e
Show file tree
Hide file tree
Showing 5 changed files with 113 additions and 25 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
import { applyTransform } from '@hypermod/utils';
import * as transformer from '..';

it('should migrate the ActionList component', async () => {
const result = await applyTransform(
transformer,
`
const App = () => (
<>
<Table {...args} data={data} surfaceLevel={3}>
{(tableData) => (
<>
<TableHeader>
<TableHeaderRow>
<TableHeaderCell headerKey="PAYMENT_ID">ID</TableHeaderCell>
<TableHeaderCell headerKey="AMOUNT">Amount</TableHeaderCell>
<TableHeaderCell headerKey="ACCOUNT">Account</TableHeaderCell>
</TableHeaderRow>
</TableHeader>
<TableBody>
{tableData.map((tableItem, index) => (
<TableRow key={index} item={tableItem}>
<TableCell>
<Code size="medium">{tableItem.paymentId}</Code>
</TableCell>
<TableCell>
<Amount value={tableItem.amount} />
</TableCell>
<TableCell>{tableItem.account}</TableCell>
</TableRow>
))}
</TableBody>
</>
)}
</Table>
</>
);
`,
{ parser: 'tsx' },
);

expect(result).toMatchInlineSnapshot(`
"const App = () => (
<>
<Table {...args} data={data}>
{(tableData) => (
<>
<TableHeader>
<TableHeaderRow>
<TableHeaderCell headerKey="PAYMENT_ID">ID</TableHeaderCell>
<TableHeaderCell headerKey="AMOUNT">Amount</TableHeaderCell>
<TableHeaderCell headerKey="ACCOUNT">Account</TableHeaderCell>
</TableHeaderRow>
</TableHeader>
<TableBody>
{tableData.map((tableItem, index) => (
<TableRow key={index} item={tableItem}>
<TableCell>
<Code size="medium">{tableItem.paymentId}</Code>
</TableCell>
<TableCell>
<Amount value={tableItem.amount} />
</TableCell>
<TableCell>{tableItem.account}</TableCell>
</TableRow>
))}
</TableBody>
</>
)}
</Table>
</>
);"
`);
});
4 changes: 2 additions & 2 deletions packages/blade/codemods/brand-refresh/transformers/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import migrateCardComponent from './migrate-card';
import migrateBadgeComponent from './migrate-badge';
import migrateContrastIntentAndColorProps from './migrate-contrast-intent-color-props';
import migrateTypographyComponents from './migrate-typography';
import migrateActionListComponent from './migrate-actionlist';
import migrateActionListAndTable from './migrate-actionlist-and-table';
import { red, isExpression } from './utils';
// eslint-disable-next-line import/extensions
import colorTokensMapping from './colorTokensMapping.json';
Expand Down Expand Up @@ -174,7 +174,7 @@ const transformer: Transform = (file, api, options) => {
migrateCardComponent({ root, j, file });
migrateAmountComponent({ root, j, file });
migrateDividerComponent({ root, j, file });
migrateActionListComponent({ root, j, file });
migrateActionListAndTable({ root, j, file });
migrateDropdownComponent({ root, j, file });

// Update ImportDeclaration from "@razorpay/blade/components" to "@razorpay/blade-rebranded/components"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import { red } from './utils';

function migrateActionListAndTable({ root, j, file }): void {
// ActionList & Table components: Remove the `surfaceLevel` prop
// <ActionList surfaceLevel={2}> -> <ActionList >
// <Table surfaceLevel={2}> -> <Table >
try {
root
.find(j.JSXElement)
.filter(
(path) =>
path.value.openingElement.name.name === 'ActionList' ||
path.value.openingElement.name.name === 'Table',
)
.find(j.JSXAttribute)
.filter((path) => path.node.name.name === 'surfaceLevel')
.remove();
} catch (error) {

Check warning on line 18 in packages/blade/codemods/brand-refresh/transformers/migrate-actionlist-and-table.ts

View workflow job for this annotation

GitHub Actions / Validate Source Code

Implicit any in catch clause
console.error(
red(
`⛔️ ${file.path}: Oops! Ran into an issue while removing the "surfaceLevel" prop from "ActionList"/"Table".`,
),
`\n${red(error.stack)}\n`,
);
}
}

export default migrateActionListAndTable;

This file was deleted.

9 changes: 9 additions & 0 deletions packages/blade/upgrade-v11.md
Original file line number Diff line number Diff line change
Expand Up @@ -465,3 +465,12 @@ Only use this if you're unable to run the codemod described above.
- <Skeleton contrast="low|high" />
+ <Skeleton />
```

### Table

- **The `surfaceLevel` prop has been removed without replacement.**

```diff
- <Table data={tableData} surfaceLevel={1/2/3}>
+ <Table data={tableData} >
```

0 comments on commit 8d1759e

Please sign in to comment.