Skip to content

Commit 08bfcaa

Browse files
committed
fix(Calendar): nowrap for select
1 parent 6882168 commit 08bfcaa

File tree

3 files changed

+18
-1
lines changed

3 files changed

+18
-1
lines changed

packages/vkui/src/components/CalendarTime/CalendarTimePicker.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { type ChangeEvent, useState } from 'react';
44
import * as React from 'react';
55
import { AdaptivityProvider } from '../AdaptivityProvider/AdaptivityProvider';
66
import { CustomSelect, type SelectProps } from '../CustomSelect/CustomSelect';
7+
import { CustomSelectOption } from '../CustomSelectOption/CustomSelectOption';
78
import styles from './CalendarTime.module.css';
89

910
const selectFilterFn = () => true;
@@ -78,6 +79,11 @@ export const CalendarTimePicker = ({
7879
filterFn={selectFilterFn}
7980
onInputChange={onPickerValueChange}
8081
onInputKeyDown={onInputKeyDown}
82+
renderOption={({ children: optionChildren, ...optionProps }) => (
83+
<CustomSelectOption {...optionProps} textNoWrap>
84+
{optionChildren}
85+
</CustomSelectOption>
86+
)}
8187
slotProps={{
8288
input: {
8389
'aria-label': inputLabel,

packages/vkui/src/components/CustomSelectOption/CustomSelectOption.module.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@
5555
word-break: break-word;
5656
}
5757

58+
.textNoWrap {
59+
white-space: nowrap;
60+
}
61+
5862
.after {
5963
display: flex;
6064
flex-shrink: 0;

packages/vkui/src/components/CustomSelectOption/CustomSelectOption.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ export interface CustomSelectOptionProps extends HTMLAttributesWithRootRef<HTMLD
5555
* опции.
5656
*/
5757
disabled?: boolean;
58+
/**
59+
* Предотвращает перенос текста внутри опции.
60+
*/
61+
textNoWrap?: boolean;
5862
}
5963

6064
/**
@@ -69,6 +73,7 @@ export const CustomSelectOption = ({
6973
after,
7074
description,
7175
disabled,
76+
textNoWrap,
7277
style: styleProp,
7378
className,
7479
onClick,
@@ -107,7 +112,9 @@ export const CustomSelectOption = ({
107112
>
108113
{hasReactNode(before) && <div className={styles.before}>{before}</div>}
109114
<div className={styles.main}>
110-
<div className={styles.children}>{children}</div>
115+
<div className={classNames(styles.children, textNoWrap && styles.textNoWrap)}>
116+
{children}
117+
</div>
111118
{hasReactNode(description) && (
112119
<Footnote className={styles.description}>
113120
<VisuallyHidden>&nbsp;</VisuallyHidden>

0 commit comments

Comments
 (0)