Merge remote-tracking branch 'upstream/develop' into cat-erars-names

This commit is contained in:
Your New SJW Waifu 2021-07-20 12:11:57 -05:00
commit d3b5484b3b
11 changed files with 70 additions and 21 deletions

View File

@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Added quick filters for notifications - Added quick filters for notifications
- Implemented user option to change sidebar position to the right side - Implemented user option to change sidebar position to the right side
- Implemented user option to hide floating shout panel - Implemented user option to hide floating shout panel
- Implemented "edit profile" button if viewing own profile which opens profile settings
### Fixed ### Fixed
- Fixed follow request count showing in the wrong location in mobile view - Fixed follow request count showing in the wrong location in mobile view

View File

@ -3,6 +3,7 @@ Contributors of this project.
- Constance Variable (lambadalambda@social.heldscal.la): Code - Constance Variable (lambadalambda@social.heldscal.la): Code
- Coco Snuss (cocosnuss@social.heldscal.la): Code - Coco Snuss (cocosnuss@social.heldscal.la): Code
- wakarimasen (wakarimasen@shitposter.club): NSFW hiding image - wakarimasen (wakarimasen@shitposter.club): NSFW hiding image
- eris (eris@disqordia.space): Code
- dtluna (dtluna@social.heldscal.la): Code - dtluna (dtluna@social.heldscal.la): Code
- sonyam (sonyam@social.heldscal.la): Background images - sonyam (sonyam@social.heldscal.la): Background images
- hakui (hakui@freezepeach.xyz): CSS and styling - hakui (hakui@freezepeach.xyz): CSS and styling

View File

@ -1,9 +1,9 @@
<template> <template>
<div <div
ref="root"
v-click-outside="onClickOutside" v-click-outside="onClickOutside"
class="emoji-input" class="emoji-input"
:class="{ 'with-picker': !hideEmojiButton }" :class="{ 'with-picker': !hideEmojiButton }"
ref='root'
> >
<slot /> <slot />
<template v-if="enableEmojiPicker"> <template v-if="enableEmojiPicker">

View File

@ -16,10 +16,18 @@ export default {
return [firstSegment + 'DefaultValue', ...rest].join('.') return [firstSegment + 'DefaultValue', ...rest].join('.')
}, },
state () { state () {
return get(this.$parent, this.path) const value = get(this.$parent, this.path)
if (value === undefined) {
return this.defaultState
} else {
return value
}
},
defaultState () {
return get(this.$parent, this.pathDefault)
}, },
isChanged () { isChanged () {
return get(this.$parent, this.path) !== get(this.$parent, this.pathDefault) return this.state !== this.defaultState
} }
}, },
methods: { methods: {

View File

@ -17,13 +17,18 @@ export default {
return [firstSegment + 'DefaultValue', ...rest].join('.') return [firstSegment + 'DefaultValue', ...rest].join('.')
}, },
state () { state () {
return get(this.$parent, this.path) const value = get(this.$parent, this.path)
if (value === undefined) {
return this.defaultState
} else {
return value
}
}, },
defaultState () { defaultState () {
return get(this.$parent, this.pathDefault) return get(this.$parent, this.pathDefault)
}, },
isChanged () { isChanged () {
return get(this.$parent, this.path) !== get(this.$parent, this.pathDefault) return this.state !== this.defaultState
} }
}, },
methods: { methods: {

View File

@ -73,7 +73,8 @@ export default {
getExportedObject: () => this.exportedTheme getExportedObject: () => this.exportedTheme
}), }),
availableStyles: [], availableStyles: [],
selected: this.$store.getters.mergedConfig.theme, selected: '',
selectedTheme: this.$store.getters.mergedConfig.theme,
themeWarning: undefined, themeWarning: undefined,
tempImportFile: undefined, tempImportFile: undefined,
engineVersion: 0, engineVersion: 0,
@ -207,7 +208,7 @@ export default {
} }
}, },
selectedVersion () { selectedVersion () {
return Array.isArray(this.selected) ? 1 : 2 return Array.isArray(this.selectedTheme) ? 1 : 2
}, },
currentColors () { currentColors () {
return Object.keys(SLOT_INHERITANCE) return Object.keys(SLOT_INHERITANCE)
@ -745,6 +746,16 @@ export default {
} }
}, },
selected () { selected () {
this.selectedTheme = Object.entries(this.availableStyles).find(([k, s]) => {
if (Array.isArray(s)) {
console.log(s[0] === this.selected, this.selected)
return s[0] === this.selected
} else {
return s.name === this.selected
}
})[1]
},
selectedTheme () {
this.dismissWarning() this.dismissWarning()
if (this.selectedVersion === 1) { if (this.selectedVersion === 1) {
if (!this.keepRoundness) { if (!this.keepRoundness) {
@ -762,17 +773,17 @@ export default {
if (!this.keepColor) { if (!this.keepColor) {
this.clearV1() this.clearV1()
this.bgColorLocal = this.selected[1] this.bgColorLocal = this.selectedTheme[1]
this.fgColorLocal = this.selected[2] this.fgColorLocal = this.selectedTheme[2]
this.textColorLocal = this.selected[3] this.textColorLocal = this.selectedTheme[3]
this.linkColorLocal = this.selected[4] this.linkColorLocal = this.selectedTheme[4]
this.cRedColorLocal = this.selected[5] this.cRedColorLocal = this.selectedTheme[5]
this.cGreenColorLocal = this.selected[6] this.cGreenColorLocal = this.selectedTheme[6]
this.cBlueColorLocal = this.selected[7] this.cBlueColorLocal = this.selectedTheme[7]
this.cOrangeColorLocal = this.selected[8] this.cOrangeColorLocal = this.selectedTheme[8]
} }
} else if (this.selectedVersion >= 2) { } else if (this.selectedVersion >= 2) {
this.normalizeLocalState(this.selected.theme, 2, this.selected.source) this.normalizeLocalState(this.selectedTheme.theme, 2, this.selectedTheme.source)
} }
} }
} }

View File

@ -63,7 +63,7 @@
<option <option
v-for="style in availableStyles" v-for="style in availableStyles"
:key="style.name" :key="style.name"
:value="style" :value="style.name || style[0]"
:style="{ :style="{
backgroundColor: style[1] || (style.theme || style.source).colors.bg, backgroundColor: style[1] || (style.theme || style.source).colors.bg,
color: style[3] || (style.theme || style.source).colors.text color: style[3] || (style.theme || style.source).colors.text

View File

@ -12,14 +12,16 @@ import {
faBell, faBell,
faRss, faRss,
faSearchPlus, faSearchPlus,
faExternalLinkAlt faExternalLinkAlt,
faEdit
} from '@fortawesome/free-solid-svg-icons' } from '@fortawesome/free-solid-svg-icons'
library.add( library.add(
faRss, faRss,
faBell, faBell,
faSearchPlus, faSearchPlus,
faExternalLinkAlt faExternalLinkAlt,
faEdit
) )
export default { export default {
@ -153,6 +155,9 @@ export default {
this.$store.state.instance.restrictedNicknames this.$store.state.instance.restrictedNicknames
) )
}, },
openProfileTab () {
this.$store.dispatch('openSettingsModalTab', 'profile')
},
zoomAvatar () { zoomAvatar () {
const attachment = { const attachment = {
url: this.user.profile_image_url_original, url: this.user.profile_image_url_original,

View File

@ -53,6 +53,18 @@
> >
{{ user.name }} {{ user.name }}
</div> </div>
<button
v-if="!isOtherUser && user.is_local"
class="button-unstyled edit-profile-button"
@click.stop="openProfileTab"
>
<FAIcon
fixed-width
class="icon"
icon="edit"
:title="$t('user_card.edit_profile')"
/>
</button>
<button <button
v-if="isOtherUser && !user.is_local" v-if="isOtherUser && !user.is_local"
:href="user.statusnet_profile_url" :href="user.statusnet_profile_url"
@ -426,7 +438,7 @@
} }
} }
.external-link-button { .external-link-button, .edit-profile-button {
cursor: pointer; cursor: pointer;
width: 2.5em; width: 2.5em;
text-align: center; text-align: center;
@ -578,6 +590,10 @@
} }
} }
.sidebar .edit-profile-button {
display: none;
}
.user-counts { .user-counts {
display: flex; display: flex;
line-height:16px; line-height:16px;

View File

@ -719,6 +719,7 @@
"block": "Block", "block": "Block",
"blocked": "Blocked!", "blocked": "Blocked!",
"deny": "Deny", "deny": "Deny",
"edit_profile": "Edit profile",
"favorites": "Favorites", "favorites": "Favorites",
"follow": "Follow", "follow": "Follow",
"follow_sent": "Request sent!", "follow_sent": "Request sent!",

View File

@ -94,7 +94,8 @@ const config = {
const { defaultConfig } = rootGetters const { defaultConfig } = rootGetters
return { return {
...defaultConfig, ...defaultConfig,
...state // Do not override with undefined
...Object.fromEntries(Object.entries(state).filter(([k, v]) => v !== undefined))
} }
} }
}, },