Loads of fixes: notifs, autoload setting, overflow, faint text, reply form, status fadein.
This commit is contained in:
parent
82ee24ec31
commit
a1f6ef1dca
|
@ -46,8 +46,8 @@ a {
|
||||||
|
|
||||||
button{
|
button{
|
||||||
user-select: none;
|
user-select: none;
|
||||||
color: $fallback--faint;
|
color: $fallback--fg;
|
||||||
color: var(--faint, $fallback--faint);
|
color: var(--fg, $fallback--fg);
|
||||||
background-color: $fallback--btn;
|
background-color: $fallback--btn;
|
||||||
background-color: var(--btn, $fallback--btn);
|
background-color: var(--btn, $fallback--btn);
|
||||||
border: none;
|
border: none;
|
||||||
|
@ -253,7 +253,7 @@ main-router {
|
||||||
border-radius: $fallback--panelRadius;
|
border-radius: $fallback--panelRadius;
|
||||||
border-radius: var(--panelRadius, $fallback--panelRadius);
|
border-radius: var(--panelRadius, $fallback--panelRadius);
|
||||||
box-shadow: 1px 1px 4px rgba(0,0,0,.6);
|
box-shadow: 1px 1px 4px rgba(0,0,0,.6);
|
||||||
overflow: hidden;
|
//overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.panel-body:empty::before {
|
.panel-body:empty::before {
|
||||||
|
|
|
@ -8,7 +8,16 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="timeline">
|
<div class="timeline">
|
||||||
<status v-for="status in conversation" @goto="setHighlight" :key="status.id" :inlineExpanded="collapsable" :statusoid="status" :expandable='false' :focused="focused(status.id)" :inConversation='true' :highlight="highlight" :replies="getReplies(status.id)"></status>
|
<status
|
||||||
|
v-for="status in conversation"
|
||||||
|
@goto="setHighlight" :key="status.id"
|
||||||
|
:inlineExpanded="collapsable" :statusoid="status"
|
||||||
|
:expandable='false' :focused="focused(status.id)"
|
||||||
|
:inConversation='true'
|
||||||
|
:highlight="highlight"
|
||||||
|
:replies="getReplies(status.id)"
|
||||||
|
class="status-fadein">
|
||||||
|
</status>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -32,6 +32,9 @@
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
@import '../../_variables.scss';
|
@import '../../_variables.scss';
|
||||||
|
|
||||||
|
.nav-panel .panel {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
.nav-panel ul {
|
.nav-panel ul {
|
||||||
list-style: none;
|
list-style: none;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
|
|
@ -20,8 +20,8 @@
|
||||||
position: relative;
|
position: relative;
|
||||||
background: $fallback--btn;
|
background: $fallback--btn;
|
||||||
background: var(--btn, $fallback--btn);
|
background: var(--btn, $fallback--btn);
|
||||||
color: $fallback--faint;
|
color: $fallback--fg;
|
||||||
color: var(--faint, $fallback--faint);
|
color: var(--fg, $fallback--fg);
|
||||||
.read-button {
|
.read-button {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 0.7em;
|
right: 0.7em;
|
||||||
|
@ -105,7 +105,7 @@
|
||||||
color: var($fallback--faint, --faint);
|
color: var($fallback--faint, --faint);
|
||||||
}
|
}
|
||||||
padding: 0;
|
padding: 0;
|
||||||
.status-content.media-body {
|
.media-body {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -200,13 +200,3 @@
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.notification-content {
|
|
||||||
max-height: 12em;
|
|
||||||
overflow-y: hidden;
|
|
||||||
//text-overflow: ellipsis;
|
|
||||||
|
|
||||||
img {
|
|
||||||
object-fit: contain;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<button v-if="unseenCount" @click.prevent="markAsSeen" class="read-button">{{$t('notifications.read')}}</button>
|
<button v-if="unseenCount" @click.prevent="markAsSeen" class="read-button">{{$t('notifications.read')}}</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div v-for="notification in visibleNotifications" :key="notification" class="notification" :class='{"unseen": !notification.seen}'>
|
<div v-for="notification in visibleNotifications" :key="notification.action.id" class="notification" :class='{"unseen": !notification.seen}'>
|
||||||
<notification :notification="notification"></notification>
|
<notification :notification="notification"></notification>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
<media-upload @uploading="disableSubmit" @uploaded="addMediaFile" @upload-failed="enableSubmit" :drop-files="dropFiles"></media-upload>
|
<media-upload @uploading="disableSubmit" @uploaded="addMediaFile" @upload-failed="enableSubmit" :drop-files="dropFiles"></media-upload>
|
||||||
|
|
||||||
<p v-if="isOverLengthLimit" class="error">{{ charactersLeft }}</p>
|
<p v-if="isOverLengthLimit" class="error">{{ charactersLeft }}</p>
|
||||||
<p v-else-if="hasStatusLengthLimit">{{ charactersLeft }}</p>
|
<p class="faint" v-else-if="hasStatusLengthLimit">{{ charactersLeft }}</p>
|
||||||
|
|
||||||
<button v-if="posting" disabled class="btn btn-default">{{$t('post_status.posting')}}</button>
|
<button v-if="posting" disabled class="btn btn-default">{{$t('post_status.posting')}}</button>
|
||||||
<button v-else-if="isOverLengthLimit" disabled class="btn btn-default">{{$t('general.submit')}}</button>
|
<button v-else-if="isOverLengthLimit" disabled class="btn btn-default">{{$t('general.submit')}}</button>
|
||||||
|
|
|
@ -29,7 +29,7 @@
|
||||||
<label for="hideNsfw">{{$t('settings.nsfw_clickthrough')}}</label>
|
<label for="hideNsfw">{{$t('settings.nsfw_clickthrough')}}</label>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
<input type="checkbox" id="autoload" v-model="autoloadlocal">
|
<input type="checkbox" id="autoload" v-model="autoLoadLocal">
|
||||||
<label for="autoload">{{$t('settings.autoload')}}</label>
|
<label for="autoload">{{$t('settings.autoload')}}</label>
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="status-el status-fadein" :class="[{ 'status-el_focused': isFocused }, { 'status-conversation': inlineExpanded }]">
|
<div class="status-el" :class="[{ 'status-el_focused': isFocused }, { 'status-conversation': inlineExpanded }]">
|
||||||
<template v-if="muted && !noReplyLinks">
|
<template v-if="muted && !noReplyLinks">
|
||||||
<div class="media status container muted">
|
<div class="media status container muted">
|
||||||
<small><router-link :to="{ name: 'user-profile', params: { id: status.user.id } }">{{status.user.screen_name}}</router-link></small>
|
<small><router-link :to="{ name: 'user-profile', params: { id: status.user.id } }">{{status.user.screen_name}}</router-link></small>
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
<h4 class="user-name">{{status.user.name}}</h4>
|
<h4 class="user-name">{{status.user.name}}</h4>
|
||||||
<span class="links">
|
<span class="links">
|
||||||
<router-link :to="{ name: 'user-profile', params: { id: status.user.id } }">{{status.user.screen_name}}</router-link>
|
<router-link :to="{ name: 'user-profile', params: { id: status.user.id } }">{{status.user.screen_name}}</router-link>
|
||||||
<span v-if="status.in_reply_to_screen_name"> >
|
<span v-if="status.in_reply_to_screen_name" class="faint"> >
|
||||||
<router-link :to="{ name: 'user-profile', params: { id: status.in_reply_to_user_id } }">
|
<router-link :to="{ name: 'user-profile', params: { id: status.in_reply_to_user_id } }">
|
||||||
{{status.in_reply_to_screen_name}}
|
{{status.in_reply_to_screen_name}}
|
||||||
</router-link>
|
</router-link>
|
||||||
|
@ -167,6 +167,9 @@
|
||||||
border-color: $fallback--border;
|
border-color: $fallback--border;
|
||||||
border-color: var(--border, $fallback--border);
|
border-color: var(--border, $fallback--border);
|
||||||
|
|
||||||
|
border-left: 4px $fallback--cRed;
|
||||||
|
border-left: 4px var(--cRed, $fallback--cRed);
|
||||||
|
|
||||||
&_focused {
|
&_focused {
|
||||||
background-color: $fallback--lightBg;
|
background-color: $fallback--lightBg;
|
||||||
background-color: var(--lightBg, $fallback--lightBg);
|
background-color: var(--lightBg, $fallback--lightBg);
|
||||||
|
@ -307,7 +310,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-fadein {
|
.status-fadein {
|
||||||
animation-duration: 0.3s;
|
animation-duration: 0.4s;
|
||||||
animation-name: fadein;
|
animation-name: fadein;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -389,9 +392,6 @@
|
||||||
.status {
|
.status {
|
||||||
display: flex;
|
display: flex;
|
||||||
padding: 0.6em;
|
padding: 0.6em;
|
||||||
border-left: 4px $fallback--cRed;
|
|
||||||
border-left: 4px var(--cRed, $fallback--cRed);
|
|
||||||
border-left-style: inherit;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.status-conversation:last-child {
|
.status-conversation:last-child {
|
||||||
|
@ -399,7 +399,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
.timeline .panel.timeline {
|
.timeline .panel.timeline {
|
||||||
overflow: hidden;
|
//overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
.muted {
|
.muted {
|
||||||
|
@ -427,6 +427,13 @@ a.unmute {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.timeline > {
|
||||||
|
.status-el:last-child {
|
||||||
|
border-bottom-radius: 0 0 $fallback--panelRadius $fallback--panelRadius;;
|
||||||
|
border-radius: 0 0 var(--panelRadius, $fallback--panelRadius) var(--panelRadius, $fallback--panelRadius);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@media all and (max-width: 960px) {
|
@media all and (max-width: 960px) {
|
||||||
.status-el {
|
.status-el {
|
||||||
.retweet-info {
|
.retweet-info {
|
||||||
|
|
|
@ -105,7 +105,7 @@ const Timeline = {
|
||||||
.then((friends) => this.$store.dispatch('addFriends', { friends }))
|
.then((friends) => this.$store.dispatch('addFriends', { friends }))
|
||||||
},
|
},
|
||||||
scrollLoad (e) {
|
scrollLoad (e) {
|
||||||
let height = Math.max(document.body.offsetHeight, document.body.scrollHeight)
|
const height = Math.max(document.body.offsetHeight, document.body.scrollHeight)
|
||||||
if (this.timeline.loading === false &&
|
if (this.timeline.loading === false &&
|
||||||
this.$store.state.config.autoLoad &&
|
this.$store.state.config.autoLoad &&
|
||||||
this.$el.offsetHeight > 0 &&
|
this.$el.offsetHeight > 0 &&
|
||||||
|
|
|
@ -16,13 +16,15 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="timeline">
|
<div class="timeline">
|
||||||
<status-or-conversation v-for="status in timeline.visibleStatuses" :key="status.id" v-bind:statusoid="status"></status-or-conversation>
|
<status-or-conversation v-for="status in timeline.visibleStatuses" :key="status.id" v-bind:statusoid="status" class="status-fadein"></status-or-conversation>
|
||||||
<a href="#" v-on:click.prevent='fetchOlderStatuses()' v-if="!timeline.loading">
|
|
||||||
<div class="new-status-notification text-center">{{$t('timeline.load_older')}}</div>
|
|
||||||
</a>
|
|
||||||
<div class="new-status-notification text-center" v-else>...</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="panel-footer">
|
||||||
|
<a href="#" v-on:click.prevent='fetchOlderStatuses()' v-if="!timeline.loading">
|
||||||
|
<div class="new-status-notification text-center panel-footer">{{$t('timeline.load_older')}}</div>
|
||||||
|
</a>
|
||||||
|
<div class="new-status-notification text-center panel-footer" v-else>...</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="timeline panel panel-default" v-else-if="viewing == 'followers'">
|
<div class="timeline panel panel-default" v-else-if="viewing == 'followers'">
|
||||||
<div class="panel-heading timeline-heading">
|
<div class="panel-heading timeline-heading">
|
||||||
|
|
|
@ -66,17 +66,16 @@ const setColors = (col, commit) => {
|
||||||
let colors = {}
|
let colors = {}
|
||||||
let radii = {}
|
let radii = {}
|
||||||
|
|
||||||
let mod = 10
|
const mod = isDark ? -10 : 10
|
||||||
if (isDark) {
|
|
||||||
mod = mod * -1
|
|
||||||
}
|
|
||||||
console.log(JSON.stringify(col, null, ' '))
|
|
||||||
|
|
||||||
colors.bg = rgb2hex(col.bg.r, col.bg.g, col.bg.b) // background
|
colors.bg = rgb2hex(col.bg.r, col.bg.g, col.bg.b) // background
|
||||||
colors.lightBg = rgb2hex((col.bg.r + col.fg.r) / 2, (col.bg.g + col.fg.g) / 2, (col.bg.b + col.fg.b) / 2) // hilighted bg
|
colors.lightBg = rgb2hex((col.bg.r + col.fg.r) / 2, (col.bg.g + col.fg.g) / 2, (col.bg.b + col.fg.b) / 2) // hilighted bg
|
||||||
colors.btn = rgb2hex(col.fg.r, col.fg.g, col.fg.b) // panels & buttons
|
colors.btn = rgb2hex(col.fg.r, col.fg.g, col.fg.b) // panels & buttons
|
||||||
colors.border = rgb2hex(col.fg.r - mod, col.fg.g - mod, col.fg.b - mod) // borders
|
colors.border = rgb2hex(col.fg.r - mod, col.fg.g - mod, col.fg.b - mod) // borders
|
||||||
colors.faint = rgb2hex(col.text.r + mod * 2, col.text.g + mod * 2, col.text.b + mod * 2) // faint text
|
colors.faint = rgb2hex(
|
||||||
|
col.text.r * 0.45 + col.fg.r * 0.55,
|
||||||
|
col.text.g * 0.45 + col.fg.g * 0.55,
|
||||||
|
col.text.b * 0.45 + col.fg.b * 0.55) // faint text
|
||||||
colors.fg = rgb2hex(col.text.r, col.text.g, col.text.b) // text
|
colors.fg = rgb2hex(col.text.r, col.text.g, col.text.b) // text
|
||||||
colors.lightFg = rgb2hex(col.text.r - mod, col.text.g - mod, col.text.b - mod) // strong text
|
colors.lightFg = rgb2hex(col.text.r - mod, col.text.g - mod, col.text.b - mod) // strong text
|
||||||
|
|
||||||
|
@ -92,7 +91,6 @@ const setColors = (col, commit) => {
|
||||||
|
|
||||||
colors.cAlertRed = col.cRed && `rgba(${col.cRed.r}, ${col.cRed.g}, ${col.cRed.b}, .5)`
|
colors.cAlertRed = col.cRed && `rgba(${col.cRed.r}, ${col.cRed.g}, ${col.cRed.b}, .5)`
|
||||||
|
|
||||||
console.log('OMGGGG')
|
|
||||||
console.log(JSON.stringify(col))
|
console.log(JSON.stringify(col))
|
||||||
radii.btnRadius = col.btnRadius
|
radii.btnRadius = col.btnRadius
|
||||||
radii.panelRadius = col.panelRadius
|
radii.panelRadius = col.panelRadius
|
||||||
|
|
Loading…
Reference in New Issue