CWが適用されない箇所を修正

This commit is contained in:
syuilo 2018-09-13 17:44:36 +09:00
parent 44099c551c
commit 700f8c9bb4
No known key found for this signature in database
GPG key ID: BDC4C49D06AB9D69
11 changed files with 355 additions and 122 deletions

View file

@ -37,6 +37,11 @@
</router-link>
</header>
<div class="body">
<p v-if="p.cw != null" class="cw">
<span class="text" v-if="p.cw != ''">{{ p.cw }}</span>
<span class="toggle" @click="showContent = !showContent">{{ showContent ? '%i18n:@hide%' : '%i18n:@see-more%' }}</span>
</p>
<div class="content" v-show="p.cw == null || showContent">
<div class="text">
<span v-if="p.isHidden" style="opacity: 0.5">%i18n:@private%</span>
<span v-if="p.deletedAt" style="opacity: 0.5">%i18n:@deleted%</span>
@ -53,6 +58,7 @@
<mk-note-preview :note="p.renote"/>
</div>
</div>
</div>
<footer>
<mk-reactions-viewer :note="p"/>
<button class="replyButton" @click="reply" title="">
@ -105,6 +111,7 @@ export default Vue.extend({
data() {
return {
showContent: false,
conversation: [],
conversationFetching: false,
replies: []
@ -118,17 +125,21 @@ export default Vue.extend({
this.note.fileIds.length == 0 &&
this.note.poll == null);
},
p(): any {
return this.isRenote ? this.note.renote : this.note;
},
reactionsCount(): number {
return this.p.reactionCounts
? sum(Object.values(this.p.reactionCounts))
: 0;
},
title(): string {
return new Date(this.p.createdAt).toLocaleString();
},
urls(): string[] {
if (this.p.text) {
const ast = parse(this.p.text);
@ -183,22 +194,26 @@ export default Vue.extend({
this.conversation = conversation.reverse();
});
},
reply() {
(this as any).os.new(MkPostFormWindow, {
reply: this.p
});
},
renote() {
(this as any).os.new(MkRenoteFormWindow, {
note: this.p
});
},
react() {
(this as any).os.new(MkReactionPicker, {
source: this.$refs.reactButton,
note: this.p
});
},
menu() {
(this as any).os.new(MkNoteMenu, {
source: this.$refs.menuButton,
@ -326,6 +341,31 @@ root(isDark)
> .body
padding 8px 0
> .cw
cursor default
display block
margin 0
padding 0
overflow-wrap break-word
color isDark ? #fff : #717171
> .text
margin-right 8px
> .toggle
display inline-block
padding 4px 8px
font-size 0.7em
color isDark ? #393f4f : #fff
background isDark ? #687390 : #b1b9c1
border-radius 2px
cursor pointer
user-select none
&:hover
background isDark ? #707b97 : #bbc4ce
> .content
> .text
cursor default
display block
@ -338,7 +378,7 @@ root(isDark)
> .renote
margin 8px 0
> .mk-note-preview
> *
padding 16px
border dashed 1px #c0dac6
border-radius 8px

View file

@ -1,13 +1,19 @@
<template>
<div class="mk-note-preview" :title="title">
<div class="qiziqtywpuaucsgarwajitwaakggnisj" :title="title">
<mk-avatar class="avatar" :user="note.user" v-if="!mini"/>
<div class="main">
<mk-note-header class="header" :note="note" :mini="true"/>
<div class="body">
<p v-if="note.cw != null" class="cw">
<span class="text" v-if="note.cw != ''">{{ note.cw }}</span>
<span class="toggle" @click="showContent = !showContent">{{ showContent ? '%i18n:@hide%' : '%i18n:@see-more%' }}</span>
</p>
<div class="content" v-show="note.cw == null || showContent">
<mk-sub-note-content class="text" :note="note"/>
</div>
</div>
</div>
</div>
</template>
<script lang="ts">
@ -25,6 +31,13 @@ export default Vue.extend({
default: false
}
},
data() {
return {
showContent: false
};
},
computed: {
title(): string {
return new Date(this.note.createdAt).toLocaleString();
@ -52,16 +65,41 @@ root(isDark)
> .body
> .cw
cursor default
display block
margin 0
padding 0
overflow-wrap break-word
color isDark ? #fff : #717171
> .text
margin-right 8px
> .toggle
display inline-block
padding 4px 8px
font-size 0.7em
color isDark ? #393f4f : #fff
background isDark ? #687390 : #b1b9c1
border-radius 2px
cursor pointer
user-select none
&:hover
background isDark ? #707b97 : #bbc4ce
> .content
> .text
cursor default
margin 0
padding 0
color isDark ? #959ba7 : #717171
.mk-note-preview[data-darkmode]
.qiziqtywpuaucsgarwajitwaakggnisj[data-darkmode]
root(true)
.mk-note-preview:not([data-darkmode])
.qiziqtywpuaucsgarwajitwaakggnisj:not([data-darkmode])
root(false)
</style>

View file

@ -1,20 +1,38 @@
<template>
<div class="sub" :title="title">
<div class="tkfdzaxtkdeianobciwadajxzbddorql" :title="title">
<mk-avatar class="avatar" :user="note.user"/>
<div class="main">
<mk-note-header class="header" :note="note"/>
<div class="body">
<p v-if="note.cw != null" class="cw">
<span class="text" v-if="note.cw != ''">{{ note.cw }}</span>
<span class="toggle" @click="showContent = !showContent">{{ showContent ? '%i18n:@hide%' : '%i18n:@see-more%' }}</span>
</p>
<div class="content" v-show="note.cw == null || showContent">
<mk-sub-note-content class="text" :note="note"/>
</div>
</div>
</div>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
props: ['note'],
props: {
note: {
type: Object,
required: true
}
},
data() {
return {
showContent: false
};
},
computed: {
title(): string {
return new Date(this.note.createdAt).toLocaleString();
@ -48,6 +66,31 @@ root(isDark)
> .body
> .cw
cursor default
display block
margin 0
padding 0
overflow-wrap break-word
color isDark ? #fff : #717171
> .text
margin-right 8px
> .toggle
display inline-block
padding 4px 8px
font-size 0.7em
color isDark ? #393f4f : #fff
background isDark ? #687390 : #b1b9c1
border-radius 2px
cursor pointer
user-select none
&:hover
background isDark ? #707b97 : #bbc4ce
> .content
> .text
cursor default
margin 0
@ -58,10 +101,10 @@ root(isDark)
max-height 120px
font-size 80%
.sub[data-darkmode]
.tkfdzaxtkdeianobciwadajxzbddorql[data-darkmode]
root(true)
.sub:not([data-darkmode])
.tkfdzaxtkdeianobciwadajxzbddorql:not([data-darkmode])
root(false)
</style>

View file

@ -34,9 +34,7 @@
<mk-poll v-if="p.poll" :note="p" ref="pollViewer"/>
<a class="location" v-if="p.geo" :href="`https://maps.google.com/maps?q=${p.geo.coordinates[1]},${p.geo.coordinates[0]}`" target="_blank">%fa:map-marker-alt% 位置情報</a>
<div class="map" v-if="p.geo" ref="map"></div>
<div class="renote" v-if="p.renote">
<mk-note-preview :note="p.renote"/>
</div>
<div class="renote" v-if="p.renote"><mk-note-preview :note="p.renote"/></div>
<mk-url-preview v-for="url in urls" :url="url" :key="url"/>
</div>
</div>
@ -96,7 +94,12 @@ export default Vue.extend({
XSub
},
props: ['note'],
props: {
note: {
type: Object,
required: true
}
},
data() {
return {
@ -469,7 +472,7 @@ root(isDark)
> .renote
margin 8px 0
> .mk-note-preview
> *
padding 16px
border dashed 1px isDark ? #4e945e : #c0dac6
border-radius 8px

View file

@ -1,6 +1,6 @@
<template>
<div class="mk-renote-form">
<mk-note-preview :note="note"/>
<mk-note-preview class="preview" :note="note"/>
<template v-if="!quote">
<footer>
<a class="quote" v-if="!quote" @click="onQuote">%i18n:@quote%</a>
@ -61,7 +61,7 @@ export default Vue.extend({
root(isDark)
> .mk-note-preview
> .preview
margin 16px 22px
> footer

View file

@ -394,7 +394,7 @@ root(isDark)
> .renote
margin 8px 0
> .mk-note-preview
> *
padding 16px
border dashed 1px isDark ? #4e945e : #c0dac6
border-radius 8px

View file

@ -35,6 +35,11 @@
</div>
</header>
<div class="body">
<p v-if="p.cw != null" class="cw">
<span class="text" v-if="p.cw != ''">{{ p.cw }}</span>
<span class="toggle" @click="showContent = !showContent">{{ showContent ? '%i18n:@hide%' : '%i18n:@see-more%' }}</span>
</p>
<div class="content" v-show="p.cw == null || showContent">
<div class="text">
<span v-if="p.isHidden" style="opacity: 0.5">(%i18n:@private%)</span>
<span v-if="p.deletedAt" style="opacity: 0.5">(%i18n:@deleted%)</span>
@ -51,6 +56,7 @@
<mk-note-preview :note="p.renote"/>
</div>
</div>
</div>
<router-link class="time" :to="p | notePage">
<mk-time :time="p.createdAt" mode="detail"/>
</router-link>
@ -104,6 +110,7 @@ export default Vue.extend({
data() {
return {
showContent: false,
conversation: [],
conversationFetching: false,
replies: []
@ -334,6 +341,32 @@ root(isDark)
> .body
padding 8px 0
> .cw
cursor default
display block
margin 0
padding 0
overflow-wrap break-word
color isDark ? #fff : #717171
> .text
margin-right 8px
> .toggle
display inline-block
padding 4px 8px
font-size 0.7em
color isDark ? #393f4f : #fff
background isDark ? #687390 : #b1b9c1
border-radius 2px
cursor pointer
user-select none
&:hover
background isDark ? #707b97 : #bbc4ce
> .content
> .text
display block
margin 0
@ -348,7 +381,7 @@ root(isDark)
> .renote
margin 8px 0
> .mk-note-preview
> *
padding 16px
border dashed 1px #c0dac6
border-radius 8px

View file

@ -1,20 +1,37 @@
<template>
<div class="mk-note-preview" :class="{ smart: $store.state.device.postStyle == 'smart' }">
<div class="yohlumlkhizgfkvvscwfcrcggkotpvry" :class="{ smart: $store.state.device.postStyle == 'smart' }">
<mk-avatar class="avatar" :user="note.user" v-if="$store.state.device.postStyle != 'smart'"/>
<div class="main">
<mk-note-header class="header" :note="note" :mini="true"/>
<div class="body">
<p v-if="note.cw != null" class="cw">
<span class="text" v-if="note.cw != ''">{{ note.cw }}</span>
<span class="toggle" @click="showContent = !showContent">{{ showContent ? '%i18n:@hide%' : '%i18n:@see-more%' }}</span>
</p>
<div class="content" v-show="note.cw == null || showContent">
<mk-sub-note-content class="text" :note="note"/>
</div>
</div>
</div>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
export default Vue.extend({
props: ['note']
props: {
note: {
type: Object,
required: true
}
},
data() {
return {
showContent: false
};
}
});
</script>
@ -65,16 +82,41 @@ root(isDark)
> .body
> .cw
cursor default
display block
margin 0
padding 0
overflow-wrap break-word
color isDark ? #fff : #717171
> .text
margin-right 8px
> .toggle
display inline-block
padding 4px 8px
font-size 0.7em
color isDark ? #393f4f : #fff
background isDark ? #687390 : #b1b9c1
border-radius 2px
cursor pointer
user-select none
&:hover
background isDark ? #707b97 : #bbc4ce
> .content
> .text
cursor default
margin 0
padding 0
color isDark ? #959ba7 : #717171
.mk-note-preview[data-darkmode]
.yohlumlkhizgfkvvscwfcrcggkotpvry[data-darkmode]
root(true)
.mk-note-preview:not([data-darkmode])
.yohlumlkhizgfkvvscwfcrcggkotpvry:not([data-darkmode])
root(false)
</style>

View file

@ -1,13 +1,19 @@
<template>
<div class="sub" :class="{ smart: $store.state.device.postStyle == 'smart' }">
<div class="zlrxdaqttccpwhpaagdmkawtzklsccam" :class="{ smart: $store.state.device.postStyle == 'smart' }">
<mk-avatar class="avatar" :user="note.user" v-if="$store.state.device.postStyle != 'smart'"/>
<div class="main">
<mk-note-header class="header" :note="note" :mini="true"/>
<div class="body">
<p v-if="note.cw != null" class="cw">
<span class="text" v-if="note.cw != ''">{{ note.cw }}</span>
<span class="toggle" @click="showContent = !showContent">{{ showContent ? '%i18n:@hide%' : '%i18n:@see-more%' }}</span>
</p>
<div class="content" v-show="note.cw == null || showContent">
<mk-sub-note-content class="text" :note="note"/>
</div>
</div>
</div>
</div>
</template>
<script lang="ts">
@ -24,6 +30,12 @@ export default Vue.extend({
type: Boolean,
default: true
}
},
data() {
return {
showContent: false
};
}
});
</script>
@ -77,7 +89,31 @@ root(isDark)
margin-bottom 2px
> .body
> .cw
cursor default
display block
margin 0
padding 0
overflow-wrap break-word
color isDark ? #fff : #717171
> .text
margin-right 8px
> .toggle
display inline-block
padding 4px 8px
font-size 0.7em
color isDark ? #393f4f : #fff
background isDark ? #687390 : #b1b9c1
border-radius 2px
cursor pointer
user-select none
&:hover
background isDark ? #707b97 : #bbc4ce
> .content
> .text
margin 0
padding 0
@ -87,10 +123,10 @@ root(isDark)
max-height 120px
font-size 80%
.sub[data-darkmode]
.zlrxdaqttccpwhpaagdmkawtzklsccam[data-darkmode]
root(true)
.sub:not([data-darkmode])
.zlrxdaqttccpwhpaagdmkawtzklsccam:not([data-darkmode])
root(false)
</style>

View file

@ -35,9 +35,7 @@
<mk-url-preview v-for="url in urls" :url="url" :key="url"/>
<a class="location" v-if="p.geo" :href="`https://maps.google.com/maps?q=${p.geo.coordinates[1]},${p.geo.coordinates[0]}`" target="_blank">%fa:map-marker-alt% %i18n:@location%</a>
<div class="map" v-if="p.geo" ref="map"></div>
<div class="renote" v-if="p.renote">
<mk-note-preview :note="p.renote"/>
</div>
<div class="renote" v-if="p.renote"><mk-note-preview :note="p.renote"/></div>
</div>
<span class="app" v-if="p.app">via <b>{{ p.app.name }}</b></span>
</div>
@ -436,7 +434,7 @@ root(isDark)
> .renote
margin 8px 0
> .mk-note-preview
> *
padding 16px
border dashed 1px isDark ? #4e945e : #c0dac6
border-radius 8px

View file

@ -10,8 +10,8 @@
</div>
</header>
<div class="form">
<mk-note-preview v-if="reply" :note="reply"/>
<mk-note-preview v-if="renote" :note="renote"/>
<mk-note-preview class="preview" v-if="reply" :note="reply"/>
<mk-note-preview class="preview" v-if="renote" :note="renote"/>
<div v-if="visibility == 'specified'" class="visibleUsers">
<span v-for="u in visibleUsers">{{ u | userName }}<a @click="removeVisibleUser(u)">[x]</a></span>
<a @click="addVisibleUser">+%i18n:@add-visible-user%</a>
@ -387,7 +387,7 @@ root(isDark)
max-width 500px
margin 0 auto
> .mk-note-preview
> .preview
padding 16px
> .visibleUsers