forked from AkkomaGang/akkoma-fe
Merge branch 'develop' of https://akkoma.dev/AkkomaGang/pleroma-fe into develop
This commit is contained in:
commit
a859b02674
|
@ -6,7 +6,11 @@ This is a fork of Pleroma-FE from the Pleroma project, with support for new Akko
|
|||
|
||||
# For Translators
|
||||
|
||||
To translate Pleroma-FE, add your language to [src/i18n/messages.js](https://akkoma.dev/AkkomaGang/pleroma-fe/src/branch/develop/src/i18n/messages.js). Pleroma-FE will set your language by your browser locale, but you can temporarily force it in the code by changing the locale in main.js.
|
||||
The [Weblate UI](https://translate.akkoma.dev/projects/akkoma/pleroma-fe/) is recommended for adding or modifying translations for Pleroma-FE.
|
||||
|
||||
Alternatively, edit/create `src/i18n/$LANGUAGE_CODE.json` (where `$LANGUAGE_CODE` is the [ISO 639-1 code](https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes) for your language), then add your language to [src/i18n/messages.js](https://akkoma.dev/AkkomaGang/pleroma-fe/src/branch/develop/src/i18n/messages.js) if it doesn't already exist there.
|
||||
|
||||
Pleroma-FE will set your language by your browser locale, but you can temporarily force it in the code by changing the locale in main.js.
|
||||
|
||||
# FOR ADMINS
|
||||
|
||||
|
|
|
@ -34,8 +34,7 @@
|
|||
"js-cookie": "^3.0.1",
|
||||
"localforage": "1.10.0",
|
||||
"marked": "^4.0.17",
|
||||
"marked-mfm": "^0.4.0",
|
||||
"mfm-js": "^0.22.1",
|
||||
"marked-mfm": "^0.5.0",
|
||||
"parse-link-header": "1.0.1",
|
||||
"phoenix": "1.6.2",
|
||||
"punycode.js": "2.1.0",
|
||||
|
|
|
@ -2,7 +2,8 @@
|
|||
|
||||
.notification-reaction-emoji {
|
||||
width: 40px;
|
||||
display: flex;
|
||||
display: inline-flex;
|
||||
vertical-align: middle;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
|
|
|
@ -84,7 +84,7 @@
|
|||
:key="unit"
|
||||
:value="unit"
|
||||
>
|
||||
{{ $t(`time.unit.${unit}_short`, ['']) }}
|
||||
{{ $tc(`time.unit.${unit}_short`, expiryAmount, ['']) }}
|
||||
</option>
|
||||
</Select>
|
||||
</div>
|
||||
|
|
|
@ -56,6 +56,7 @@ const pxStringToNumber = (str) => {
|
|||
const PostStatusForm = {
|
||||
props: [
|
||||
'replyTo',
|
||||
'quoteId',
|
||||
'repliedUser',
|
||||
'attentions',
|
||||
'copyMessageScope',
|
||||
|
@ -99,12 +100,12 @@ const PostStatusForm = {
|
|||
this.updateIdempotencyKey()
|
||||
this.resize(this.$refs.textarea)
|
||||
|
||||
if (this.replyTo) {
|
||||
if (this.replyTo || this.quoteId) {
|
||||
const textLength = this.$refs.textarea.value.length
|
||||
this.$refs.textarea.setSelectionRange(textLength, textLength)
|
||||
}
|
||||
|
||||
if (this.replyTo || this.autoFocus) {
|
||||
if (this.replyTo || this.quoteId || this.autoFocus) {
|
||||
this.$refs.textarea.focus()
|
||||
}
|
||||
},
|
||||
|
@ -112,7 +113,7 @@ const PostStatusForm = {
|
|||
const preset = this.$route.query.message
|
||||
let statusText = preset || ''
|
||||
|
||||
if (this.replyTo) {
|
||||
if (this.replyTo || this.quoteId) {
|
||||
const currentUser = this.$store.state.users.currentUser
|
||||
statusText = buildMentionsString({ user: this.repliedUser, attentions: this.attentions }, currentUser)
|
||||
}
|
||||
|
@ -314,6 +315,7 @@ const PostStatusForm = {
|
|||
media: newStatus.files,
|
||||
store: this.$store,
|
||||
inReplyToStatusId: this.replyTo,
|
||||
quoteId: this.quoteId,
|
||||
contentType: newStatus.contentType,
|
||||
poll,
|
||||
idempotencyKey: this.idempotencyKey
|
||||
|
@ -347,6 +349,7 @@ const PostStatusForm = {
|
|||
media: [],
|
||||
store: this.$store,
|
||||
inReplyToStatusId: this.replyTo,
|
||||
quoteId: this.quoteId,
|
||||
contentType: newStatus.contentType,
|
||||
poll: {},
|
||||
preview: true
|
||||
|
|
16
src/components/quote_button/quote_button.js
Normal file
16
src/components/quote_button/quote_button.js
Normal file
|
@ -0,0 +1,16 @@
|
|||
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||
import { faQuoteLeft } from '@fortawesome/free-solid-svg-icons'
|
||||
|
||||
library.add(faQuoteLeft)
|
||||
|
||||
const QuoteButton = {
|
||||
name: 'QuoteButton',
|
||||
props: ['status', 'quoting', 'visibility'],
|
||||
computed: {
|
||||
loggedIn () {
|
||||
return !!this.$store.state.users.currentUser
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default QuoteButton
|
47
src/components/quote_button/quote_button.vue
Normal file
47
src/components/quote_button/quote_button.vue
Normal file
|
@ -0,0 +1,47 @@
|
|||
<template>
|
||||
<div
|
||||
v-if="(visibility === 'public' || visibility === 'unlisted') && loggedIn"
|
||||
class="QuoteButton"
|
||||
>
|
||||
<button
|
||||
class="button-unstyled interactive"
|
||||
:class="{'-active': quoting}"
|
||||
:title="$t('tool_tip.quote')"
|
||||
@click.prevent="$emit('toggle')"
|
||||
>
|
||||
<FAIcon
|
||||
class="fa-scale-110 fa-old-padding"
|
||||
icon="quote-left"
|
||||
/>
|
||||
</button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script src="./quote_button.js"></script>
|
||||
|
||||
<style lang="scss">
|
||||
@import '../../_variables.scss';
|
||||
|
||||
.QuoteButton {
|
||||
display: flex;
|
||||
|
||||
> :first-child {
|
||||
padding: 10px;
|
||||
margin: -10px -8px -10px -10px;
|
||||
}
|
||||
|
||||
.action-counter {
|
||||
pointer-events: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
.interactive {
|
||||
&:hover .svg-inline--fa,
|
||||
&.-active .svg-inline--fa {
|
||||
color: $fallback--cBlue;
|
||||
color: var(--cBlue, $fallback--cBlue);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
24
src/components/quote_card/quote_card.js
Normal file
24
src/components/quote_card/quote_card.js
Normal file
|
@ -0,0 +1,24 @@
|
|||
import { mapGetters } from 'vuex'
|
||||
import QuoteCardContent from '../quote_card_content/quote_card_content.vue'
|
||||
|
||||
const QuoteCard = {
|
||||
name: 'QuoteCard',
|
||||
props: [
|
||||
'status'
|
||||
],
|
||||
data () {
|
||||
return {
|
||||
imageLoaded: false
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
...mapGetters([
|
||||
'mergedConfig'
|
||||
])
|
||||
},
|
||||
components: {
|
||||
QuoteCardContent
|
||||
}
|
||||
}
|
||||
|
||||
export default QuoteCard
|
74
src/components/quote_card/quote_card.vue
Normal file
74
src/components/quote_card/quote_card.vue
Normal file
|
@ -0,0 +1,74 @@
|
|||
<template>
|
||||
<div>
|
||||
<router-link
|
||||
class="quote-card"
|
||||
:to="{ name: 'conversation', params: { id: status.id } }"
|
||||
>
|
||||
<QuoteCardContent
|
||||
:status="status"
|
||||
/>
|
||||
</router-link>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script src="./quote_card"></script>
|
||||
|
||||
<style lang="scss">
|
||||
@import '../../_variables.scss';
|
||||
|
||||
.quote-card {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
cursor: pointer;
|
||||
overflow: hidden;
|
||||
margin-top: 0.5em;
|
||||
|
||||
.card-image {
|
||||
flex-shrink: 0;
|
||||
width: 120px;
|
||||
max-width: 25%;
|
||||
img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: cover;
|
||||
border-radius: $fallback--attachmentRadius;
|
||||
border-radius: var(--attachmentRadius, $fallback--attachmentRadius);
|
||||
}
|
||||
}
|
||||
|
||||
.card-content {
|
||||
max-height: 100%;
|
||||
margin: 0.5em;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.card-host {
|
||||
font-size: 0.85em;
|
||||
}
|
||||
|
||||
.card-description {
|
||||
margin: 0.5em 0 0 0;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
word-break: break-word;
|
||||
line-height: 1.2em;
|
||||
// cap description at 3 lines, the 1px is to clean up some stray pixels
|
||||
// TODO: fancier fade-out at the bottom to show off that it's too long?
|
||||
max-height: calc(1.2em * 3 - 1px);
|
||||
}
|
||||
|
||||
.nsfw-alert {
|
||||
margin: 2em 0;
|
||||
}
|
||||
|
||||
color: $fallback--text;
|
||||
color: var(--text, $fallback--text);
|
||||
border-style: solid;
|
||||
border-width: 1px;
|
||||
border-radius: $fallback--attachmentRadius;
|
||||
border-radius: var(--attachmentRadius, $fallback--attachmentRadius);
|
||||
border-color: $fallback--border;
|
||||
border-color: var(--border, $fallback--border);
|
||||
}
|
||||
</style>
|
22
src/components/quote_card_content/quote_card_content.vue
Normal file
22
src/components/quote_card_content/quote_card_content.vue
Normal file
|
@ -0,0 +1,22 @@
|
|||
<template>
|
||||
<Status
|
||||
v-if="status"
|
||||
:is-preview="true"
|
||||
:statusoid="status"
|
||||
:compact="true"
|
||||
/>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { defineAsyncComponent } from 'vue'
|
||||
|
||||
export default {
|
||||
name: 'QuoteCardContent',
|
||||
components: {
|
||||
Status: defineAsyncComponent(() => import('../status/status.vue'))
|
||||
},
|
||||
props: [
|
||||
'status'
|
||||
]
|
||||
}
|
||||
</script>
|
|
@ -37,6 +37,15 @@
|
|||
{{ $t('settings.hide_muted_posts') }}
|
||||
</BooleanSetting>
|
||||
</li>
|
||||
<li>
|
||||
<BooleanSetting
|
||||
v-if="user"
|
||||
:disabled="hideFilteredStatuses"
|
||||
path="hideThreadsWithBlockedUsers"
|
||||
>
|
||||
{{ $t('settings.hide_threads_with_blocked_users') }}
|
||||
</BooleanSetting>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
import { extractCommit } from 'src/services/version/version.service'
|
||||
|
||||
const pleromaFeCommitUrl = 'https://akkoma.dev/AkkomaGang/pleroma-fe/commit/'
|
||||
const pleromaBeCommitUrl = 'https://akkoma.dev/AkkomaGang/akkoma/commits/'
|
||||
const pleromaBeCommitUrl = 'https://akkoma.dev/AkkomaGang/akkoma/commit/'
|
||||
|
||||
const VersionTab = {
|
||||
data () {
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
import ReplyButton from '../reply_button/reply_button.vue'
|
||||
import QuoteButton from '../quote_button/quote_button.vue'
|
||||
import FavoriteButton from '../favorite_button/favorite_button.vue'
|
||||
import ReactButton from '../react_button/react_button.vue'
|
||||
import RetweetButton from '../retweet_button/retweet_button.vue'
|
||||
|
@ -115,7 +116,8 @@ const Status = {
|
|||
StatusContent,
|
||||
RichContent,
|
||||
MentionLink,
|
||||
MentionsLine
|
||||
MentionsLine,
|
||||
QuoteButton
|
||||
},
|
||||
props: [
|
||||
'statusoid',
|
||||
|
@ -145,6 +147,8 @@ const Status = {
|
|||
'controlledToggleShowingLongSubject',
|
||||
'controlledReplying',
|
||||
'controlledToggleReplying',
|
||||
'controlledQuoting',
|
||||
'controlledToggleQuoting',
|
||||
'controlledMediaPlaying',
|
||||
'controlledSetMediaPlaying',
|
||||
'dive'
|
||||
|
@ -152,6 +156,7 @@ const Status = {
|
|||
data () {
|
||||
return {
|
||||
uncontrolledReplying: false,
|
||||
uncontrolledQuoting: false,
|
||||
unmuted: false,
|
||||
userExpanded: false,
|
||||
uncontrolledMediaPlaying: [],
|
||||
|
@ -161,7 +166,7 @@ const Status = {
|
|||
}
|
||||
},
|
||||
computed: {
|
||||
...controlledOrUncontrolledGetters(['replying', 'mediaPlaying']),
|
||||
...controlledOrUncontrolledGetters(['replying', 'quoting', 'mediaPlaying']),
|
||||
muteWords () {
|
||||
return this.mergedConfig.muteWords
|
||||
},
|
||||
|
@ -256,6 +261,38 @@ const Status = {
|
|||
hasMentionsLine () {
|
||||
return this.mentionsLine.length > 0
|
||||
},
|
||||
mentionsBlockedUser () {
|
||||
// XXX: doesn't work on domain blocks, because users from blocked domains
|
||||
// don't appear in `attentions' and therefore cannot be filtered.
|
||||
let mentions = false
|
||||
|
||||
// find if user in mentions list is blocked
|
||||
this.status.attentions.forEach((attn) => {
|
||||
if (attn.id === this.currentUser.id) return
|
||||
const relationship = this.$store.getters.relationship(attn.id)
|
||||
if (relationship.blocking) {
|
||||
mentions = true
|
||||
}
|
||||
})
|
||||
|
||||
return mentions
|
||||
},
|
||||
mentionsMutedUser () {
|
||||
// XXX: doesn't work on domain blocks, because users from blocked domains
|
||||
// don't appear in `attentions' and therefore cannot be filtered.
|
||||
let mentions = false
|
||||
|
||||
// find if user in mentions list is blocked
|
||||
this.status.attentions.forEach((attn) => {
|
||||
if (attn.id === this.currentUser.id) return
|
||||
const relationship = this.$store.getters.relationship(attn.id)
|
||||
if (relationship.muting) {
|
||||
mentions = true
|
||||
}
|
||||
})
|
||||
|
||||
return mentions
|
||||
},
|
||||
muted () {
|
||||
if (this.statusoid.user.id === this.currentUser.id) return false
|
||||
const reasonsToMute = this.userIsMuted ||
|
||||
|
@ -264,7 +301,11 @@ const Status = {
|
|||
// Wordfiltered
|
||||
this.muteWordHits.length > 0 ||
|
||||
// bot status
|
||||
(this.muteBotStatuses && this.botStatus && !this.compact)
|
||||
(this.muteBotStatuses && this.botStatus && !this.compact) ||
|
||||
// mentions blocked user
|
||||
this.mentionsBlockedUser ||
|
||||
// mentions muted user
|
||||
this.mentionsMutedUser
|
||||
return !this.unmuted && !this.shouldNotMute && reasonsToMute
|
||||
},
|
||||
userIsMuted () {
|
||||
|
@ -307,6 +348,9 @@ const Status = {
|
|||
hideFilteredStatuses () {
|
||||
return this.mergedConfig.hideFilteredStatuses
|
||||
},
|
||||
hideThreadsWithBlockedUsers () {
|
||||
return this.mergedConfig.hideThreadsWithBlockedUsers
|
||||
},
|
||||
hideWordFilteredPosts () {
|
||||
return this.mergedConfig.hideWordFilteredPosts
|
||||
},
|
||||
|
@ -314,8 +358,9 @@ const Status = {
|
|||
return (!this.shouldNotMute) && (
|
||||
(this.muted && this.hideFilteredStatuses) ||
|
||||
(this.userIsMuted && this.hideMutedUsers) ||
|
||||
(this.status.thread_muted && this.hideMutedThreads) ||
|
||||
(this.muteWordHits.length > 0 && this.hideWordFilteredPosts)
|
||||
((this.status.thread_muted || this.mentionsMutedUser) && this.hideMutedThreads) ||
|
||||
(this.muteWordHits.length > 0 && this.hideWordFilteredPosts) ||
|
||||
(this.mentionsBlockedUser && this.hideThreadsWithBlockedUsers)
|
||||
)
|
||||
},
|
||||
isFocused () {
|
||||
|
@ -418,6 +463,9 @@ const Status = {
|
|||
toggleReplying () {
|
||||
controlledOrUncontrolledToggle(this, 'replying')
|
||||
},
|
||||
toggleQuoting () {
|
||||
controlledOrUncontrolledToggle(this, 'quoting')
|
||||
},
|
||||
gotoOriginal (id) {
|
||||
if (this.inConversation) {
|
||||
this.$emit('goto', id)
|
||||
|
|
|
@ -101,6 +101,10 @@
|
|||
|
||||
.status-heading {
|
||||
margin-bottom: 0.5em;
|
||||
|
||||
.emoji {
|
||||
--emoji-size: 16px;
|
||||
}
|
||||
}
|
||||
|
||||
.heading-name-row {
|
||||
|
@ -355,6 +359,15 @@
|
|||
flex: 1;
|
||||
}
|
||||
|
||||
.quote-form {
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
}
|
||||
|
||||
.quote-body {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.favs-repeated-users {
|
||||
margin-top: var(--status-margin, $status-margin);
|
||||
}
|
||||
|
|
|
@ -430,6 +430,12 @@
|
|||
:status="status"
|
||||
@toggle="toggleReplying"
|
||||
/>
|
||||
<quote-button
|
||||
:visibility="status.visibility"
|
||||
:quoting="quoting"
|
||||
:status="status"
|
||||
@toggle="toggleQuoting"
|
||||
/>
|
||||
<retweet-button
|
||||
:visibility="status.visibility"
|
||||
:logged-in="loggedIn"
|
||||
|
@ -488,6 +494,20 @@
|
|||
@posted="toggleReplying"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-if="quoting"
|
||||
class="status-container quote-form"
|
||||
>
|
||||
<PostStatusForm
|
||||
class="quote-body"
|
||||
:quote-id="status.id"
|
||||
:attentions="[status.user]"
|
||||
:replied-user="status.user"
|
||||
:copy-message-scope="status.visibility"
|
||||
:subject="replySubject"
|
||||
@posted="toggleQuoting"
|
||||
/>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
</template>
|
||||
|
|
|
@ -6,9 +6,12 @@
|
|||
|
||||
.emoji {
|
||||
--_still_image-label-scale: 0.5;
|
||||
--emoji-size: 38px;
|
||||
}
|
||||
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
.emoji:hover {
|
||||
transform: scale(1.4);
|
||||
transition: 0.05s;
|
||||
}
|
||||
|
||||
._mfm_x2_ {
|
||||
|
@ -94,7 +97,7 @@
|
|||
overflow-y: hidden;
|
||||
z-index: 1;
|
||||
|
||||
.media-body {
|
||||
.media-body-wrapper {
|
||||
min-height: 0;
|
||||
mask:
|
||||
linear-gradient(to top, white, transparent) bottom/100% 70px no-repeat,
|
||||
|
@ -154,16 +157,19 @@
|
|||
|
||||
--emoji-size: 16px;
|
||||
|
||||
& .body,
|
||||
& .body:not(:active),
|
||||
& .attachments {
|
||||
max-height: 3.25em;
|
||||
}
|
||||
|
||||
.body {
|
||||
overflow: hidden;
|
||||
white-space: normal;
|
||||
min-width: 5em;
|
||||
flex: 5 1 auto;
|
||||
}
|
||||
|
||||
.body:not(:active) {
|
||||
overflow: hidden;
|
||||
mask-size: auto 3.5em, auto auto;
|
||||
mask-position: 0 0, 0 0;
|
||||
mask-repeat: repeat-x, repeat;
|
||||
|
|
|
@ -43,6 +43,7 @@
|
|||
</button>
|
||||
<div
|
||||
v-if="!hideSubjectStatus && !(singleLine && status.summary_raw_html)"
|
||||
class="media-body-wrapper"
|
||||
>
|
||||
<RichContent
|
||||
:class="{ '-single-line': singleLine }"
|
||||
|
|
|
@ -3,6 +3,7 @@ import Poll from '../poll/poll.vue'
|
|||
import Gallery from '../gallery/gallery.vue'
|
||||
import StatusBody from 'src/components/status_body/status_body.vue'
|
||||
import LinkPreview from '../link-preview/link-preview.vue'
|
||||
import QuoteCard from '../quote_card/quote_card.vue'
|
||||
import { mapGetters, mapState } from 'vuex'
|
||||
import { library } from '@fortawesome/fontawesome-svg-core'
|
||||
import {
|
||||
|
@ -109,7 +110,8 @@ const StatusContent = {
|
|||
Poll,
|
||||
Gallery,
|
||||
LinkPreview,
|
||||
StatusBody
|
||||
StatusBody,
|
||||
QuoteCard
|
||||
},
|
||||
methods: {
|
||||
toggleShowingTall () {
|
||||
|
|
|
@ -40,7 +40,14 @@
|
|||
@play="$emit('mediaplay', attachment.id)"
|
||||
@pause="$emit('mediapause', attachment.id)"
|
||||
/>
|
||||
|
||||
<div
|
||||
v-if="status.quote && !compact"
|
||||
class="quote"
|
||||
>
|
||||
<QuoteCard
|
||||
:status="status.quote"
|
||||
/>
|
||||
</div>
|
||||
<div
|
||||
v-if="status.card && !noHeading && !compact"
|
||||
class="link-preview media-body"
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "الدردشة",
|
||||
"gopher": "غوفر",
|
||||
"media_proxy": "بروكسي الوسائط",
|
||||
"scope_options": "",
|
||||
"text_limit": "الحد الأقصى للنص",
|
||||
|
|
1596
src/i18n/ca.json
1596
src/i18n/ca.json
File diff suppressed because it is too large
Load diff
|
@ -4,7 +4,6 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "Chat",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Mediální proxy",
|
||||
"scope_options": "Možnosti rozsahů",
|
||||
"text_limit": "Textový limit",
|
||||
|
|
|
@ -4,14 +4,12 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "Chat",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Medienproxy",
|
||||
"scope_options": "Reichweitenoptionen",
|
||||
"text_limit": "Zeichenlimit",
|
||||
"title": "Funktionen",
|
||||
"who_to_follow": "Vorschläge",
|
||||
"upload_limit": "Maximale Upload Größe",
|
||||
"pleroma_chat_messages": "Pleroma Chat"
|
||||
"upload_limit": "Maximale Upload Größe"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "Fehler beim Suchen des Benutzers",
|
||||
|
@ -775,9 +773,6 @@
|
|||
"errors": {
|
||||
"storage_unavailable": "Pleroma konnte nicht auf den Browser Speicher zugreifen. Deine Anmeldung und deine Einstellungen werden nicht gespeichert. Es kann unvorhersehbare Probleme geben. Versuche ansonsten Cookies zu erlauben."
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "Shoutbox"
|
||||
},
|
||||
"chats": {
|
||||
"error_sending_message": "Beim Senden der Nachricht ist ein Fehler aufgetreten.",
|
||||
"error_loading_chat": "Beim Laden des Chats ist ein Fehler aufgetreten.",
|
||||
|
|
1289
src/i18n/en.json
1289
src/i18n/en.json
File diff suppressed because it is too large
Load diff
|
@ -4,13 +4,11 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "Babilejo",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Vidaŭdaĵa retperilo",
|
||||
"scope_options": "Agordoj de amplekso",
|
||||
"text_limit": "Limo de teksto",
|
||||
"title": "Funkcioj",
|
||||
"who_to_follow": "Kiun aboni",
|
||||
"pleroma_chat_messages": "Babilejo de Pleroma",
|
||||
"upload_limit": "Limo de alŝutoj"
|
||||
},
|
||||
"finder": {
|
||||
|
@ -875,8 +873,5 @@
|
|||
"additional_comments": "Aldonaj komentoj",
|
||||
"add_comment_description": "Ĉi tiu raporto sendiĝos al reguligistoj de via nodo. Vi povas komprenigi kial vi raportas ĉi tiun konton sube:",
|
||||
"title": "Raportante {0}"
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "Kriujo"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -8,13 +8,11 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "Chat",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Proxy de medios",
|
||||
"scope_options": "Opciones del alcance de la visibilidad",
|
||||
"text_limit": "Límite de caracteres",
|
||||
"title": "Características",
|
||||
"who_to_follow": "A quién seguir",
|
||||
"pleroma_chat_messages": "Chat de Pleroma",
|
||||
"upload_limit": "Límite de subida"
|
||||
},
|
||||
"finder": {
|
||||
|
@ -854,9 +852,6 @@
|
|||
},
|
||||
"staff": "Equipo"
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "Jaula de Grillos"
|
||||
},
|
||||
"remote_user_resolver": {
|
||||
"remote_user_resolver": "Resolución de usuario remoto",
|
||||
"error": "No encontrado.",
|
||||
|
|
|
@ -435,7 +435,6 @@
|
|||
"text_limit": "Tekstilimiit",
|
||||
"scope_options": "Ulatuse valikud",
|
||||
"media_proxy": "Meedia proksi",
|
||||
"gopher": "Gopher",
|
||||
"chat": "Vestlus"
|
||||
},
|
||||
"exporter": {
|
||||
|
|
|
@ -8,13 +8,11 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "Txata",
|
||||
"gopher": "Ghoper",
|
||||
"media_proxy": "Media proxy",
|
||||
"scope_options": "Ikusgaitasun aukerak",
|
||||
"text_limit": "Testu limitea",
|
||||
"title": "Ezaugarriak",
|
||||
"who_to_follow": "Nori jarraitu",
|
||||
"pleroma_chat_messages": "Pleroma Txata",
|
||||
"upload_limit": "Kargatzeko muga"
|
||||
},
|
||||
"finder": {
|
||||
|
@ -708,9 +706,6 @@
|
|||
"mute_progress": "Isiltzen…",
|
||||
"mute": "Isilarazi"
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "Oihu-kutxa"
|
||||
},
|
||||
"errors": {
|
||||
"storage_unavailable": "Pleromak ezin izan du nabigatzailearen biltegira sartu. Hasiera-saioa edo tokiko ezarpenak ez dira gordeko eta ustekabeko arazoak sor ditzake. Saiatu cookie-ak gaitzen."
|
||||
},
|
||||
|
|
|
@ -65,8 +65,6 @@
|
|||
"text_limit": "محدودیت متن",
|
||||
"scope_options": "تنظیمات حوزه",
|
||||
"media_proxy": "پروکسی رسانه",
|
||||
"gopher": "گوفر",
|
||||
"pleroma_chat_messages": "گپ پلروما",
|
||||
"chat": "گپ"
|
||||
},
|
||||
"media_modal": {
|
||||
|
@ -129,9 +127,6 @@
|
|||
"mute_progress": "در حال بی صدا کردن…",
|
||||
"mute": "بی صدا"
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "چت باکس"
|
||||
},
|
||||
"display_date": {
|
||||
"today": "امروز"
|
||||
},
|
||||
|
|
|
@ -4,7 +4,6 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "Chat",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Media-välityspalvelin",
|
||||
"scope_options": "Näkyvyyden rajaus",
|
||||
"text_limit": "Tekstin pituusraja",
|
||||
|
|
1453
src/i18n/fr.json
1453
src/i18n/fr.json
File diff suppressed because it is too large
Load diff
|
@ -4,7 +4,6 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "Comhrá",
|
||||
"gopher": "Gófar",
|
||||
"media_proxy": "Seachfhreastalaí meáin",
|
||||
"scope_options": "Rogha scóip",
|
||||
"text_limit": "Teorainn Téacs",
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "צ'אט",
|
||||
"gopher": "גופר",
|
||||
"media_proxy": "מדיה פרוקסי",
|
||||
"scope_options": "אפשרויות טווח",
|
||||
"text_limit": "מגבלת טקסט",
|
||||
|
|
|
@ -251,7 +251,6 @@
|
|||
"hours": "{0} jam",
|
||||
"hour_short": "{0}j",
|
||||
"hours_short": "{0}j",
|
||||
|
||||
"minute": "{0} menit",
|
||||
"minutes": "{0} menit",
|
||||
"minute_short": "{0}m",
|
||||
|
@ -597,8 +596,6 @@
|
|||
"features_panel": {
|
||||
"title": "Fitur-fitur",
|
||||
"text_limit": "Batas teks",
|
||||
"gopher": "Gopher",
|
||||
"pleroma_chat_messages": "Pleroma Obrolan",
|
||||
"chat": "Obrolan",
|
||||
"upload_limit": "Batas unggahan"
|
||||
},
|
||||
|
@ -626,8 +623,5 @@
|
|||
},
|
||||
"errors": {
|
||||
"storage_unavailable": "Pleroma tidak dapat mengakses penyimpanan browser. Login Anda atau pengaturan lokal Anda tidak akan tersimpan dan masalah yang tidak terduga dapat terjadi. Coba mengaktifkan kuki."
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "Kotak Suara"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -536,13 +536,11 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "Chat",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Proxy allegati",
|
||||
"scope_options": "Opzioni visibilità",
|
||||
"text_limit": "Lunghezza massima",
|
||||
"title": "Caratteristiche",
|
||||
"who_to_follow": "Chi seguire",
|
||||
"pleroma_chat_messages": "Chiacchiere",
|
||||
"upload_limit": "Limite allegati"
|
||||
},
|
||||
"finder": {
|
||||
|
@ -875,8 +873,5 @@
|
|||
"delete": "Elimina",
|
||||
"message_user": "Contatta {nickname}",
|
||||
"you": "Tu:"
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "Graffiti"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,7 +31,6 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "チャット",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "メディアプロクシ",
|
||||
"scope_options": "こうかいはんいせんたく",
|
||||
"text_limit": "もじのかず",
|
||||
|
|
|
@ -8,14 +8,12 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "チャット",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "メディアプロクシ",
|
||||
"scope_options": "公開範囲選択",
|
||||
"text_limit": "文字の数",
|
||||
"title": "有効な機能",
|
||||
"who_to_follow": "おすすめユーザー",
|
||||
"upload_limit": "ファイルサイズの上限",
|
||||
"pleroma_chat_messages": "Pleroma チャット"
|
||||
"upload_limit": "ファイルサイズの上限"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "ユーザー検索がエラーになりました",
|
||||
|
@ -856,7 +854,8 @@
|
|||
"accept_desc": "このインスタンスでは、以下のインスタンスからのメッセージのみを受け付けます:",
|
||||
"accept": "許可",
|
||||
"simple_policies": "インスタンス固有のポリシー",
|
||||
"reject": "拒否"
|
||||
"reject": "拒否",
|
||||
"instance": "インスタンス"
|
||||
},
|
||||
"mrf_policies": "有効なMRFポリシー",
|
||||
"keyword": {
|
||||
|
@ -886,9 +885,6 @@
|
|||
"errors": {
|
||||
"storage_unavailable": "ブラウザのストレージに接続できなかったため、ログインや設定情報は保存されません。Cookieを有効にしてください。"
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "Shoutbox"
|
||||
},
|
||||
"chats": {
|
||||
"empty_chat_list_placeholder": "チャットはありません。新規チャットのボタンを押して始めましょう!",
|
||||
"error_sending_message": "メッセージの送信に失敗しました。",
|
||||
|
@ -907,5 +903,8 @@
|
|||
"unmute": "ミュート解除",
|
||||
"mute_progress": "ミュート中…",
|
||||
"mute": "ミュート"
|
||||
},
|
||||
"announcements": {
|
||||
"page_header": "お知らせ"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,14 +4,12 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "챗",
|
||||
"gopher": "고퍼",
|
||||
"media_proxy": "미디어 프록시",
|
||||
"scope_options": "범위 옵션",
|
||||
"text_limit": "텍스트 제한",
|
||||
"title": "기능",
|
||||
"who_to_follow": "팔로우 추천",
|
||||
"upload_limit": "최대 파일용량",
|
||||
"pleroma_chat_messages": "Pleroma 채트"
|
||||
"upload_limit": "최대 파일용량"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "사용자 정보 불러오기 실패",
|
||||
|
@ -549,9 +547,6 @@
|
|||
"federation": "연합"
|
||||
}
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "Shoutbox"
|
||||
},
|
||||
"time": {
|
||||
"now_short": "방금",
|
||||
"now": "방끔",
|
||||
|
|
|
@ -8,7 +8,6 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "Nettprat",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Media proxy",
|
||||
"scope_options": "Velg mottakere",
|
||||
"text_limit": "Tekstgrense",
|
||||
|
|
1310
src/i18n/nl.json
1310
src/i18n/nl.json
File diff suppressed because it is too large
Load diff
|
@ -8,7 +8,6 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "Chat",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Servidor mandatari mèdia",
|
||||
"scope_options": "Nivèls de confidencialitat",
|
||||
"text_limit": "Limita de tèxte",
|
||||
|
@ -522,7 +521,7 @@
|
|||
"favorite": "aimar",
|
||||
"user_settings": "Paramètres utilizaire"
|
||||
},
|
||||
"upload":{
|
||||
"upload": {
|
||||
"error": {
|
||||
"base": "Mandadís fracassat.",
|
||||
"file_too_big": "Fichièr tròp grand [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]",
|
||||
|
|
|
@ -44,13 +44,11 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "Czat",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Proxy mediów",
|
||||
"scope_options": "Ustawienia zakresu",
|
||||
"text_limit": "Limit tekstu",
|
||||
"title": "Funkcje",
|
||||
"who_to_follow": "Propozycje obserwacji",
|
||||
"pleroma_chat_messages": "Czat Pleromy",
|
||||
"upload_limit": "Limit wysyłania"
|
||||
},
|
||||
"finder": {
|
||||
|
@ -858,9 +856,6 @@
|
|||
"display_date": {
|
||||
"today": "Dzisiaj"
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "Shoutbox"
|
||||
},
|
||||
"errors": {
|
||||
"storage_unavailable": "Pleroma nie mogła uzyskać dostępu do pamięci masowej przeglądarki. Twój login lub lokalne ustawienia nie zostaną zapisane i możesz napotkać problemy. Spróbuj włączyć ciasteczka."
|
||||
}
|
||||
|
|
|
@ -4,14 +4,12 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "Chat",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Proxy de multimédia",
|
||||
"scope_options": "Opções de privacidade",
|
||||
"text_limit": "Limite de caracteres",
|
||||
"title": "Características",
|
||||
"who_to_follow": "Quem seguir",
|
||||
"upload_limit": "Limite de carregamento",
|
||||
"pleroma_chat_messages": "Chat do Pleroma"
|
||||
"upload_limit": "Limite de carregamento"
|
||||
},
|
||||
"finder": {
|
||||
"error_fetching_user": "Erro ao pesquisar utilizador",
|
||||
|
@ -36,8 +34,7 @@
|
|||
"error_retry": "Por favor, tenta novamente",
|
||||
"loading": "A carregar…",
|
||||
"dismiss": "Ignorar",
|
||||
"role":
|
||||
{
|
||||
"role": {
|
||||
"moderator": "Moderador",
|
||||
"admin": "Admin"
|
||||
}
|
||||
|
@ -742,9 +739,6 @@
|
|||
"errors": {
|
||||
"storage_unavailable": "O Pleroma não conseguiu aceder ao armazenamento do navegador. A sua sessão ou definições locais não serão armazenadas e poderá encontrar problemas inesperados. Tente ativar as cookies."
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "Chat Geral"
|
||||
},
|
||||
"chats": {
|
||||
"chats": "Chats",
|
||||
"empty_chat_list_placeholder": "Não tens conversações ainda. Inicia uma nova conversa!",
|
||||
|
|
|
@ -657,9 +657,7 @@
|
|||
"media_proxy": "Прокси для внешних вложений",
|
||||
"text_limit": "Лимит символов",
|
||||
"title": "Особенности",
|
||||
"gopher": "Gopher",
|
||||
"who_to_follow": "Предложения кого читать",
|
||||
"pleroma_chat_messages": "Pleroma Чат",
|
||||
"upload_limit": "Наибольший размер загружаемого файла",
|
||||
"scope_options": "Настраиваемая видимость статусов"
|
||||
},
|
||||
|
@ -716,9 +714,6 @@
|
|||
"emoji": "Эмодзи",
|
||||
"stickers": "Стикеры"
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "Болтовня"
|
||||
},
|
||||
"time": {
|
||||
"now_short": "только что",
|
||||
"now": "только что",
|
||||
|
|
|
@ -32,9 +32,6 @@
|
|||
},
|
||||
"staff": "Personál"
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "Verejné fórum"
|
||||
},
|
||||
"domain_mute_card": {
|
||||
"mute": "Utíš",
|
||||
"mute_progress": "Utišujem…",
|
||||
|
@ -47,8 +44,6 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"shout": "Verejné fórum",
|
||||
"pleroma_chat_messages": "Pleroma Chat",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Proxy pre médiá",
|
||||
"scope_options": "Nastavenia rámca",
|
||||
"text_limit": "Limit počtu znakov",
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
{
|
||||
"chat.title": "చాట్",
|
||||
"features_panel.chat": "చాట్",
|
||||
"features_panel.gopher": "గోఫర్",
|
||||
"features_panel.media_proxy": "మీడియా ప్రాక్సీ",
|
||||
"features_panel.scope_options": "స్కోప్ ఎంపికలు",
|
||||
"features_panel.text_limit": "వచన పరిమితి",
|
||||
|
|
|
@ -31,8 +31,6 @@
|
|||
"find_user": "Знайти користувача"
|
||||
},
|
||||
"features_panel": {
|
||||
"gopher": "Gopher",
|
||||
"pleroma_chat_messages": "Чати",
|
||||
"chat": "Оголошення",
|
||||
"who_to_follow": "Кого відстежувати",
|
||||
"title": "Особливості",
|
||||
|
@ -51,9 +49,6 @@
|
|||
"mute_progress": "Вимикаю…",
|
||||
"mute": "Ігнорувати"
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "Оголошення"
|
||||
},
|
||||
"about": {
|
||||
"staff": "Адміністрація",
|
||||
"mrf": {
|
||||
|
|
|
@ -41,8 +41,6 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "Chat",
|
||||
"pleroma_chat_messages": "Pleroma Chat",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "Proxy media",
|
||||
"text_limit": "Giới hạn ký tự",
|
||||
"title": "Tính năng",
|
||||
|
@ -54,9 +52,6 @@
|
|||
"error_fetching_user": "Lỗi khi nạp người dùng",
|
||||
"find_user": "Tìm người dùng"
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "Chat cùng nhau"
|
||||
},
|
||||
"general": {
|
||||
"apply": "Áp dụng",
|
||||
"submit": "Gửi tặng",
|
||||
|
|
|
@ -8,13 +8,11 @@
|
|||
},
|
||||
"features_panel": {
|
||||
"chat": "聊天",
|
||||
"gopher": "Gopher",
|
||||
"media_proxy": "媒体代理",
|
||||
"scope_options": "可见范围设置",
|
||||
"text_limit": "文字数量限制",
|
||||
"title": "功能",
|
||||
"who_to_follow": "推荐关注",
|
||||
"pleroma_chat_messages": "Pleroma 聊天",
|
||||
"upload_limit": "上传限制"
|
||||
},
|
||||
"finder": {
|
||||
|
@ -850,9 +848,6 @@
|
|||
"errors": {
|
||||
"storage_unavailable": "Pleroma 无法访问浏览器储存。您的登陆以及本地设置将不会被保存,您也可能遇到未知问题。请尝试启用 cookies。"
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "留言板"
|
||||
},
|
||||
"display_date": {
|
||||
"today": "今天"
|
||||
},
|
||||
|
|
|
@ -130,9 +130,7 @@
|
|||
"text_limit": "文字數量限制",
|
||||
"scope_options": "可見範圍設置",
|
||||
"media_proxy": "媒體代理",
|
||||
"pleroma_chat_messages": "Pleroma 聊天",
|
||||
"chat": "聊天",
|
||||
"gopher": "Gopher",
|
||||
"upload_limit": "上傳限制"
|
||||
},
|
||||
"exporter": {
|
||||
|
@ -145,9 +143,6 @@
|
|||
"mute_progress": "靜音中…",
|
||||
"mute": "靜音"
|
||||
},
|
||||
"shoutbox": {
|
||||
"title": "留言板"
|
||||
},
|
||||
"about": {
|
||||
"staff": "職員",
|
||||
"mrf": {
|
||||
|
|
|
@ -31,6 +31,7 @@ export const defaultState = {
|
|||
// bad name: actually hides posts of muted USERS
|
||||
hideMutedPosts: undefined, // instance default
|
||||
hideMutedThreads: undefined, // instance default
|
||||
hideThreadsWithBlockedUsers: undefined, // instance default
|
||||
hideWordFilteredPosts: undefined, // instance default
|
||||
muteBotStatuses: undefined, // instance default
|
||||
collapseMessageWithSubject: undefined, // instance default
|
||||
|
|
|
@ -30,6 +30,7 @@ const defaultState = {
|
|||
// bad name: actually hides posts of muted USERS
|
||||
hideMutedPosts: false,
|
||||
hideMutedThreads: true,
|
||||
hideThreadsWithBlockedUsers: false,
|
||||
hideWordFilteredPosts: false,
|
||||
hidePostStats: false,
|
||||
hideBotIndication: false,
|
||||
|
|
|
@ -57,12 +57,16 @@ const actions = {
|
|||
commit('setList', { id, title })
|
||||
},
|
||||
setListAccounts ({ rootState, commit }, { id, accountIds }) {
|
||||
const saved = rootState.lists.allListsObject[id].accountIds
|
||||
const added = accountIds.filter(id => !saved.includes(id))
|
||||
const removed = saved.filter(id => !accountIds.includes(id))
|
||||
commit('setListAccounts', { id, accountIds })
|
||||
rootState.api.backendInteractor.addAccountsToList({ id, accountIds })
|
||||
rootState.api.backendInteractor.removeAccountsFromList({
|
||||
id,
|
||||
accountIds: rootState.lists.allListsObject[id].accountIds.filter(id => !accountIds.includes(id))
|
||||
})
|
||||
if (added.length > 0) {
|
||||
rootState.api.backendInteractor.addAccountsToList({ id, accountIds: added })
|
||||
}
|
||||
if (removed.length > 0) {
|
||||
rootState.api.backendInteractor.removeAccountsFromList({ id, accountIds: removed })
|
||||
}
|
||||
},
|
||||
deleteList ({ rootState, commit }, { id }) {
|
||||
rootState.api.backendInteractor.deleteList({ id })
|
||||
|
@ -76,7 +80,7 @@ export const getters = {
|
|||
return state.allListsObject[id].title
|
||||
},
|
||||
findListAccounts: state => id => {
|
||||
return state.allListsObject[id].accountIds
|
||||
return [...state.allListsObject[id].accountIds]
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -763,6 +763,7 @@ const postStatus = ({
|
|||
poll,
|
||||
mediaIds = [],
|
||||
inReplyToStatusId,
|
||||
quoteId,
|
||||
contentType,
|
||||
preview,
|
||||
idempotencyKey
|
||||
|
@ -795,6 +796,9 @@ const postStatus = ({
|
|||
if (inReplyToStatusId) {
|
||||
form.append('in_reply_to_id', inReplyToStatusId)
|
||||
}
|
||||
if (quoteId) {
|
||||
form.append('quote_id', quoteId)
|
||||
}
|
||||
if (preview) {
|
||||
form.append('preview', 'true')
|
||||
}
|
||||
|
|
|
@ -347,6 +347,9 @@ export const parseStatus = (data) => {
|
|||
output.visibility = data.visibility
|
||||
output.card = data.card
|
||||
output.created_at = new Date(data.created_at)
|
||||
if (data.quote) {
|
||||
output.quote = parseStatus(data.quote)
|
||||
}
|
||||
|
||||
// Converting to string, the right way.
|
||||
output.in_reply_to_status_id = output.in_reply_to_status_id
|
||||
|
|
|
@ -10,6 +10,7 @@ const postStatus = ({
|
|||
poll,
|
||||
media = [],
|
||||
inReplyToStatusId = undefined,
|
||||
quoteId = undefined,
|
||||
contentType = 'text/plain',
|
||||
preview = false,
|
||||
idempotencyKey = ''
|
||||
|
@ -24,6 +25,7 @@ const postStatus = ({
|
|||
sensitive,
|
||||
mediaIds,
|
||||
inReplyToStatusId,
|
||||
quoteId,
|
||||
contentType,
|
||||
poll,
|
||||
preview,
|
||||
|
|
|
@ -37,11 +37,11 @@
|
|||
}
|
||||
|
||||
._mfm_jump_ {
|
||||
animation: mfm-jump 0.75 linear infinite;
|
||||
animation: mfm-jump 0.75s linear infinite;
|
||||
}
|
||||
|
||||
._mfm_bounce_ {
|
||||
animation: mfm-bounce 0.75 linear infinite;
|
||||
animation: mfm-bounce 0.75s linear infinite;
|
||||
transform-origin: center bottom;
|
||||
}
|
||||
|
||||
|
@ -67,7 +67,13 @@
|
|||
font-size: 600%;
|
||||
}
|
||||
|
||||
/* blur */
|
||||
._mfm_blur_ {
|
||||
filter: blur(6px);
|
||||
transition: filter 0.3s
|
||||
}
|
||||
._mfm_blur_:hover {
|
||||
filter: blur(0px);
|
||||
}
|
||||
|
||||
._mfm_rainbow_ {
|
||||
animation: mfm-rainbow 1s linear infinite;
|
||||
|
|
20
yarn.lock
20
yarn.lock
|
@ -7445,10 +7445,10 @@ markdown-table@^2.0.0:
|
|||
dependencies:
|
||||
repeat-string "^1.0.0"
|
||||
|
||||
marked-mfm@^0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.yarnpkg.com/marked-mfm/-/marked-mfm-0.4.0.tgz#d3094c42daaa57b1b0b263278633de82ebf62396"
|
||||
integrity sha512-2ZdBHGOV7BFJUcQNLp/jjwEE2IT1O5d1H7cd4dGeuOBI1nivuBCv1Azt7fbRlygfUSQ2rgGtFZ1ZbrP4dRhh3A==
|
||||
marked-mfm@^0.5.0:
|
||||
version "0.5.0"
|
||||
resolved "https://registry.yarnpkg.com/marked-mfm/-/marked-mfm-0.5.0.tgz#0632c4fa8f5044d350b3aaa771b136e5d50b4b60"
|
||||
integrity sha512-nRazH80nu7gVEDeORQWCWehY3v7fofC4usKdY/d6mckxfRY4PrPNLM3iGpVedpij9ktmesWAtY7SpCLq/BxP4Q==
|
||||
dependencies:
|
||||
"@babel/core" "^7.18.6"
|
||||
"@babel/preset-env" "^7.18.6"
|
||||
|
@ -7561,13 +7561,6 @@ methods@~1.1.2:
|
|||
version "1.1.2"
|
||||
resolved "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"
|
||||
|
||||
mfm-js@^0.22.1:
|
||||
version "0.22.1"
|
||||
resolved "https://registry.npmjs.org/mfm-js/-/mfm-js-0.22.1.tgz"
|
||||
integrity sha512-UV5zvDKlWPpBFeABhyCzuOTJ3RwrNrmVpJ+zz/dFX6D/ntEywljgxkfsLamcy0ZSwUAr0O+WQxGHvAwyxUgsAQ==
|
||||
dependencies:
|
||||
twemoji-parser "14.0.x"
|
||||
|
||||
micromatch@^3.1.10, micromatch@^3.1.4:
|
||||
version "3.1.10"
|
||||
resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz"
|
||||
|
@ -10747,11 +10740,6 @@ tty-browserify@0.0.0:
|
|||
version "0.0.0"
|
||||
resolved "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz"
|
||||
|
||||
twemoji-parser@14.0.x:
|
||||
version "14.0.0"
|
||||
resolved "https://registry.npmjs.org/twemoji-parser/-/twemoji-parser-14.0.0.tgz"
|
||||
integrity sha512-9DUOTGLOWs0pFWnh1p6NF+C3CkQ96PWmEFwhOVmT3WbecRC+68AIqpsnJXygfkFcp4aXbOp8Dwbhh/HQgvoRxA==
|
||||
|
||||
type-check@^0.4.0, type-check@~0.4.0:
|
||||
version "0.4.0"
|
||||
resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
|
||||
|
|
Loading…
Reference in a new issue