UX: when composer is minimized, let user open composer in regular size instead of full screen

This commit is contained in:
Penar Musaraj
2018-12-07 17:45:13 -05:00
parent ccd80a8b14
commit 67450ba402
4 changed files with 51 additions and 4 deletions

View File

@@ -12,7 +12,9 @@ export default Ember.Component.extend({
@computed("composeState") @computed("composeState")
fullscreenTitle(composeState) { fullscreenTitle(composeState) {
return composeState === "fullscreen" return composeState === "draft"
? "composer.open"
: composeState === "fullscreen"
? "composer.exit_fullscreen" ? "composer.exit_fullscreen"
: "composer.enter_fullscreen"; : "composer.enter_fullscreen";
}, },
@@ -26,7 +28,9 @@ export default Ember.Component.extend({
@computed("composeState") @computed("composeState")
fullscreenIcon(composeState) { fullscreenIcon(composeState) {
return composeState === "fullscreen" return composeState === "draft"
? "chevron-up"
: composeState === "fullscreen"
? "discourse-compress" ? "discourse-compress"
: "discourse-expand"; : "discourse-expand";
} }

View File

@@ -179,7 +179,7 @@
</div> </div>
</div> </div>
{{else}} {{else}}
<div class='saving-text'> <div class='saving-text'>
{{#if model.createdPost}} {{#if model.createdPost}}
{{i18n 'composer.saved'}} <a class='permalink' href="{{unbound createdPost.url}}" {{action "viewNewReply"}}>{{i18n 'composer.view_new_post'}}</a> {{i18n 'composer.saved'}} <a class='permalink' href="{{unbound createdPost.url}}" {{action "viewNewReply"}}>{{i18n 'composer.view_new_post'}}</a>
@@ -197,7 +197,7 @@
</div> </div>
{{composer-toggles composeState=model.composeState {{composer-toggles composeState=model.composeState
toggleFullscreen=(action "fullscreenComposer") toggleFullscreen=(action "openIfDraft")
toggleComposer=(action "toggle") toggleComposer=(action "toggle")
toggleToolbar=(action "toggleToolbar")}} toggleToolbar=(action "toggleToolbar")}}

View File

@@ -1437,6 +1437,7 @@ en:
toggle_direction: "Toggle Direction" toggle_direction: "Toggle Direction"
help: "Markdown Editing Help" help: "Markdown Editing Help"
collapse: "minimize the composer panel" collapse: "minimize the composer panel"
open: "open the composer panel"
abandon: "close composer and discard draft" abandon: "close composer and discard draft"
enter_fullscreen: "enter fullscreen composer" enter_fullscreen: "enter fullscreen composer"
exit_fullscreen: "exit fullscreen composer" exit_fullscreen: "exit fullscreen composer"

View File

@@ -398,6 +398,48 @@ QUnit.test("Composer can toggle whispers", async assert => {
); );
}); });
QUnit.test(
"Composer can toggle layouts (open, fullscreen and draft)",
async assert => {
await visit("/t/this-is-a-test-topic/9");
await click(".topic-post:eq(0) button.reply");
assert.ok(
find("#reply-control.open").length === 1,
"it starts in open state by default"
);
await click(".toggle-fullscreen");
assert.ok(
find("#reply-control.fullscreen").length === 1,
"it expands composer to full screen"
);
await click(".toggle-fullscreen");
assert.ok(
find("#reply-control.open").length === 1,
"it collapses composer to regular size"
);
await fillIn(".d-editor-input", "This is a dirty reply");
await click(".toggler");
assert.ok(
find("#reply-control.draft").length === 1,
"it collapses composer to draft bar"
);
await click(".toggle-fullscreen");
assert.ok(
find("#reply-control.open").length === 1,
"from draft, it expands composer back to open state"
);
}
);
QUnit.test( QUnit.test(
"Composer can toggle between reply and createTopic", "Composer can toggle between reply and createTopic",
async assert => { async assert => {