From 61f34ff361a24a287ac0bf0c79fd2f77b4f2b708 Mon Sep 17 00:00:00 2001 From: Shpuld Shpuldson <shp@cock.li> Date: Sun, 28 Jun 2020 16:40:39 +0300 Subject: [PATCH] remove panel-footer in userpanel, simplify preview header, fix word-wrap in preview --- .../post_status_form/post_status_form.js | 17 +++-- .../post_status_form/post_status_form.vue | 74 +++++++++---------- src/components/status/status.vue | 3 - .../status_content/status_content.vue | 3 + src/components/user_panel/user_panel.vue | 4 +- src/i18n/en.json | 1 - 6 files changed, 51 insertions(+), 51 deletions(-) diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index bb5dbf97..732691e7 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -235,13 +235,13 @@ const PostStatusForm = { this.posting = false }) }, - previewStatus (newStatus) { + previewStatus () { if (this.emptyStatus) { this.preview = { error: this.$t('status.preview_empty') } this.previewLoading = false return } - + const newStatus = this.newStatus this.previewLoading = true statusPoster.postStatus({ status: newStatus.status, @@ -269,18 +269,23 @@ const PostStatusForm = { this.previewLoading = false }) }, - debouncePreviewStatus: debounce(function (newStatus) { - this.previewStatus(newStatus) - }, 750), + debouncePreviewStatus: debounce(function () { this.previewStatus() }, 750), autoPreview () { if (!this.preview) return this.previewLoading = true - this.debouncePreviewStatus(this.newStatus) + this.debouncePreviewStatus() }, closePreview () { this.preview = null this.previewLoading = false }, + togglePreview () { + if (this.showPreview) { + this.closePreview() + } else { + this.previewStatus() + } + }, addMediaFile (fileInfo) { this.newStatus.files.push(fileInfo) }, diff --git a/src/components/post_status_form/post_status_form.vue b/src/components/post_status_form/post_status_form.vue index 8201911e..0cebd36e 100644 --- a/src/components/post_status_form/post_status_form.vue +++ b/src/components/post_status_form/post_status_form.vue @@ -16,30 +16,26 @@ @drop.stop="fileDrop" /> <div class="form-group"> - <a - v-if="!showPreview" - class="preview-start" - @click.stop.prevent="previewStatus(newStatus)" - > - {{ $t('status.preview') }} - </a> + <div class="preview-heading faint"> + <a + class="preview-toggle faint" + @click.stop.prevent="togglePreview" + > + {{ $t('status.preview') }} + <i + class="icon-down-open" + :style="{ transform: showPreview ? 'rotate(0deg)' : 'rotate(-90deg)' }" + /> + </a> + <i + v-show="previewLoading" + class="icon-spin3 animate-spin" + /> + </div> <div - v-else + v-if="showPreview" class="preview-container" > - <span class="preview-heading"> - <span class="preview-title"> - {{ $t('status.status_preview') }} - </span> - <i - v-if="previewLoading" - class="icon-spin3 animate-spin" - /> - <i - class="preview-close icon-cancel" - @click.stop.prevent="closePreview" - /> - </span> <div v-if="!preview" class="preview-status" @@ -369,30 +365,32 @@ max-width: 10em; } - .preview-start { - margin-left: auto; + .preview-heading { + display: flex; + width: 100%; + + .icon-spin3 { + margin-left: auto; + } + } + + .preview-toggle { + display: flex; cursor: pointer; + + &:hover { + text-decoration: underline; + } + } + + .icon-down-open { + transition: transform 0.1s; } .preview-container { margin-bottom: 1em; } - .preview-heading { - display: flex; - width: 100%; - color: $fallback--faint; - color: var(--faint, $fallback--faint); - } - - .preview-title { - flex-grow: 1; - } - - .preview-close { - padding-left: 0.5em; - } - .preview-error { font-style: italic; color: $fallback--faint; diff --git a/src/components/status/status.vue b/src/components/status/status.vue index 7ec29b28..1c36d883 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -372,9 +372,6 @@ $status-margin: 0.75em; } .status-el { - overflow-wrap: break-word; - word-wrap: break-word; - word-break: break-word; border-left-width: 0px; min-width: 0; border-color: $fallback--border; diff --git a/src/components/status_content/status_content.vue b/src/components/status_content/status_content.vue index efc2485e..373802af 100644 --- a/src/components/status_content/status_content.vue +++ b/src/components/status_content/status_content.vue @@ -180,6 +180,9 @@ $status-margin: 0.75em; font-family: var(--postFont, sans-serif); line-height: 1.4em; white-space: pre-wrap; + overflow-wrap: break-word; + word-wrap: break-word; + word-break: break-word; blockquote { margin: 0.2em 0 0.2em 2em; diff --git a/src/components/user_panel/user_panel.vue b/src/components/user_panel/user_panel.vue index 1db4f648..5685916a 100644 --- a/src/components/user_panel/user_panel.vue +++ b/src/components/user_panel/user_panel.vue @@ -10,9 +10,7 @@ :hide-bio="true" rounded="top" /> - <div class="panel-footer"> - <PostStatusForm /> - </div> + <PostStatusForm /> </div> <auth-form v-else diff --git a/src/i18n/en.json b/src/i18n/en.json index 44afb59c..21df3e73 100644 --- a/src/i18n/en.json +++ b/src/i18n/en.json @@ -638,7 +638,6 @@ "thread_muted": "Thread muted", "thread_muted_and_words": ", has words:", "preview": "Preview", - "status_preview": "Status preview", "preview_empty": "Empty" }, "user_card": {