diff --git a/packages/codemods/src/codemod-helpers.ts b/packages/codemods/src/codemod-helpers.ts
index 7bb059ca89..3e99db0e5c 100644
--- a/packages/codemods/src/codemod-helpers.ts
+++ b/packages/codemods/src/codemod-helpers.ts
@@ -105,6 +105,23 @@ export function renameProp(
});
}
+export function renameSubComponent(
+ j: JSCodeshift,
+ source: Collection,
+ componentName: string,
+ prevSubcomponentName: string,
+ newSubcomponentName: string,
+) {
+ source
+ .find(j.MemberExpression, {
+ object: { name: componentName },
+ property: { name: prevSubcomponentName },
+ })
+ .replaceWith(
+ j.memberExpression(j.identifier(componentName), j.identifier(newSubcomponentName)),
+ );
+}
+
export function swapBooleanValue(
api: API,
source: Collection,
diff --git a/packages/codemods/src/transforms/v7/__testfixtures__/placeholder/basic.input.tsx b/packages/codemods/src/transforms/v7/__testfixtures__/placeholder/basic.input.tsx
new file mode 100644
index 0000000000..3c5206757d
--- /dev/null
+++ b/packages/codemods/src/transforms/v7/__testfixtures__/placeholder/basic.input.tsx
@@ -0,0 +1,38 @@
+import { Button,ButtonGroup, Icon56UserAddOutline, Icon56UsersOutline, Placeholder } from '@vkontakte/vkui';
+import React from 'react';
+
+const App = () => {
+ return (
+
+ {/* Проверяем переименование свойства header */}
+ }
+ header={}
+ >
+ Подключите сообщества, от которых Вы хотите получать уведомления
+
+
+ {/* Проверяем переименование подкомпонента Header */}
+
+ Find friends
+
+
+ {/* Проверяем переименование подкомпонента Header и Text */}
+
+
+
+
+ Find friends
+ The people you add as your friends will be displayed here
+
+
+
+
+
+
+
+
+ );
+};
diff --git a/packages/codemods/src/transforms/v7/__tests__/__snapshots__/placeholder.ts.snap b/packages/codemods/src/transforms/v7/__tests__/__snapshots__/placeholder.ts.snap
new file mode 100644
index 0000000000..2aa230f59f
--- /dev/null
+++ b/packages/codemods/src/transforms/v7/__tests__/__snapshots__/placeholder.ts.snap
@@ -0,0 +1,40 @@
+// Jest Snapshot v1, https://goo.gl/fbAQLP
+
+exports[`placeholder transforms correctly 1`] = `
+"import { Button,ButtonGroup, Icon56UserAddOutline, Icon56UsersOutline, Placeholder } from '@vkontakte/vkui';
+import React from 'react';
+
+const App = () => {
+ return (
+ (
+ {/* Проверяем переименование свойства header */}
+ }
+ title={}
+ >
+ Подключите сообщества, от которых Вы хотите получать уведомления
+
+ {/* Проверяем переименование подкомпонента Header */}
+
+ Find friends
+
+ {/* Проверяем переименование подкомпонента Header и Text */}
+
+
+
+
+ Find friends
+ The people you add as your friends will be displayed here
+
+
+
+
+
+
+
+ )
+ );
+};"
+`;
diff --git a/packages/codemods/src/transforms/v7/__tests__/placeholder.ts b/packages/codemods/src/transforms/v7/__tests__/placeholder.ts
new file mode 100644
index 0000000000..260830abe4
--- /dev/null
+++ b/packages/codemods/src/transforms/v7/__tests__/placeholder.ts
@@ -0,0 +1,12 @@
+jest.autoMockOff();
+
+import { defineSnapshotTestFromFixture } from '../../../testHelpers/testHelper';
+
+const name = 'placeholder';
+const fixtures = ['basic'] as const;
+
+describe(name, () => {
+ fixtures.forEach((test) =>
+ defineSnapshotTestFromFixture(__dirname, name, global.TRANSFORM_OPTIONS, `${name}/${test}`),
+ );
+});
diff --git a/packages/codemods/src/transforms/v7/placeholder.ts b/packages/codemods/src/transforms/v7/placeholder.ts
new file mode 100644
index 0000000000..9ece8c564d
--- /dev/null
+++ b/packages/codemods/src/transforms/v7/placeholder.ts
@@ -0,0 +1,23 @@
+import { API, FileInfo } from 'jscodeshift';
+import { getImportInfo, renameProp, renameSubComponent } from '../../codemod-helpers';
+import { JSCodeShiftOptions } from '../../types';
+
+export const parser = 'tsx';
+
+export default function transformer(file: FileInfo, api: API, options: JSCodeShiftOptions) {
+ const { alias } = options;
+ const j = api.jscodeshift;
+ const source = j(file.source);
+ const { localName } = getImportInfo(j, file, 'Placeholder', alias);
+
+ if (!localName) {
+ return source.toSource();
+ }
+
+ renameProp(j, source, localName, { header: 'title' });
+
+ renameSubComponent(j, source, localName, 'Header', 'Title');
+ renameSubComponent(j, source, localName, 'Text', 'Description');
+
+ return source.toSource();
+}
diff --git a/packages/vkui/src/components/DropZone/DropZone.e2e-playground.tsx b/packages/vkui/src/components/DropZone/DropZone.e2e-playground.tsx
index fea1c31831..bcf47902ca 100644
--- a/packages/vkui/src/components/DropZone/DropZone.e2e-playground.tsx
+++ b/packages/vkui/src/components/DropZone/DropZone.e2e-playground.tsx
@@ -11,10 +11,10 @@ export const DropZonePlayground = (props: ComponentPlaygroundProps) => (
- Быстрая отправка
-
+ Быстрая отправка
+
Перенесите файл сюда для быстрой отправки. В таком случае изображения будут сжаты.
-
+
)}
diff --git a/packages/vkui/src/components/DropZone/DropZone.stories.tsx b/packages/vkui/src/components/DropZone/DropZone.stories.tsx
index a28c2f6fa7..0571ea4e68 100644
--- a/packages/vkui/src/components/DropZone/DropZone.stories.tsx
+++ b/packages/vkui/src/components/DropZone/DropZone.stories.tsx
@@ -22,10 +22,10 @@ export const Playground: Story = {
- Быстрая отправка
-
+ Быстрая отправка
+
Перенесите файл сюда для быстрой отправки. В таком случае изображения будут сжаты.
-
+
),
diff --git a/packages/vkui/src/components/DropZone/Readme.md b/packages/vkui/src/components/DropZone/Readme.md
index d8c54224c9..ffb9a739f2 100644
--- a/packages/vkui/src/components/DropZone/Readme.md
+++ b/packages/vkui/src/components/DropZone/Readme.md
@@ -4,10 +4,10 @@ const Item = ({ active }) => (
- Быстрая отправка
-
+ Быстрая отправка
+
Перенесите файл сюда для быстрой отправки. В таком случае изображения будут сжаты.
-
+
);
@@ -40,10 +40,10 @@ const Item = ({ active }) => (
- Быстрая отправка
-
+ Быстрая отправка
+
Перенесите файл сюда для быстрой отправки. В таком случае изображения будут сжаты.
-
+
);
diff --git a/packages/vkui/src/components/DropZone/components/DropZoneGrid.e2e-playground.tsx b/packages/vkui/src/components/DropZone/components/DropZoneGrid.e2e-playground.tsx
index 0cbb66647a..f86a5441a9 100644
--- a/packages/vkui/src/components/DropZone/components/DropZoneGrid.e2e-playground.tsx
+++ b/packages/vkui/src/components/DropZone/components/DropZoneGrid.e2e-playground.tsx
@@ -10,10 +10,10 @@ const Item = () => (
- Быстрая отправка
-
+ Быстрая отправка
+
Перенесите файл сюда для быстрой отправки. В таком случае изображения будут сжаты.
-
+
);
diff --git a/packages/vkui/src/components/Gradient/Readme.md b/packages/vkui/src/components/Gradient/Readme.md
index 01b37acbe5..3660f706ce 100644
--- a/packages/vkui/src/components/Gradient/Readme.md
+++ b/packages/vkui/src/components/Gradient/Readme.md
@@ -15,7 +15,7 @@ const Example = () => {
}
- header="Алексей Мазелюк"
+ title="Алексей Мазелюк"
action={
}>
Здесь будут отображаться люди, которых вы добавите в друзья
diff --git a/packages/vkui/src/components/SplitLayout/SplitLayout.stories.tsx b/packages/vkui/src/components/SplitLayout/SplitLayout.stories.tsx
index c60e7af11c..a17021db75 100644
--- a/packages/vkui/src/components/SplitLayout/SplitLayout.stories.tsx
+++ b/packages/vkui/src/components/SplitLayout/SplitLayout.stories.tsx
@@ -122,7 +122,7 @@ export const Example: Story = {
}
- header="Уведомления от сообществ"
+ title="Уведомления от сообществ"
action={Подключить сообщества}
>
Подключите сообщества, от которых Вы хотите получать уведомления
@@ -140,7 +140,7 @@ export const Example: Story = {
Доступ запрещён
Найти друзей}
>
Здесь будут отображаться люди, которых вы добавите в друзья