profinansy-ui-lib 4.1.3 → 4.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -193,6 +193,7 @@ export declare const getInvestmentsHeader: (hostname: string, hostnameLenta: str
193
193
  isNew?: undefined;
194
194
  } | {
195
195
  name: string;
196
+ isForeignAccess: boolean;
196
197
  href: string;
197
198
  locked: boolean;
198
199
  unavailable: boolean;
@@ -214,7 +215,6 @@ export declare const getInvestmentsHeader: (hostname: string, hostnameLenta: str
214
215
  unavailable: boolean;
215
216
  isHit?: undefined;
216
217
  })[];
217
- isForeignAccess?: undefined;
218
218
  isNew?: undefined;
219
219
  } | {
220
220
  name: string;
@@ -265,38 +265,46 @@ export declare const getInvestmentsSidebar: (hostname: string, hostnameLenta: st
265
265
  name: string;
266
266
  Icon: ComponentType<void>;
267
267
  isFill: boolean;
268
- isForeignAccess: boolean;
269
268
  href: string;
270
- locked: boolean;
271
- subPages: {
272
- name: string;
273
- href: string;
274
- locked: boolean;
275
- innerPages: string[];
276
- }[];
269
+ isForeignAccess?: undefined;
270
+ locked?: undefined;
277
271
  unavailable?: undefined;
278
272
  description?: undefined;
279
273
  imagePlug?: undefined;
280
274
  imagePlugMob?: undefined;
281
275
  innerPages?: undefined;
276
+ subPages?: undefined;
282
277
  isNew?: undefined;
283
278
  } | {
284
279
  name: string;
285
280
  Icon: ComponentType<void>;
286
281
  isFill: boolean;
282
+ isForeignAccess: boolean;
287
283
  href: string;
288
- isForeignAccess?: undefined;
289
- locked?: undefined;
290
- subPages?: undefined;
291
- unavailable?: undefined;
292
- description?: undefined;
293
- imagePlug?: undefined;
294
- imagePlugMob?: undefined;
295
- innerPages?: undefined;
284
+ locked: boolean;
285
+ unavailable: boolean;
286
+ description: string;
287
+ imagePlug: string;
288
+ imagePlugMob: string;
289
+ innerPages: string[];
290
+ subPages: ({
291
+ name: string;
292
+ href: string;
293
+ locked: boolean;
294
+ isHit: boolean;
295
+ unavailable: boolean;
296
+ } | {
297
+ name: string;
298
+ href: string;
299
+ locked: boolean;
300
+ unavailable: boolean;
301
+ isHit?: undefined;
302
+ })[];
296
303
  isNew?: undefined;
297
304
  } | {
298
305
  name: string;
299
306
  Icon: ComponentType<void>;
307
+ isForeignAccess: boolean;
300
308
  isFill: boolean;
301
309
  href: string;
302
310
  locked: boolean;
@@ -309,36 +317,36 @@ export declare const getInvestmentsSidebar: (hostname: string, hostnameLenta: st
309
317
  name: string;
310
318
  href: string;
311
319
  locked: boolean;
312
- isHit: boolean;
313
320
  unavailable: boolean;
321
+ isForeignAccess?: undefined;
314
322
  } | {
315
323
  name: string;
324
+ isForeignAccess: boolean;
316
325
  href: string;
317
326
  locked: boolean;
318
327
  unavailable: boolean;
319
- isHit?: undefined;
320
328
  })[];
321
- isForeignAccess?: undefined;
322
329
  isNew?: undefined;
323
330
  } | {
324
331
  name: string;
325
332
  href: string;
326
333
  Icon: ComponentType<void>;
327
334
  isFill: boolean;
335
+ isForeignAccess: boolean;
328
336
  locked: boolean;
329
337
  unavailable: boolean;
330
338
  isNew: boolean;
331
339
  description: string;
332
340
  imagePlug: string;
333
341
  imagePlugMob: string;
334
- isForeignAccess?: undefined;
335
- subPages?: undefined;
336
342
  innerPages?: undefined;
343
+ subPages?: undefined;
337
344
  } | {
338
345
  name: string;
339
346
  href: string;
340
347
  Icon: ComponentType<void>;
341
348
  isFill: boolean;
349
+ isForeignAccess: boolean;
342
350
  locked: boolean;
343
351
  subPages: ({
344
352
  name: string;
@@ -369,7 +377,6 @@ export declare const getInvestmentsSidebar: (hostname: string, hostnameLenta: st
369
377
  innerPages?: undefined;
370
378
  isNotVisible?: undefined;
371
379
  })[];
372
- isForeignAccess?: undefined;
373
380
  unavailable?: undefined;
374
381
  description?: undefined;
375
382
  imagePlug?: undefined;
@@ -380,29 +387,43 @@ export declare const getInvestmentsSidebar: (hostname: string, hostnameLenta: st
380
387
  name: string;
381
388
  Icon: ComponentType<void>;
382
389
  isFill: boolean;
390
+ isForeignAccess: boolean;
383
391
  href: string;
384
- locked: boolean;
385
- isForeignAccess?: undefined;
392
+ locked?: undefined;
393
+ unavailable?: undefined;
394
+ description?: undefined;
395
+ imagePlug?: undefined;
396
+ imagePlugMob?: undefined;
397
+ innerPages?: undefined;
386
398
  subPages?: undefined;
399
+ isNew?: undefined;
400
+ } | {
401
+ name: string;
402
+ Icon: ComponentType<void>;
403
+ isFill: boolean;
404
+ isForeignAccess: boolean;
405
+ href: string;
406
+ locked: boolean;
387
407
  unavailable?: undefined;
388
408
  description?: undefined;
389
409
  imagePlug?: undefined;
390
410
  imagePlugMob?: undefined;
391
411
  innerPages?: undefined;
412
+ subPages?: undefined;
392
413
  isNew?: undefined;
393
414
  } | {
394
415
  name: string;
395
416
  Icon: ComponentType<void>;
396
417
  isFill: boolean;
418
+ isForeignAccess: boolean;
397
419
  href: string;
398
420
  locked: boolean;
399
421
  unavailable: boolean;
400
422
  description: string;
401
423
  imagePlug: string;
402
424
  imagePlugMob: string;
403
- isForeignAccess?: undefined;
404
- subPages?: undefined;
405
425
  innerPages?: undefined;
426
+ subPages?: undefined;
406
427
  isNew?: undefined;
407
428
  })[];
408
429
  };
@@ -1,9 +1,20 @@
1
- export declare const getProfileSidebar: (hostname: string) => {
1
+ import { Locales } from '../../../common.types';
2
+ export declare const getProfileSidebar: (hostname: string, locale?: Locales) => {
2
3
  title: string;
3
4
  name: string;
4
5
  href: string;
5
6
  Icon: ComponentType<void>;
6
7
  subPages: ({
8
+ name: "profile_favorite";
9
+ Icon: ComponentType<void>;
10
+ isForeignAccess: boolean;
11
+ href: string;
12
+ innerPages: string[];
13
+ subPages: {
14
+ name: string;
15
+ href: string;
16
+ }[];
17
+ } | {
7
18
  name: string;
8
19
  isFill: boolean;
9
20
  isForeignAccess: boolean;
@@ -11,7 +22,6 @@ export declare const getProfileSidebar: (hostname: string) => {
11
22
  href: string;
12
23
  hiddenFromChildren?: undefined;
13
24
  innerPages?: undefined;
14
- subPages?: undefined;
15
25
  } | {
16
26
  name: string;
17
27
  Icon: ComponentType<void>;
@@ -20,7 +30,6 @@ export declare const getProfileSidebar: (hostname: string) => {
20
30
  hiddenFromChildren: boolean;
21
31
  isForeignAccess?: undefined;
22
32
  innerPages?: undefined;
23
- subPages?: undefined;
24
33
  } | {
25
34
  name: string;
26
35
  Icon: ComponentType<void>;
@@ -29,7 +38,6 @@ export declare const getProfileSidebar: (hostname: string) => {
29
38
  isForeignAccess?: undefined;
30
39
  hiddenFromChildren?: undefined;
31
40
  innerPages?: undefined;
32
- subPages?: undefined;
33
41
  } | {
34
42
  name: string;
35
43
  Icon: ComponentType<void>;
@@ -38,19 +46,22 @@ export declare const getProfileSidebar: (hostname: string) => {
38
46
  isFill?: undefined;
39
47
  isForeignAccess?: undefined;
40
48
  innerPages?: undefined;
41
- subPages?: undefined;
42
49
  } | {
43
50
  name: string;
44
51
  Icon: ComponentType<void>;
52
+ isForeignAccess: boolean;
45
53
  href: string;
46
- innerPages: string[];
47
- subPages: {
48
- name: string;
49
- href: string;
50
- }[];
51
54
  isFill?: undefined;
52
- isForeignAccess?: undefined;
53
55
  hiddenFromChildren?: undefined;
56
+ innerPages?: undefined;
57
+ } | {
58
+ name: string;
59
+ Icon: ComponentType<void>;
60
+ isFill: boolean;
61
+ isForeignAccess: boolean;
62
+ href: string;
63
+ hiddenFromChildren: boolean;
64
+ innerPages?: undefined;
54
65
  } | {
55
66
  name: string;
56
67
  Icon: ComponentType<void>;
@@ -59,6 +70,5 @@ export declare const getProfileSidebar: (hostname: string) => {
59
70
  href: string;
60
71
  innerPages: string[];
61
72
  hiddenFromChildren: boolean;
62
- subPages?: undefined;
63
73
  })[];
64
74
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "profinansy-ui-lib",
3
- "version": "4.1.3",
3
+ "version": "4.1.5",
4
4
  "main": "./dist/profinansy-ui-lib.cjs",
5
5
  "module": "./dist/profinansy-ui-lib.es.js",
6
6
  "types": "./dist/index.d.ts",
package/readme.md CHANGED
@@ -1,59 +1,82 @@
1
1
  # Общая библиотека компонентов
2
2
 
3
3
  ## Описание проекта
4
+
4
5
  - Документация актуальных компонентов - https://master--651c1b79b512c24adef7cc46.chromatic.com/
5
6
 
6
7
  Проект предназначен для создания общих компонентов, которые используются в нескольких проектах сразу:
7
- 1) UIKIT
8
- 2) HeaderV2
9
- 3) FooterV2
10
- 4) SideMenuV2
11
- 5) LayoutV2
12
- 6) Вспомогательные функции
8
+
9
+ 1. UIKIT
10
+ 2. HeaderV2
11
+ 3. FooterV2
12
+ 4. SideMenuV2
13
+ 5. LayoutV2
14
+ 6. Вспомогательные функции
13
15
 
14
16
  ## Для начала работы
15
- 1) Склонировать репозиторий ```git@profinansy.gitlab.yandexcloud.net:ru.profinansy/frontend/profinansy-react-components.git```
16
- 2) Установить зависимости. Для этого в корневой папке проекта выполнить команду ```yarn install```
17
- 3) Запустить сторибук ```yarn storybook```
17
+
18
+ 1. Склонировать репозиторий `git@gitlab.profinansy.dev:ru.profinansy/frontend/profinansy-react-components.git`
19
+ 2. Установить зависимости. Для этого в корневой папке проекта выполнить команду `yarn install`
20
+ 3. Запустить сторибук `yarn storybook`
18
21
 
19
22
  ## Используемые команды
23
+
20
24
  #### Установка зависимостей
25
+
21
26
  ```bash
22
27
  yarn install
23
28
  ```
29
+
24
30
  #### Сборка проекта
31
+
25
32
  ```bash
26
33
  yarn build
27
34
  ```
35
+
28
36
  #### Апгрейд и публикация пакета
37
+
29
38
  ```bash
30
39
  yarn pub
31
40
  ```
41
+
32
42
  #### Проверка проекта линтером
43
+
33
44
  ```bash
34
45
  yarn lint
35
46
  ```
47
+
36
48
  #### Автоматическое исправление замечаний линтером
49
+
37
50
  ```bash
38
51
  yarn lint:fix
39
52
  ```
53
+
40
54
  #### Проверка проекта на типы
55
+
41
56
  ```bash
42
57
  yarn types
43
58
  ```
59
+
44
60
  #### Сборка сторибука в дев режиме (для разработки)
61
+
45
62
  ```bash
46
63
  yarn storybook
47
64
  ```
65
+
48
66
  #### Сборка сторибука для деплоя
67
+
49
68
  ```bash
50
69
  yarn build-storybook
51
70
  ```
71
+
52
72
  #### Сборка иконок в документацию
73
+
53
74
  ```bash
54
75
  yarn icons:story
55
76
  ```
77
+
56
78
  #### Деплой сторибука
79
+
57
80
  ```bash
58
81
  yarn chromatic
59
82
  ```
@@ -61,11 +84,13 @@ yarn chromatic
61
84
  ## Нюансы по работу с проектом
62
85
 
63
86
  ### Как смотреть изменения
87
+
64
88
  1. Надо расшарить локально репу общих компонентов, для этого в терминале в корневой директории проекта **profinansy-react-components** запустить команду **yarn link**
65
89
  2. В своем проекте, в котором используется эта репа (profinansy, к примеру), надо выполнить команду **yarn remove profinansy-ui-lib**, затем **yarn link profinansy-ui-lib**
66
90
  3. **Одноразовая настройка:** В конфиге сборщика потребителя нужно добавить алиасы для `react`, `react-dom` и `styled-components`. Это заставит сборщик резолвить эти пакеты из `node_modules` потребителя, а не из симлинкнутой библиотеки. Без этого при `yarn link` будет два экземпляра React и ошибки типа "cannot be used as a JSX component" / "Invalid hook call". Алиасы безвредны без `yarn link` (указывают туда же, куда сборщик резолвит по умолчанию), поэтому их можно оставить навсегда:
67
91
 
68
92
  **Next.js** — в `next.config.js`, внутрь существующей функции `webpack(config) { ... }` добавить:
93
+
69
94
  ```javascript
70
95
  const path = require('path')
71
96
 
@@ -73,11 +98,12 @@ config.resolve.alias = {
73
98
  ...config.resolve.alias,
74
99
  react: path.resolve(__dirname, 'node_modules/react'),
75
100
  'react-dom': path.resolve(__dirname, 'node_modules/react-dom'),
76
- 'styled-components': path.resolve(__dirname, 'node_modules/styled-components'),
101
+ 'styled-components': path.resolve(__dirname, 'node_modules/styled-components')
77
102
  }
78
103
  ```
79
104
 
80
105
  **Vite** — в `vite.config.ts` добавить в `resolve`:
106
+
81
107
  ```javascript
82
108
  import path from 'path'
83
109
 
@@ -86,13 +112,17 @@ export default defineConfig({
86
112
  alias: {
87
113
  react: path.resolve(__dirname, 'node_modules/react'),
88
114
  'react-dom': path.resolve(__dirname, 'node_modules/react-dom'),
89
- 'styled-components': path.resolve(__dirname, 'node_modules/styled-components'),
115
+ 'styled-components': path.resolve(
116
+ __dirname,
117
+ 'node_modules/styled-components'
118
+ )
90
119
  }
91
120
  }
92
121
  })
93
122
  ```
94
123
 
95
124
  **Webpack** — в `webpack.config.js` добавить в `resolve`:
125
+
96
126
  ```javascript
97
127
  const path = require('path')
98
128
 
@@ -101,11 +131,15 @@ module.exports = {
101
131
  alias: {
102
132
  react: path.resolve(__dirname, 'node_modules/react'),
103
133
  'react-dom': path.resolve(__dirname, 'node_modules/react-dom'),
104
- 'styled-components': path.resolve(__dirname, 'node_modules/styled-components'),
134
+ 'styled-components': path.resolve(
135
+ __dirname,
136
+ 'node_modules/styled-components'
137
+ )
105
138
  }
106
139
  }
107
140
  }
108
141
  ```
142
+
109
143
  4. Запустите проект-потребитель как обычно (например, **yarn dev** в profinansy frontend). Storybook в библиотеке запускать не нужно — он нужен только для изолированной разработки компонентов
110
144
  5. Для применения изменений после правок в библиотеке выполняйте команду **yarn build** в репозитории **profinansy-react-components** — потребитель подхватит новый билд через симлинк автоматически
111
145
  6. После завершения работы над компонентами, надо отвязать привязку: **yarn unlink profinansy-ui-lib**, затем **yarn add --force profinansy-ui-lib**
@@ -114,19 +148,18 @@ module.exports = {
114
148
 
115
149
  Все иконки кладем в папку icons в формате svg. Подключать в компонент иконки
116
150
  можно напрямую через import. Они сгенерируются в компоненты автоматически
117
- через `svgr`.
151
+ через `svgr`.
118
152
  Все иконки, используемые на проекте, отображаются в сторибуке.
119
153
  После того, как вы добавили новые иконки в проект, запустите скрипт
120
- ``yarn icons:story``. Он автоматически сгенерирует новый `.stories` файл
121
- и добавит все ваши новые иконки.
154
+ `yarn icons:story`. Он автоматически сгенерирует новый `.stories` файл
155
+ и добавит все ваши новые иконки.
122
156
 
123
157
  ### Как работать с изображениями
124
158
 
125
159
  Если вам нужно использовать какое-либо изображение отличное от формата `.svg`, то скачиваете это изображение
126
160
  из фигмы и отправляете девопсам с просьбой залить его в файлохранилище. У себя уже просто вставляете ссылку,
127
- которую вам передадут девопсы.
128
- Изображения хранятся вот тут: https://storage.yandexcloud.net/public-files.profinansy.ru/images
129
-
161
+ которую вам передадут девопсы.
162
+ Изображения хранятся вот тут: https://storage.yandexcloud.net/public-files.profinansy.ru/images
130
163
 
131
164
  ### Темизация
132
165
 
@@ -146,27 +179,31 @@ ThemeProvider. Через хук `useTheme` вы можете получить
146
179
  с помощью хука `useConfig`
147
180
 
148
181
  ### Storybook
182
+
149
183
  Для всех компонентов используется сторибук. Все изменения можно смотреть там.
150
- Сторибук деплоится на chromatic. Для того, что задеплоить ваши изменения, сделайте коммит в гит,
151
- а потом выполните команду ``yarn chromatic``
184
+ Сторибук деплоится на chromatic. Для того, что задеплоить ваши изменения, сделайте коммит в гит,
185
+ а потом выполните команду `yarn chromatic`
152
186
 
153
187
  ## Файловая структура
154
- 1) В папке **api** находятся функции запросов к бэкенду
155
- 2) В папке **components** находятся все компоненты на проекте
156
- - **blocks** - крупные блоки (header, footer и тд)
157
- - **layouts** - общий лэйаут
158
- - **modals** - общие модалки
159
- - **uikit** - uikit проектов
160
- 3) В папке **constants** находятся все константы
161
- 4) папке **hooks** находятся все общие хуки
162
- 5) папке **icons** находятся все иконки
163
- 6) папке **theme** находятся все, что касается темизации
164
- 7) папке **translations** находятся все переводы
165
- 8) папке **urls** находятся объекты с роутингом
166
- 9) папке **utils** находятся все вспомогательные функции
188
+
189
+ 1. В папке **api** находятся функции запросов к бэкенду
190
+ 2. В папке **components** находятся все компоненты на проекте
191
+ - **blocks** - крупные блоки (header, footer и тд)
192
+ - **layouts** - общий лэйаут
193
+ - **modals** - общие модалки
194
+ - **uikit** - uikit проектов
195
+ 3. В папке **constants** находятся все константы
196
+ 4. папке **hooks** находятся все общие хуки
197
+ 5. папке **icons** находятся все иконки
198
+ 6. папке **theme** находятся все, что касается темизации
199
+ 7. папке **translations** находятся все переводы
200
+ 8. папке **urls** находятся объекты с роутингом
201
+ 9. папке **utils** находятся все вспомогательные функции
167
202
 
168
203
  ## Процесс работы над задачей
204
+
169
205
  https://wiki.corp.profinansy.net/pages/viewpage.action?pageId=4948261
170
206
 
171
207
  ## Регламенты разработки
208
+
172
209
  https://wiki.corp.profinansy.net/pages/viewpage.action?pageId=4948295