Compare commits

..

31 commits

Author SHA1 Message Date
Henry Jameson
5f3fcad181 Merge branch 'fixes-batch' into shigusegubu-themes3 2024-12-19 14:56:00 +02:00
Henry Jameson
76f340ce2d Merge remote-tracking branch 'origin/develop' into fixes-batch 2024-12-19 14:54:40 +02:00
Henry Jameson
619423eacb move reply-quote buttons on same line as preview 2024-12-19 14:54:18 +02:00
Henry Jameson
c698dec89d fix emoji size incosistencies and proper scaling support 2024-12-19 14:54:18 +02:00
Henry Jameson
5a8eae4510 embedded timeline avoid shrug 2024-12-19 14:34:54 +02:00
Henry Jameson
8cc2584571 fix panel stack in user profile 2024-12-19 14:15:00 +02:00
HJ
3d68dda5a2 Merge branch 'checkbox-goes-brrr' into 'develop'
Vertical center the checkboxes

See merge request pleroma/pleroma-fe!1703
2024-12-19 12:14:46 +00:00
Henry Jameson
9b2f54c571 changelog 2024-12-19 14:00:11 +02:00
Henry Jameson
0631acb8ad Merge remote-tracking branch 'origin/develop' into checkbox-goes-brrr 2024-12-19 13:50:15 +02:00
Henry Jameson
155e7aa117 fix chevron missing its dropdown icon 2024-12-19 13:44:52 +02:00
HJ
b0e687692a Merge branch 'loader-fixes' into 'develop'
Loader fixes

See merge request pleroma/pleroma-fe!1954
2024-12-18 15:20:52 +00:00
Henry Jameson
f3a79cdb97 changelog 2024-12-18 17:11:08 +02:00
Henry Jameson
331b7dbaa3 fix splash update after splash is gone 2024-12-18 16:29:38 +02:00
HJ
cbe9427123 Merge branch 'themes3-grand-finale-maybe' into 'develop'
Themes 3

See merge request pleroma/pleroma-fe!1951
2024-12-18 12:19:11 +00:00
HJ
e4a1a56dbd Merge branch 'backend-repo-url' into 'develop'
Extract backend repository from nodeinfo

See merge request pleroma/pleroma-fe!1864
2024-12-11 13:35:27 +00:00
HJ
7e92c4c1a3 Merge branch 'deprecate-subscribe' into 'develop'
Use /api/v1/accounts/:id/follow for account subscriptions instead of the deprecated routes

See merge request pleroma/pleroma-fe!1931
2024-12-11 13:34:06 +00:00
HJ
dca5fbb8f5 Merge branch 'show_bookmarks_on_mobile' into 'develop'
Show bookmarks on mobile

Closes #1347

See merge request pleroma/pleroma-fe!1953
2024-12-11 13:30:19 +00:00
Matrix-Sasuke
27d2ac6f66 fix bookmarks not showing on mobile properly 2024-11-14 17:23:05 +01:00
Matrix-Sasuke
4fcd511225 fix bookmarks not showing on mobile 2024-11-14 12:36:31 +01:00
Matrix-Sasuke
eef151e7a6 fix bookmarks not showing on mobile 2024-11-14 11:48:57 +01:00
HJ
1857d0fadd Merge branch 'absolute_time_format' into 'develop'
Absolute time format

Closes #1342

See merge request pleroma/pleroma-fe!1952
2024-11-13 09:19:17 +00:00
Matrix-Sasuke
898881bac1 Absolute time format 2024-11-13 09:19:17 +00:00
HJ
cec2ae2fbd Merge branch 'pleroma/develop' into 'develop'
Markup inconsistencies

See merge request pleroma/pleroma-fe!1950
2024-10-22 08:24:06 +00:00
Pleroma User
2bd16bedce Markup inconsistencies 2024-10-22 08:24:06 +00:00
marcin mikołajczak
d67d24757f Use /api/v1/accounts/:id/follow for account subscriptions instead of the deprecated routes
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>
2024-08-13 19:26:43 +02:00
Haelwenn (lanodan) Monnier
84cab03a1d Extract backend repository from nodeinfo
Also removes extractCommit, could be kept when the forge is git.pleroma.social

Partial fix of https://git.pleroma.social/pleroma/pleroma-fe/-/issues/1283
2023-11-09 08:45:07 +01:00
tusooa
f7daaead6f
Fix stylelint 2023-01-28 21:54:08 -05:00
tusooa
1506d2421d
Get rid of * 2023-01-28 21:44:24 -05:00
tusooa
da58282e90
Merge remote-tracking branch 'upstream/develop' into checkbox-goes-brrr 2023-01-28 21:39:39 -05:00
Xnuk Shuman
f8a0cd2dd3
vertical centering the checkbox 2022-12-20 21:57:19 +09:00
Xnuk Shuman
1bf256b34b
use normal checkbox component label in announcement 2022-12-20 21:57:08 +09:00
69 changed files with 188 additions and 152 deletions

View file

1
changelog.d/checkbox.fix Normal file
View file

@ -0,0 +1 @@
checkbox vertical alignment has been fixed

View file

@ -0,0 +1 @@
Use /api/v1/accounts/:id/follow for account subscriptions instead of the deprecated routes

View file

@ -0,0 +1 @@
fix emoji inconsistencies in notifications, fix some emoji not scaling with interface

View file

@ -0,0 +1 @@
Fix small markup inconsistencies

View file

@ -0,0 +1 @@
proper sticky header for conversations on user page

View file

@ -0,0 +1 @@
reply-or-quote buttons now take less space

View file

@ -0,0 +1 @@
Bookmarks visible again on mobile

View file

View file

@ -0,0 +1 @@
Make UserLink wrappable

View file

@ -0,0 +1 @@
Show only month and day instead of weird "day, hour" format. While at it, fixed typo "defualt" in a comment.

View file

@ -243,7 +243,7 @@ const resolveStaffAccounts = ({ store, accounts }) => {
const getNodeInfo = async ({ store }) => {
try {
const res = await preloadFetch('/nodeinfo/2.0.json')
const res = await preloadFetch('/nodeinfo/2.1.json')
if (res.ok) {
const data = await res.json()
const metadata = data.metadata
@ -280,6 +280,7 @@ const getNodeInfo = async ({ store }) => {
const software = data.software
store.dispatch('setInstanceOption', { name: 'backendVersion', value: software.version })
store.dispatch('setInstanceOption', { name: 'backendRepository', value: software.repository })
store.dispatch('setInstanceOption', { name: 'pleromaBackend', value: software.name === 'pleroma' })
const priv = metadata.private

View file

@ -34,8 +34,9 @@
id="announcement-all-day"
v-model="announcement.allDay"
:disabled="disabled"
/>
<label for="announcement-all-day">{{ $t('announcements.all_day_prompt') }}</label>
>
{{ $t('announcements.all_day_prompt') }}
</Checkbox>
</span>
</div>
</template>

View file

@ -1,9 +1,9 @@
<template>
<div class="panel panel-default announcements-page">
<div class="panel-heading">
<span>
<h1 class="title">
{{ $t('announcements.page_header') }}
</span>
</h1>
</div>
<div class="panel-body">
<section

View file

@ -48,7 +48,7 @@
flex: 1 0;
margin: 0;
--emoji-size: 14px;
--emoji-size: 1em;
&-collapsed-content {
margin-left: 0.7em;

View file

@ -13,7 +13,7 @@
icon="chevron-left"
/>
</button>
<div class="title">
<h1 class="title">
<i18n-t
v-if="id"
keypath="bookmark_folders.editing_folder"
@ -26,7 +26,7 @@
v-else
keypath="bookmark_folders.creating_folder"
/>
</div>
</h1>
</div>
<div class="panel-body">
<div class="input-wrap">

View file

@ -1,9 +1,9 @@
<template>
<div class="Bookmark-folders panel panel-default">
<div class="panel-heading">
<div class="title">
<h1 class="title">
{{ $t('nav.bookmark_folders') }}
</div>
</h1>
<router-link
:to="{ name: 'bookmark-folder-new' }"
class="button-default btn new-folder-button"

View file

@ -7,9 +7,9 @@
class="chat-list panel panel-default"
>
<div class="panel-heading -sticky">
<span class="title">
<h1 class="title">
{{ $t("chats.chats") }}
</span>
</h1>
<button
class="button-default"
@click="newChat"

View file

@ -32,7 +32,7 @@
text-overflow: ellipsis;
white-space: nowrap;
--emoji-size: 14px;
--emoji-size: 1em;
.username {
max-width: 100%;

View file

@ -70,21 +70,26 @@ export default {
display: inline-block;
min-height: 1.2em;
&-indicator,
& .label {
vertical-align: middle;
}
& > &-indicator {
/* Reset .input stuff */
padding: 0;
margin: 0;
position: relative;
line-height: inherit;
display: inline;
padding-left: 1.2em;
display: inline-block;
width: 1.2em;
height: 1.2em;
box-shadow: none;
}
&-indicator::before {
position: absolute;
right: 0;
top: 0;
inset: 0;
display: block;
content: "✓";
transition: color 200ms;

View file

@ -9,7 +9,9 @@
v-if="isExpanded"
class="panel-heading conversation-heading -sticky"
>
<span class="title"> {{ $t('timeline.conversation') }} </span>
<h1 class="title">
{{ $t('timeline.conversation') }}
</h1>
<button
v-if="collapsable"
class="button-unstyled -link"

View file

@ -8,9 +8,9 @@
@click.stop=""
>
<div class="panel-heading dialog-modal-heading">
<div class="title">
<h1 class="title">
<slot name="header" />
</div>
</h1>
</div>
<div class="panel-body dialog-modal-content">
<slot name="default" />

View file

@ -6,7 +6,9 @@
>
<div class="edit-form-modal-panel panel">
<div class="panel-heading">
{{ $t('post_status.edit_status') }}
<h1 class="title">
{{ $t('post_status.edit_status') }}
</h1>
</div>
<PostStatusForm
class="panel-body"

View file

@ -2,9 +2,9 @@
<div class="features-panel">
<div class="panel panel-default base01-background">
<div class="panel-heading timeline-heading base02-background base04">
<div class="title">
<h1 class="title">
{{ $t('features_panel.title') }}
</div>
</h1>
</div>
<div class="panel-body features-panel">
<ul>

View file

@ -1,9 +1,9 @@
<template>
<div class="settings panel panel-default">
<div class="panel-heading">
<div class="title">
<h1 class="title">
{{ $t('nav.friend_requests') }}
</div>
</h1>
</div>
<div class="panel-body">
<FollowRequestCard

View file

@ -1,9 +1,9 @@
<template>
<div class="panel panel-default">
<div class="panel-heading">
<div class="title">
<h1 class="title">
{{ $t("nav.interactions") }}
</div>
</h1>
</div>
<tab-switcher
ref="tabSwitcher"

View file

@ -2,7 +2,9 @@
<div class="Lists panel panel-default">
<div class="panel-heading">
<div class="title">
{{ $t('lists.lists') }}
<h1 class="title">
{{ $t('lists.lists') }}
</h1>
</div>
<router-link
:to="{ name: 'lists-new' }"

View file

@ -3,7 +3,7 @@
<!-- Default panel contents -->
<div class="panel-heading">
{{ $t('login.login') }}
<h1 class="title">{{ $t('login.login') }}</h1>
</div>
<div class="panel-body">

View file

@ -3,7 +3,9 @@
<!-- Default panel contents -->
<div class="panel-heading">
{{ $t('login.heading.recovery') }}
<h1 class="title">
{{ $t('login.heading.recovery') }}
</h1>
</div>
<div class="panel-body">

View file

@ -3,7 +3,9 @@
<!-- Default panel contents -->
<div class="panel-heading">
{{ $t('login.heading.totp') }}
<h1 class="title">
{{ $t('login.heading.totp') }}
</h1>
</div>
<div class="panel-body">

View file

@ -50,13 +50,13 @@
@touchmove.stop="notificationsTouchMove"
>
<div class="panel-heading mobile-notifications-header">
<span class="title">
<h1 class="title">
{{ $t('notifications.notifications') }}
<span
v-if="unseenCountBadgeText"
class="badge -notification unseen-count"
>{{ unseenCountBadgeText }}</span>
</span>
</h1>
<span class="spacer" />
<button
v-if="notificationsAtTop"

View file

@ -10,7 +10,7 @@
background-color: transparent !important;
}
--emoji-size: 14px;
--emoji-size: 1em;
&:hover {
--_still-image-img-visibility: visible;

View file

@ -14,13 +14,13 @@
v-if="!noHeading"
class="notifications-heading panel-heading -sticky"
>
<div class="title">
<h1 class="title">
{{ $t('notifications.notifications') }}
<span
v-if="unseenCountBadgeText"
class="badge -notification unseen-count"
>{{ unseenCountBadgeText }}</span>
</div>
</h1>
<div
v-if="showScrollTop"
class="rightside-button"

View file

@ -1,7 +1,9 @@
<template>
<div class="settings panel panel-default">
<div class="panel-heading">
{{ $t('password_reset.password_reset') }}
<h1 class="title">
{{ $t('password_reset.password_reset') }}
</h1>
</div>
<div class="panel-body">
<form

View file

@ -103,6 +103,36 @@
icon="circle-notch"
/>
</div>
<div
v-if="quotable"
role="radiogroup"
class="btn-group reply-or-quote-selector"
>
<button
:id="`reply-or-quote-option-${randomSeed}-reply`"
class="btn button-default reply-or-quote-option"
:class="{ toggled: !newStatus.quoting }"
tabindex="0"
role="radio"
:aria-labelledby="`reply-or-quote-option-${randomSeed}-reply`"
:aria-checked="!newStatus.quoting"
@click="newStatus.quoting = false"
>
{{ $t('post_status.reply_option') }}
</button>
<button
:id="`reply-or-quote-option-${randomSeed}-quote`"
class="btn button-default reply-or-quote-option"
:class="{ toggled: newStatus.quoting }"
tabindex="0"
role="radio"
:aria-labelledby="`reply-or-quote-option-${randomSeed}-quote`"
:aria-checked="newStatus.quoting"
@click="newStatus.quoting = true"
>
{{ $t('post_status.quote_option') }}
</button>
</div>
</div>
<div
v-if="showPreview"
@ -126,36 +156,6 @@
class="preview-status"
/>
</div>
<div
v-if="quotable"
role="radiogroup"
class="btn-group reply-or-quote-selector"
>
<button
:id="`reply-or-quote-option-${randomSeed}-reply`"
class="btn button-default reply-or-quote-option"
:class="{ toggled: !newStatus.quoting }"
tabindex="0"
role="radio"
:aria-labelledby="`reply-or-quote-option-${randomSeed}-reply`"
:aria-checked="!newStatus.quoting"
@click="newStatus.quoting = false"
>
{{ $t('post_status.reply_option') }}
</button>
<button
:id="`reply-or-quote-option-${randomSeed}-quote`"
class="btn button-default reply-or-quote-option"
:class="{ toggled: newStatus.quoting }"
tabindex="0"
role="radio"
:aria-labelledby="`reply-or-quote-option-${randomSeed}-quote`"
:aria-checked="newStatus.quoting"
@click="newStatus.quoting = true"
>
{{ $t('post_status.quote_option') }}
</button>
</div>
<EmojiInput
v-if="!disableSubject && (newStatus.spoilerText || alwaysShowSubject)"
v-model="newStatus.spoilerText"
@ -447,6 +447,8 @@
.reply-or-quote-selector {
margin-bottom: 0.5em;
display: grid;
grid-template-columns: 1fr 1fr;
}
.text-format {

View file

@ -7,7 +7,9 @@
>
<div class="post-form-modal-panel panel">
<div class="panel-heading">
{{ $t('post_status.new_status') }}
<h1 class="title">
{{ $t('post_status.new_status') }}
</h1>
</div>
<PostStatusForm
class="panel-body"

View file

@ -1,7 +1,9 @@
<template>
<div class="settings panel panel-default">
<div class="panel-heading">
{{ $t('registration.registration') }}
<h1 class="title">
{{ $t('registration.registration') }}
</h1>
</div>
<div
v-if="!hasSignUpNotice"

View file

@ -1,7 +1,9 @@
<template>
<div class="panel panel-default">
<div class="panel-heading">
{{ $t('remote_user_resolver.remote_user_resolver') }}
<h1 class="title">
{{ $t('remote_user_resolver.remote_user_resolver') }}
</h1>
</div>
<div class="panel-body">
<p>

View file

@ -1,9 +1,9 @@
<template>
<div class="Search panel panel-default">
<div class="panel-heading">
<div class="title">
<h1 class="title">
{{ $t('nav.search') }}
</div>
</h1>
</div>
<div class="panel-body search-input-container">
<input

View file

@ -84,7 +84,7 @@ label.Select {
width: 0.875em;
font-family: var(--font);
line-height: 2;
z-index: 0;
z-index: 1;
pointer-events: none;
}
}

View file

@ -7,9 +7,9 @@
>
<div class="settings-modal-panel panel">
<div class="panel-heading">
<span class="title">
<h1 class="title">
{{ modalMode === 'user' ? $t('settings.settings') : $t('admin_dash.window_title') }}
</span>
</h1>
<transition name="fade">
<div
v-if="currentSaveStateNotice"

View file

@ -3,12 +3,12 @@
<div class="underlay underlay-preview" />
<div class="panel dummy">
<div class="panel-heading">
<div class="title">
<h1 class="title">
{{ $t('settings.style.preview.header') }}
<span class="badge -notification">
99
</span>
</div>
</h1>
<span class="faint">
{{ $t('settings.style.preview.header_faint') }}
</span>

View file

@ -1,22 +1,17 @@
import { extractCommit } from 'src/services/version/version.service'
const pleromaFeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma-fe/commit/'
const pleromaBeCommitUrl = 'https://git.pleroma.social/pleroma/pleroma/commit/'
const VersionTab = {
data () {
const instance = this.$store.state.instance
return {
backendVersion: instance.backendVersion,
backendRepository: instance.backendRepository,
frontendVersion: instance.frontendVersion
}
},
computed: {
frontendVersionLink () {
return pleromaFeCommitUrl + this.frontendVersion
},
backendVersionLink () {
return pleromaBeCommitUrl + extractCommit(this.backendVersion)
}
}
}

View file

@ -7,7 +7,7 @@
<ul class="option-list">
<li>
<a
:href="backendVersionLink"
:href="backendRepository"
target="_blank"
>{{ backendVersion }}</a>
</li>

View file

@ -9,14 +9,14 @@
:class="{ 'shout-heading': floating }"
@click.stop.prevent="togglePanel"
>
<div class="title">
<h1 class="title">
{{ $t('shoutbox.title') }}
<FAIcon
v-if="floating"
icon="times"
class="close-icon"
/>
</div>
</h1>
</div>
<div class="panel-body shout-window">
<div

View file

@ -76,6 +76,21 @@
/> {{ $t("nav.lists") }}
</router-link>
</li>
<li
v-if="currentUser"
@click="toggleDrawer"
>
<router-link
:to="{ name: 'bookmarks' }"
class="menu-item"
>
<FAIcon
fixed-width
class="fa-scale-110 fa-old-padding"
icon="bookmark"
/> {{ $t("nav.bookmarks") }}
</router-link>
</li>
<li
v-if="currentUser && pleromaChatMessagesAvailable"
@click="toggleDrawer"

View file

@ -72,7 +72,7 @@
text-overflow: ellipsis;
--_still_image-label-scale: 0.25;
--emoji-size: 14px;
--emoji-size: 1em;
}
.status-favicon {

View file

@ -113,7 +113,7 @@
align-items: top;
flex-direction: row;
--emoji-size: 16px;
--emoji-size: calc(var(--emojiSize, 32px) / 2);
& .body,
& .attachments {

View file

@ -6,7 +6,9 @@
>
<div class="status-history-modal-panel panel">
<div class="panel-heading">
{{ $t('status.status_history') }} ({{ historyCount }})
<h1 class="title">
{{ $t('status.status_history') }} ({{ historyCount }})
</h1>
</div>
<div class="panel-body">
<div

View file

@ -61,7 +61,7 @@ export default {
})
} else if (DateUtils.isSameMonth(this.timeAsDate, now)) {
return new Intl.DateTimeFormat(this.browserLocale, {
hour: 'numeric',
month: 'short',
day: 'numeric'
})
} else if (DateUtils.isSameYear(this.timeAsDate, now)) {

View file

@ -1,12 +1,12 @@
<template>
<div :class="['Timeline', classes.root]">
<div :class="classes.header">
<div :class="classes.header" v-if="!embedded">
<TimelineMenu
v-if="!embedded"
:timeline-name="timelineName"
/>
<div
v-if="showScrollTop && !embedded"
v-if="showScrollTop"
class="rightside-button"
>
<button
@ -24,7 +24,7 @@
</FALayers>
</button>
</div>
<template v-if="mobileLayout && !embedded">
<template v-if="mobileLayout">
<div
v-if="showLoadButton"
class="rightside-button"
@ -44,7 +44,7 @@
</button>
</div>
<div
v-else-if="!embedded"
v-else
class="loadmore-text faint veryfaint rightside-icon"
:title="$t('timeline.up_to_date')"
:aria-disabled="true"
@ -65,7 +65,7 @@
{{ loadButtonString }}
</button>
<div
v-else-if="!embedded"
v-else
class="loadmore-text faint"
@click.prevent
>
@ -73,11 +73,9 @@
</div>
</template>
<QuickFilterSettings
v-if="!embedded"
class="rightside-button"
/>
<QuickViewSettings
v-if="!embedded"
class="rightside-button"
/>
</div>
@ -148,6 +146,8 @@
/>
</div>
</teleport>
<!-- spacer to avoid having empty shrug -->
<span v-if="embedded && footerSlipgate" />
</div>
</div>
</template>

View file

@ -29,8 +29,8 @@
</ul>
</template>
<template #trigger>
<span class="button-unstyled title timeline-menu-title">
<span class="timeline-title">{{ timelineName() }}</span>
<span class="button-unstyled timeline-menu-title">
<h1 class="title timeline-title">{{ timelineName() }}</h1>
<span>
<FAIcon
size="sm"

View file

@ -9,9 +9,9 @@
:class="{ '-peek': !showingMore }"
>
<div class="panel-heading">
<span class="title">
<h1 class="title">
{{ $t('update.big_update_title') }}
</span>
</h1>
</div>
<div class="panel-body">
<div

View file

@ -208,7 +208,7 @@
/>
<template v-if="relationship.following">
<ProgressButton
v-if="!relationship.subscribing"
v-if="!relationship.notifying"
class="btn button-default"
:click="subscribeUser"
:title="$t('user_card.subscribe')"

View file

@ -1,12 +1,16 @@
<template>
<router-link
:title="user.screen_name_ui"
:to="userProfileLink(user)"
>
{{ at ? '@' : '' }}{{ user.screen_name_ui }}<UnicodeDomainIndicator
:user="user"
/>
</router-link>
<div class="user-profile-link">
<router-link
:title="user.screen_name_ui"
:to="userProfileLink(user)"
>
<slot>
{{ at ? '@' : '' }}{{ user.screen_name_ui }}<UnicodeDomainIndicator
:user="user"
/>
</slot>
</router-link>
</div>
</template>
<script>

View file

@ -51,7 +51,7 @@
.user-list-popover {
padding: 0.5em;
--emoji-size: 16px;
--emoji-size: calc(var(--emojiSize, 32px) / 2);
.user-list-row {
padding: 0.25em;

View file

@ -142,9 +142,9 @@
class="panel user-profile-placeholder"
>
<div class="panel-heading">
<div class="title">
<h1 class="title">
{{ $t('settings.profile_tab') }}
</div>
</h1>
</div>
<div>
<span v-if="error">{{ error }}</span>
@ -166,7 +166,7 @@
flex-basis: 500px;
// No sticky header on user profile
--currentPanelStack: 1;
--currentPanelStack: 0;
.user-birthday {
margin: 0 0.75em 0.5em;

View file

@ -6,7 +6,7 @@
<div class="user-reporting-panel panel">
<div class="panel-heading">
<i18n-t
tag="div"
tag="h1"
keypath="user_reporting.title"
class="title"
>

View file

@ -1,7 +1,9 @@
<template>
<div class="panel panel-default">
<div class="panel-heading">
{{ $t('who_to_follow.who_to_follow') }}
<h1 class="title">
{{ $t('who_to_follow.who_to_follow') }}
</h1>
</div>
<div class="panel-body">
<FollowCard

View file

@ -2,9 +2,9 @@
<div class="who-to-follow-panel">
<div class="panel panel-default base01-background">
<div class="panel-heading timeline-heading base02-background base04">
<div class="title">
<h1 class="title">
{{ $t('who_to_follow.who_to_follow') }}
</div>
</h1>
</div>
<div class="who-to-follow">
<p

View file

@ -76,7 +76,9 @@ const persistedStateOptions = {
window.splashError = e => splashError(i18n, e)
window.splashUpdate = key => {
document.querySelector('#status').textContent = i18n.global.t(key)
if (document.querySelector('#status')) {
document.querySelector('#status').textContent = i18n.global.t(key)
}
}
try {

View file

@ -185,7 +185,7 @@ export const defaultState = {
closingDrawerMarksAsSeen: undefined, // instance default
unseenAtTop: undefined, // instance default
ignoreInactionableSeen: undefined, // instance default
useAbsoluteTimeFormat: undefined, // instance defualt
useAbsoluteTimeFormat: undefined, // instance default
absoluteTimeFormatMinAge: undefined // instance default
}

View file

@ -159,6 +159,7 @@ const defaultState = {
// Version Information
backendVersion: '',
backendRepository: '',
frontendVersion: '',
pollsAvailable: false,

View file

@ -452,11 +452,11 @@ const users = {
commit('clearFollowers', userId)
},
subscribeUser ({ rootState, commit }, id) {
return rootState.api.backendInteractor.subscribeUser({ id })
return rootState.api.backendInteractor.followUser({ id, notify: true })
.then((relationship) => commit('updateUserRelationship', [relationship]))
},
unsubscribeUser ({ rootState, commit }, id) {
return rootState.api.backendInteractor.unsubscribeUser({ id })
return rootState.api.backendInteractor.followUser({ id, notify: false })
.then((relationship) => commit('updateUserRelationship', [relationship]))
},
toggleActivationStatus ({ rootState, commit }, { user }) {

View file

@ -115,6 +115,8 @@
.title {
font-size: 1.3em;
margin: 0;
font-weight: normal;
}
.alert {

View file

@ -68,8 +68,6 @@ const MASTODON_UNBLOCK_USER_URL = id => `/api/v1/accounts/${id}/unblock`
const MASTODON_MUTE_USER_URL = id => `/api/v1/accounts/${id}/mute`
const MASTODON_UNMUTE_USER_URL = id => `/api/v1/accounts/${id}/unmute`
const MASTODON_REMOVE_USER_FROM_FOLLOWERS = id => `/api/v1/accounts/${id}/remove_from_followers`
const MASTODON_SUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/subscribe`
const MASTODON_UNSUBSCRIBE_USER = id => `/api/v1/pleroma/accounts/${id}/unsubscribe`
const MASTODON_USER_NOTE_URL = id => `/api/v1/accounts/${id}/note`
const MASTODON_BOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/bookmark`
const MASTODON_UNBOOKMARK_STATUS_URL = id => `/api/v1/statuses/${id}/unbookmark`
@ -275,6 +273,7 @@ const followUser = ({ id, credentials, ...options }) => {
const url = MASTODON_FOLLOW_URL(id)
const form = {}
if (options.reblogs !== undefined) { form.reblogs = options.reblogs }
if (options.notify !== undefined) { form.notify = options.notify }
return fetch(url, {
body: JSON.stringify(form),
headers: {
@ -1180,14 +1179,6 @@ const unmuteUser = ({ id, credentials }) => {
return promisedRequest({ url: MASTODON_UNMUTE_USER_URL(id), credentials, method: 'POST' })
}
const subscribeUser = ({ id, credentials }) => {
return promisedRequest({ url: MASTODON_SUBSCRIBE_USER(id), credentials, method: 'POST' })
}
const unsubscribeUser = ({ id, credentials }) => {
return promisedRequest({ url: MASTODON_UNSUBSCRIBE_USER(id), credentials, method: 'POST' })
}
const fetchBlocks = ({ maxId, credentials }) => {
const query = new URLSearchParams({ with_relationships: true })
if (maxId) {
@ -1978,8 +1969,6 @@ const apiService = {
fetchMutes,
muteUser,
unmuteUser,
subscribeUser,
unsubscribeUser,
fetchBlocks,
fetchOAuthTokens,
revokeOAuthToken,

View file

@ -118,7 +118,12 @@ export const tryLoadCache = async () => {
}
}
export const applyTheme = (input, onEagerFinish = data => {}, onFinish = data => {}, debug) => {
export const applyTheme = (
input,
onEagerFinish = data => {},
onFinish = data => {},
debug
) => {
const eagerStyles = createStyleSheet(EAGER_STYLE_ID)
const lazyStyles = createStyleSheet(LAZY_STYLE_ID)

View file

@ -1,6 +0,0 @@
export const extractCommit = versionString => {
const regex = /-g(\w+)/i
const matches = versionString.match(regex)
return matches ? matches[1] : ''
}

View file

@ -1,11 +0,0 @@
import { extractCommit } from 'src/services/version/version.service.js'
describe('extractCommit', () => {
it('return short commit hash following "-g" characters', () => {
expect(extractCommit('1.0.0-45-g5e7aeebc')).to.eql('5e7aeebc')
})
it('return short commit hash without branch name', () => {
expect(extractCommit('1.0.0-45-g5e7aeebc-branch')).to.eql('5e7aeebc')
})
})