-
Notifications
You must be signed in to change notification settings - Fork 109
feat(select): add header to fullscreen select #148
feat(select): add header to fullscreen select #148
Conversation
Привет. Спасибо! Очень классная идея. Я бы только попросил по-другому построить интерфейс более гибко: завести у |
src/select/fantasy/select.css
Outdated
|
||
&__mobile-title { | ||
font-weight: var(--font-weight-medium); | ||
line-height: 1.4; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@teryaew здесь не переменная случаем?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@artptr плиз используй что-либо из двух вариантов line-height
в переменных. У заголовков как правило это -condensed
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Выбрал line-height-normal. Кажется, так смотрится более оптимально.
src/select/select.jsx
Outdated
<div | ||
className={ cn('mobile-header', { | ||
size: this.props.size, | ||
theme: this.props.theme |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Гым. А тему зачем пробрасывать?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Да, это теперь лишнее
icon='close' | ||
/> | ||
<div className={ cn('mobile-title') }> | ||
{ this.props.mobileTitle || this.props.placeholder } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Крутая идея!
src/select/select.jsx
Outdated
@@ -102,6 +102,8 @@ class Select extends React.Component { | |||
error: Type.node, | |||
/** Управление нативным режимом на мобильных устройствах **/ | |||
mobileMenuMode: Type.oneOf(['native', 'popup']), | |||
/** Подсказка над меню в мобильном режиме **/ | |||
mobileTitle: Type.string, |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Имхо node.
@artptr дизайн пунктов меню в попапе довольно сырой, хотя это по большей части относится ко всем спискам внутри селектов. Завёл отдельную задачу про это. Сейчас только предложил бы сразу |
@teryaew а вот про крестики как то непонятно. Размещать на мобилке контролы в левом углу - на мой взгляд издевательство. Этот угол просто недосягаем в принципе при нормальном использовании. Да и в большинстве мест крестик все таки справа |
К слову в режиме webview слева вверху по идее размещена кнопка возврата в нативное приложение. Получается неудобное соседство. |
@Heymdall |
А в какой мобильной ОС крестик слева? И десктопную macOS за образец брать нельзя, там есть мышка или тачпад, управление сильно отличается от тача. |
@artptr в любых из двух. Вопрос не про крестик, а про паттерн возврата назад по сути. Посмотри плиз примеры App Bar из Material или Navigation Bar в iOS HIG. |
@teryaew @Heymdall как насчет сейчас влить этот пулл. А вопрос про размещения крестика обсудить отдельно? |
Мотивация и контекст
В режиме mobileMenuMode='popup' стоит предусмотреть возможность отменить операцию выбора. Вдобавок можем показать пользователю поясняющий заголовок.