Move composer buttons to top (#35749)
Some checks are pending
Check i18n / check-i18n (push) Waiting to run
Chromatic / Run Chromatic (push) Waiting to run
CodeQL / Analyze (javascript) (push) Waiting to run
CodeQL / Analyze (ruby) (push) Waiting to run
Check formatting / lint (push) Waiting to run
CSS Linting / lint (push) Waiting to run
JavaScript Linting / lint (push) Waiting to run
Ruby Linting / lint (push) Waiting to run
JavaScript Testing / test (push) Waiting to run
Historical data migration test / test (14-alpine) (push) Waiting to run
Historical data migration test / test (15-alpine) (push) Waiting to run
Historical data migration test / test (16-alpine) (push) Waiting to run
Historical data migration test / test (17-alpine) (push) Waiting to run
Ruby Testing / build (production) (push) Waiting to run
Ruby Testing / build (test) (push) Waiting to run
Ruby Testing / test (.ruby-version) (push) Blocked by required conditions
Ruby Testing / test (3.2) (push) Blocked by required conditions
Ruby Testing / test (3.3) (push) Blocked by required conditions
Ruby Testing / ImageMagick tests (.ruby-version) (push) Blocked by required conditions
Ruby Testing / ImageMagick tests (3.2) (push) Blocked by required conditions
Ruby Testing / ImageMagick tests (3.3) (push) Blocked by required conditions
Ruby Testing / End to End testing (.ruby-version) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.2) (push) Blocked by required conditions
Ruby Testing / End to End testing (3.3) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, docker.elastic.co/elasticsearch/elasticsearch:8.10.2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (.ruby-version, opensearchproject/opensearch:2) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.2, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions
Ruby Testing / Elastic Search integration testing (3.3, docker.elastic.co/elasticsearch/elasticsearch:7.17.13) (push) Blocked by required conditions

This commit is contained in:
Echo 2025-08-13 16:09:45 +02:00 committed by GitHub
parent 7cf53dbf63
commit 49a6e4cbb5
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 50 additions and 53 deletions

View File

@ -256,62 +256,60 @@ class ComposeForm extends ImmutablePureComponent {
<Warning /> <Warning />
<div className={classNames('compose-form__highlightable', { active: highlighted })} ref={this.setRef}> <div className={classNames('compose-form__highlightable', { active: highlighted })} ref={this.setRef}>
<div className='compose-form__scrollable'> <EditIndicator />
<EditIndicator />
{this.props.spoiler && ( {this.props.spoiler && (
<div className='spoiler-input'> <div className='spoiler-input'>
<div className='spoiler-input__border' /> <div className='spoiler-input__border' />
<AutosuggestInput <AutosuggestInput
placeholder={intl.formatMessage(messages.spoiler_placeholder)} placeholder={intl.formatMessage(messages.spoiler_placeholder)}
value={this.props.spoilerText} value={this.props.spoilerText}
disabled={isSubmitting} disabled={isSubmitting}
onChange={this.handleChangeSpoilerText} onChange={this.handleChangeSpoilerText}
onKeyDown={this.handleKeyDownSpoiler} onKeyDown={this.handleKeyDownSpoiler}
ref={this.setSpoilerText} ref={this.setSpoilerText}
suggestions={this.props.suggestions} suggestions={this.props.suggestions}
onSuggestionsFetchRequested={this.onSuggestionsFetchRequested} onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}
onSuggestionsClearRequested={this.onSuggestionsClearRequested} onSuggestionsClearRequested={this.onSuggestionsClearRequested}
onSuggestionSelected={this.onSpoilerSuggestionSelected} onSuggestionSelected={this.onSpoilerSuggestionSelected}
searchTokens={[':']} searchTokens={[':']}
id='cw-spoiler-input' id='cw-spoiler-input'
className='spoiler-input__input' className='spoiler-input__input'
lang={this.props.lang} lang={this.props.lang}
spellCheck spellCheck
/> />
<div className='spoiler-input__border' /> <div className='spoiler-input__border' />
</div> </div>
)} )}
<AutosuggestTextarea <div className='compose-form__dropdowns'>
ref={this.textareaRef} <PrivacyDropdownContainer disabled={this.props.isEditing} />
placeholder={intl.formatMessage(messages.placeholder)} <LanguageDropdown />
disabled={isSubmitting}
value={this.props.text}
onChange={this.handleChange}
suggestions={this.props.suggestions}
onFocus={this.handleFocus}
onKeyDown={this.handleKeyDownPost}
onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}
onSuggestionsClearRequested={this.onSuggestionsClearRequested}
onSuggestionSelected={this.onSuggestionSelected}
onPaste={onPaste}
autoFocus={autoFocus}
lang={this.props.lang}
/>
</div> </div>
<AutosuggestTextarea
ref={this.textareaRef}
placeholder={intl.formatMessage(messages.placeholder)}
disabled={isSubmitting}
value={this.props.text}
onChange={this.handleChange}
suggestions={this.props.suggestions}
onFocus={this.handleFocus}
onKeyDown={this.handleKeyDownPost}
onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}
onSuggestionsClearRequested={this.onSuggestionsClearRequested}
onSuggestionSelected={this.onSuggestionSelected}
onPaste={onPaste}
autoFocus={autoFocus}
lang={this.props.lang}
/>
<UploadForm /> <UploadForm />
<PollForm /> <PollForm />
<div className='compose-form__footer'> <div className='compose-form__footer'>
<div className='compose-form__dropdowns'>
<PrivacyDropdownContainer disabled={this.props.isEditing} />
<LanguageDropdown />
</div>
<div className='compose-form__actions'> <div className='compose-form__actions'>
<div className='compose-form__buttons'> <div className='compose-form__buttons'>
<UploadButtonContainer /> <UploadButtonContainer />

View File

@ -396,7 +396,7 @@ export const LanguageDropdown: React.FC = () => {
warning: guess !== '' && guess !== value, warning: guess !== '' && guess !== value,
})} })}
> >
<Icon id='' icon={TranslateIcon} /> <Icon id='translate' icon={TranslateIcon} />
<span className='dropdown-button__label'>{current[2] ?? value}</span> <span className='dropdown-button__label'>{current[2] ?? value}</span>
</button> </button>

View File

@ -602,15 +602,12 @@ body > [data-popper-placement] {
&__highlightable { &__highlightable {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 16px;
flex: 0 1 auto; flex: 0 1 auto;
border-radius: 4px; border-radius: 4px;
border: 1px solid var(--background-border-color); border: 1px solid var(--background-border-color);
transition: border-color 300ms linear; transition: border-color 300ms linear;
min-height: 0;
position: relative; position: relative;
background: var(--input-background-color); background: var(--input-background-color);
overflow-y: auto;
&.active { &.active {
transition: none; transition: none;
@ -705,6 +702,8 @@ body > [data-popper-placement] {
display: flex; display: flex;
align-items: center; align-items: center;
gap: 8px; gap: 8px;
margin: 8px;
flex-wrap: wrap;
& > div { & > div {
overflow: hidden; overflow: hidden;
@ -715,6 +714,7 @@ body > [data-popper-placement] {
&__uploads { &__uploads {
padding: 0 12px; padding: 0 12px;
aspect-ratio: 3/2; aspect-ratio: 3/2;
flex-shrink: 0;
} }
.media-gallery { .media-gallery {
@ -813,7 +813,6 @@ body > [data-popper-placement] {
flex-direction: column; flex-direction: column;
gap: 12px; gap: 12px;
padding: 12px; padding: 12px;
padding-top: 0;
} }
&__submit { &__submit {
@ -874,6 +873,7 @@ body > [data-popper-placement] {
} }
&__poll { &__poll {
margin-top: 8px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-self: stretch; align-self: stretch;
@ -3518,11 +3518,10 @@ a.account__display-name {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: calc(100% - 10px); height: calc(100% - 10px);
overflow-y: hidden; overflow-y: auto;
.compose-form { .compose-form {
flex: 1 1 auto; flex: 1 1 auto;
min-height: 0;
} }
} }