From 7dc22774532872fc99aa7768cf299ab623e9d155 Mon Sep 17 00:00:00 2001 From: tusooa Date: Mon, 9 Jan 2023 13:02:16 -0500 Subject: Use stylelint --- src/components/status/status.scss | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/components/status/status.scss') diff --git a/src/components/status/status.scss b/src/components/status/status.scss index ada9841e..44812867 100644 --- a/src/components/status/status.scss +++ b/src/components/status/status.scss @@ -1,4 +1,4 @@ -@import '../../_variables.scss'; +@import "../../variables"; .Status { min-width: 0; @@ -181,7 +181,7 @@ .reply-to-popover { .reply-to:hover::before { - content: ''; + content: ""; display: block; position: absolute; bottom: 0; @@ -197,7 +197,7 @@ &.-strikethrough { .reply-to::after { - content: ''; + content: ""; display: block; position: absolute; top: 50%; @@ -336,7 +336,7 @@ margin-left: 0.2em; &::before { - content: ' '; + content: " "; } } @@ -374,7 +374,7 @@ align-items: center; &::before { - content: ''; + content: ""; position: absolute; height: 100%; width: 1px; -- cgit v1.2.3-70-g09d2 From 1c2048749480800e2d44b3876378beee421a79ba Mon Sep 17 00:00:00 2001 From: tusooa Date: Wed, 12 Jul 2023 20:45:44 -0400 Subject: Implement showing quotes --- src/components/status/status.js | 3 +++ src/components/status/status.scss | 6 ++++++ src/components/status/status.vue | 9 +++++++++ src/modules/statuses.js | 4 ++++ src/services/entity_normalizer/entity_normalizer.service.js | 4 ++++ 5 files changed, 26 insertions(+) (limited to 'src/components/status/status.scss') diff --git a/src/components/status/status.js b/src/components/status/status.js index 9a9bca7a..c10c6cf5 100644 --- a/src/components/status/status.js +++ b/src/components/status/status.js @@ -401,6 +401,9 @@ const Status = { }, editingAvailable () { return this.$store.state.instance.editingAvailable + }, + quotedStatus () { + return this.status.quote_id ? this.$store.state.statuses.allStatusesObject[this.status.quote_id] : undefined } }, methods: { diff --git a/src/components/status/status.scss b/src/components/status/status.scss index 44812867..4dfd1f87 100644 --- a/src/components/status/status.scss +++ b/src/components/status/status.scss @@ -422,4 +422,10 @@ } } } + + .quoted-status { + margin-top: 0.5em; + border: 1px solid var(--border, $fallback--border); + border-radius: var(--attachmentRadius, $fallback--attachmentRadius); + } } diff --git a/src/components/status/status.vue b/src/components/status/status.vue index 35b15362..58fc0eca 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -364,6 +364,15 @@ @parseReady="setHeadTailLinks" /> +
+ +
+
{ output.thread_muted = pleroma.thread_muted output.emoji_reactions = pleroma.emoji_reactions output.parent_visible = pleroma.parent_visible === undefined ? true : pleroma.parent_visible + output.quote = pleroma.quote ? parseStatus(pleroma.quote) : undefined + output.quote_id = output.quote ? output.quote.id : undefined + output.quote_url = pleroma.quote_url + output.quote_visible = pleroma.quote_visible } else { output.text = data.content output.summary = data.spoiler_text -- cgit v1.2.3-70-g09d2 From d22079cf7392a1ef184d7c03ff7cb680e3e1c99c Mon Sep 17 00:00:00 2001 From: tusooa Date: Thu, 13 Jul 2023 00:37:57 -0400 Subject: Handle recursive quotes --- .../post_status_form/post_status_form.js | 2 +- src/components/status/status.js | 25 ++++++++++++++++- src/components/status/status.scss | 12 ++++++++ src/components/status/status.vue | 32 +++++++++++++++++++++- src/i18n/en.json | 5 +++- .../entity_normalizer/entity_normalizer.service.js | 2 +- 6 files changed, 73 insertions(+), 5 deletions(-) (limited to 'src/components/status/status.scss') diff --git a/src/components/post_status_form/post_status_form.js b/src/components/post_status_form/post_status_form.js index 73176132..17350998 100644 --- a/src/components/post_status_form/post_status_form.js +++ b/src/components/post_status_form/post_status_form.js @@ -281,7 +281,7 @@ const PostStatusForm = { repliedStatus.visibility === 'local') { return true } else if (repliedStatus.visibility === 'private') { - return repliedStatus.account.id === this.$store.state.users.currentUser.id + return repliedStatus.user.id === this.$store.state.users.currentUser.id } }, ...mapGetters(['mergedConfig']), diff --git a/src/components/status/status.js b/src/components/status/status.js index c10c6cf5..e722a635 100644 --- a/src/components/status/status.js +++ b/src/components/status/status.js @@ -133,6 +133,7 @@ const Status = { 'showPinned', 'inProfile', 'profileUserId', + 'inQuote', 'simpleTree', 'controlledThreadDisplayStatus', @@ -159,7 +160,8 @@ const Status = { uncontrolledMediaPlaying: [], suspendable: true, error: null, - headTailLinks: null + headTailLinks: null, + displayQuote: !this.inQuote } }, computed: { @@ -402,8 +404,17 @@ const Status = { editingAvailable () { return this.$store.state.instance.editingAvailable }, + hasVisibleQuote () { + return this.status.quote_url && this.status.quote_visible + }, + hasInvisibleQuote () { + return this.status.quote_url && !this.status.quote_visible + }, quotedStatus () { return this.status.quote_id ? this.$store.state.statuses.allStatusesObject[this.status.quote_id] : undefined + }, + shouldDisplayQuote () { + return this.quotedStatus && this.displayQuote } }, methods: { @@ -472,6 +483,18 @@ const Status = { window.scrollBy(0, rect.bottom - window.innerHeight + 50) } } + }, + toggleDisplayQuote () { + if (this.shouldDisplayQuote) { + this.displayQuote = false + } else if (!this.quotedStatus) { + this.$store.dispatch('fetchStatus', this.status.quote_id) + .then(() => { + this.displayQuote = true + }) + } else { + this.displayQuote = true + } } }, watch: { diff --git a/src/components/status/status.scss b/src/components/status/status.scss index 4dfd1f87..760c6ac1 100644 --- a/src/components/status/status.scss +++ b/src/components/status/status.scss @@ -427,5 +427,17 @@ margin-top: 0.5em; border: 1px solid var(--border, $fallback--border); border-radius: var(--attachmentRadius, $fallback--attachmentRadius); + + &.-unavailable-prompt { + padding: 0.5em; + } + } + + .display-quoted-status-button { + margin: 0.5em; + + &-icon { + color: inherit; + } } } diff --git a/src/components/status/status.vue b/src/components/status/status.vue index 58fc0eca..c49a9e7b 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -365,13 +365,43 @@ />
+
+

+ + + +

{ output.emoji_reactions = pleroma.emoji_reactions output.parent_visible = pleroma.parent_visible === undefined ? true : pleroma.parent_visible output.quote = pleroma.quote ? parseStatus(pleroma.quote) : undefined - output.quote_id = output.quote ? output.quote.id : undefined + output.quote_id = pleroma.quote_id ? pleroma.quote_id : (output.quote ? output.quote.id : undefined) output.quote_url = pleroma.quote_url output.quote_visible = pleroma.quote_visible } else { -- cgit v1.2.3-70-g09d2