forked from srxl/akkoma-fe
parent
e61228b031
commit
2d85ee6a08
6 changed files with 13 additions and 18 deletions
|
@ -10,11 +10,6 @@ import HashtagLink from 'src/components/hashtag_link/hashtag_link.vue'
|
||||||
|
|
||||||
import './rich_content.scss'
|
import './rich_content.scss'
|
||||||
|
|
||||||
const selectContent = (html, sourceContent, mfm) => {
|
|
||||||
if (!mfm) return html
|
|
||||||
return sourceContent === '' ? html : sourceContent
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* RichContent, The Über-powered component for rendering Post HTML.
|
* RichContent, The Über-powered component for rendering Post HTML.
|
||||||
*
|
*
|
||||||
|
@ -71,11 +66,6 @@ export default {
|
||||||
required: false,
|
required: false,
|
||||||
type: Boolean,
|
type: Boolean,
|
||||||
default: false
|
default: false
|
||||||
},
|
|
||||||
sourceContent: {
|
|
||||||
required: false,
|
|
||||||
type: String,
|
|
||||||
default: ''
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// NEVER EVER TOUCH DATA INSIDE RENDER
|
// NEVER EVER TOUCH DATA INSIDE RENDER
|
||||||
|
@ -84,8 +74,7 @@ export default {
|
||||||
const greentext = this.mfm ? false : this.greentext
|
const greentext = this.mfm ? false : this.greentext
|
||||||
|
|
||||||
// Pre-process HTML
|
// Pre-process HTML
|
||||||
const useContent = selectContent(this.html, this.sourceContent, this.mfm)
|
const { newHtml: html } = preProcessPerLine(this.html, greentext)
|
||||||
const { newHtml: html } = preProcessPerLine(useContent, greentext)
|
|
||||||
let currentMentions = null // Current chain of mentions, we group all mentions together
|
let currentMentions = null // Current chain of mentions, we group all mentions together
|
||||||
// This is used to recover spacing removed when parsing mentions
|
// This is used to recover spacing removed when parsing mentions
|
||||||
let lastSpacing = ''
|
let lastSpacing = ''
|
||||||
|
@ -180,7 +169,7 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Processor to use with html_tree_converter
|
// Processor to use with html_tree_converter
|
||||||
const processItem = (item, index, array) => {
|
const processItem = (item, index, array, what) => {
|
||||||
// Handle text nodes - just add emoji
|
// Handle text nodes - just add emoji
|
||||||
if (typeof item === 'string') {
|
if (typeof item === 'string') {
|
||||||
const emptyText = item.trim() === ''
|
const emptyText = item.trim() === ''
|
||||||
|
|
|
@ -52,7 +52,6 @@
|
||||||
:emoji="status.emojis"
|
:emoji="status.emojis"
|
||||||
:handle-links="true"
|
:handle-links="true"
|
||||||
:mfm="renderMisskeyMarkdown && (status.media_type === 'text/x.misskeymarkdown')"
|
:mfm="renderMisskeyMarkdown && (status.media_type === 'text/x.misskeymarkdown')"
|
||||||
:sourceContent="status.source_content"
|
|
||||||
:greentext="mergedConfig.greentext"
|
:greentext="mergedConfig.greentext"
|
||||||
:attentions="status.attentions"
|
:attentions="status.attentions"
|
||||||
@parseReady="onParseReady"
|
@parseReady="onParseReady"
|
||||||
|
|
|
@ -103,6 +103,9 @@ const StatusContent = {
|
||||||
renderMfmOnHover () {
|
renderMfmOnHover () {
|
||||||
return this.mergedConfig.renderMfmOnHover
|
return this.mergedConfig.renderMfmOnHover
|
||||||
},
|
},
|
||||||
|
renderMisskeyMarkdown () {
|
||||||
|
return this.mergedConfig.renderMisskeyMarkdown
|
||||||
|
},
|
||||||
...mapGetters(['mergedConfig']),
|
...mapGetters(['mergedConfig']),
|
||||||
...mapState({
|
...mapState({
|
||||||
currentUser: state => state.users.currentUser
|
currentUser: state => state.users.currentUser
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
<template>
|
<template>
|
||||||
<div
|
<div
|
||||||
class="StatusContent"
|
class="StatusContent"
|
||||||
:class="{ '-compact': compact, 'mfm-hover': renderMfmOnHover }"
|
:class="{ '-compact': compact, 'mfm-hover': renderMfmOnHover, 'mfm-disabled': !renderMisskeyMarkdown }"
|
||||||
>
|
>
|
||||||
<slot name="header" />
|
<slot name="header" />
|
||||||
<StatusBody
|
<StatusBody
|
||||||
|
@ -78,7 +78,12 @@
|
||||||
|
|
||||||
&.mfm-hover:not(:hover) {
|
&.mfm-hover:not(:hover) {
|
||||||
.mfm {
|
.mfm {
|
||||||
animation: none;
|
animation: none !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
&.mfm-disabled {
|
||||||
|
.mfm {
|
||||||
|
animation: none !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -589,7 +589,7 @@ const users = {
|
||||||
const response = data.error
|
const response = data.error
|
||||||
// Authentication failed
|
// Authentication failed
|
||||||
commit('endLogin')
|
commit('endLogin')
|
||||||
if (response.status === 401 || response.status === 403) {
|
if (response.status === 401) {
|
||||||
reject(new Error('Wrong username or password'))
|
reject(new Error('Wrong username or password'))
|
||||||
} else {
|
} else {
|
||||||
reject(new Error('An error occurred, please try again'))
|
reject(new Error('An error occurred, please try again'))
|
||||||
|
|
|
@ -282,7 +282,6 @@ export const parseStatus = (data) => {
|
||||||
const { akkoma } = data
|
const { akkoma } = data
|
||||||
if (akkoma && akkoma.source) {
|
if (akkoma && akkoma.source) {
|
||||||
output.media_type = akkoma.source.mediaType
|
output.media_type = akkoma.source.mediaType
|
||||||
output.source_content = akkoma.source.content
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue