Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(Select/CustomSelect): Allow to use custom options in renderOption prop #6076

Conversation

mendrew
Copy link
Contributor

@mendrew mendrew commented Nov 3, 2023


  • Unit-тесты - добавлен тест для проверки случаев использования CustomSelect с расширенными опциями. В основном, чтобы поймать ошибку типов.

Описание

Мы вроде бы позволяем использовать опции любых типов, которые бы имели у себя обязательные свойста Select,

export interface CustomSelectOptionInterface {
value: SelectValue;
label: React.ReactElement | string;
disabled?: boolean;
[index: string]: any;
}

но сейчас TS ругается если мы пытаемся использовать в renderOption опции со свойствами, которых нету в CustomSelectOptionInterface.

Изменения

Добавили дженерик для типа опций с constraint, чтобы можно было использовать расширинный тип опции с обязательными полями.

@github-actions github-actions bot added patch Автоматизация: PR продублируется в ветку последнего минорного релиза для выпуска патча v5 Автоматизация: PR продублируется в ветку v5 labels Nov 3, 2023
Copy link
Contributor

github-actions bot commented Nov 3, 2023

size-limit report 📦

Path Size
JS 332.4 KB (+0.01% 🔺)
JS (gzip) 101.56 KB (+0.01% 🔺)
JS (brotli) 83.79 KB (-0.08% 🔽)
JS import Div (tree shaking) 2.71 KB (0%)
CSS 255.17 KB (0%)
CSS (gzip) 33.55 KB (0%)
CSS (brotli) 27.25 KB (0%)

Copy link

codesandbox-ci bot commented Nov 3, 2023

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

Latest deployment of this branch, based on commit 97266e9:

Sandbox Source
VKUI TypeScript Configuration
pensive-boyd-y48z99 Issue #6072

Copy link
Contributor

github-actions bot commented Nov 3, 2023

e2e tests

Playwright Report

Copy link
Contributor

github-actions bot commented Nov 3, 2023

👀 Docs deployed

Commit 97266e9

Copy link

codecov bot commented Nov 3, 2023

Codecov Report

Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (3a844db) 79.26% compared to head (97266e9) 79.34%.
Report is 2 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #6076      +/-   ##
==========================================
+ Coverage   79.26%   79.34%   +0.07%     
==========================================
  Files         306      306              
  Lines        9612     9620       +8     
  Branches     3254     3256       +2     
==========================================
+ Hits         7619     7633      +14     
+ Misses       1993     1987       -6     
Flag Coverage Δ
unittests 79.34% <93.33%> (+0.07%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files Coverage Δ
packages/vkui/src/components/Select/Select.tsx 78.57% <100.00%> (+1.64%) ⬆️
packages/vkui/src/lib/select.ts 89.65% <100.00%> (ø)
.../vkui/src/components/CustomSelect/CustomSelect.tsx 86.14% <88.88%> (-0.22%) ⬇️

... and 3 files with indirect coverage changes

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@mendrew mendrew marked this pull request as ready for review November 3, 2023 15:37
@mendrew mendrew requested a review from a team as a code owner November 3, 2023 15:37
Copy link
Contributor

@inomdzhon inomdzhon left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

master

ой, *main то есть

@mendrew mendrew merged commit 3704d98 into master Nov 7, 2023
46 checks passed
@mendrew mendrew deleted the mendrew/fix/6072/CustomSelect/allow-to-use-custom-option-in-render-option-function branch November 7, 2023 12:06
vkcom-publisher pushed a commit that referenced this pull request Nov 7, 2023
… prop (#6076)

Мы вроде бы позволяем использовать опции любых типов, которые бы имели у себя обязательные свойста Select,
https://github.com/VKCOM/VKUI/blob/3a844db48dea7a4d83d2b9020c2bf21ba18a3344/packages/vkui/src/components/CustomSelect/CustomSelect.tsx#L107-L112
но сейчас TS ругается если мы пытаемся использовать в `renderOption` опции со свойствами, которых нету в `CustomSelectOptionInterface`.

* Изменения
Добавили дженерик для типа опций с constraint, чтобы можно было использовать расширинный тип опции с обязательными полями.
Юнит-тест для проверки случаев использования CustomSelect с расширенными опциями. В основном, чтобы поймать ошибку типов.
vkcom-publisher pushed a commit that referenced this pull request Nov 7, 2023
… prop (#6076)

Мы вроде бы позволяем использовать опции любых типов, которые бы имели у себя обязательные свойста Select,
https://github.com/VKCOM/VKUI/blob/3a844db48dea7a4d83d2b9020c2bf21ba18a3344/packages/vkui/src/components/CustomSelect/CustomSelect.tsx#L107-L112
но сейчас TS ругается если мы пытаемся использовать в `renderOption` опции со свойствами, которых нету в `CustomSelectOptionInterface`.

* Изменения
Добавили дженерик для типа опций с constraint, чтобы можно было использовать расширинный тип опции с обязательными полями.
Юнит-тест для проверки случаев использования CustomSelect с расширенными опциями. В основном, чтобы поймать ошибку типов.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
patch Автоматизация: PR продублируется в ветку последнего минорного релиза для выпуска патча v5 Автоматизация: PR продублируется в ветку v5
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[Bug]: Ошибка при попытке расширить CustomSelectOptionInterface
3 participants