-
+
+
+
+
diff --git a/src/modules/statuses.js b/src/modules/statuses.js
index 176e5f42..94d7f30b 100644
--- a/src/modules/statuses.js
+++ b/src/modules/statuses.js
@@ -47,7 +47,8 @@ export const defaultState = () => ({
publicAndExternal: emptyTl(),
friends: emptyTl(),
tag: emptyTl(),
- dms: emptyTl()
+ dms: emptyTl(),
+ pinned: emptyTl()
}
})
diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js
index 65cebe78..03137d20 100644
--- a/src/services/api/api.service.js
+++ b/src/services/api/api.service.js
@@ -506,6 +506,19 @@ const fetchTimeline = ({timeline, credentials, since = false, until = false, use
.then((data) => data.map(isNotifications ? parseNotification : parseStatus))
}
+const fetchPinnedStatuses = ({ id, credentials }) => {
+ const url = MASTODON_USER_TIMELINE_URL(id) + '?pinned=true'
+ return fetch(url, { headers: authHeaders(credentials) })
+ .then((data) => {
+ if (data.ok) {
+ return data
+ }
+ throw new Error('Error fetching pinned timeline', data)
+ })
+ .then((data) => data.json())
+ .then((data) => data.map(parseStatus))
+}
+
const verifyCredentials = (user) => {
return fetch(LOGIN_URL, {
method: 'POST',
@@ -726,6 +739,7 @@ const reportUser = ({credentials, userId, statusIds, comment, forward}) => {
const apiService = {
verifyCredentials,
fetchTimeline,
+ fetchPinnedStatuses,
fetchConversation,
fetchStatus,
fetchFriends,
diff --git a/src/services/timeline_fetcher/timeline_fetcher.service.js b/src/services/timeline_fetcher/timeline_fetcher.service.js
index 8e954cdf..e8d9a2ed 100644
--- a/src/services/timeline_fetcher/timeline_fetcher.service.js
+++ b/src/services/timeline_fetcher/timeline_fetcher.service.js
@@ -16,6 +16,12 @@ const update = ({store, statuses, timeline, showImmediately, userId}) => {
}
const fetchAndUpdate = ({store, credentials, timeline = 'friends', older = false, showImmediately = false, userId = false, tag = false, until}) => {
+ if (timeline === 'pinned') {
+ return apiService.fetchPinnedStatuses({ id: userId, credentials })
+ .then(statuses => {
+ update({ store, statuses, timeline, showImmediately, userId })
+ })
+ }
const args = { timeline, credentials }
const rootState = store.rootState || store.state
const timelineData = rootState.statuses.timelines[camelCase(timeline)]
--
cgit v1.2.3-70-g09d2
From 32be0e15d11c14513ff4fdc984aeaa4a5f462eac Mon Sep 17 00:00:00 2001
From: taehoon
Date: Fri, 26 Apr 2019 15:46:40 -0400
Subject: use pinned property from status directly
---
src/components/conversation/conversation.js | 3 +--
src/components/conversation/conversation.vue | 1 -
src/components/status/status.js | 3 +--
src/components/status/status.vue | 2 +-
src/components/user_profile/user_profile.vue | 1 -
5 files changed, 3 insertions(+), 7 deletions(-)
(limited to 'src/components/conversation/conversation.js')
diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js
index fc239ee9..ffeb7244 100644
--- a/src/components/conversation/conversation.js
+++ b/src/components/conversation/conversation.js
@@ -41,8 +41,7 @@ const conversation = {
props: [
'statusoid',
'collapsable',
- 'isPage',
- 'pinned'
+ 'isPage'
],
created () {
if (this.isPage) {
diff --git a/src/components/conversation/conversation.vue b/src/components/conversation/conversation.vue
index 40011113..d04ff722 100644
--- a/src/components/conversation/conversation.vue
+++ b/src/components/conversation/conversation.vue
@@ -13,7 +13,6 @@
:key="status.id"
:inlineExpanded="collapsable && isExpanded"
:statusoid="status"
- :pinned="pinned"
:expandable='!isExpanded'
:focused="focused(status.id)"
:inConversation="isExpanded"
diff --git a/src/components/status/status.js b/src/components/status/status.js
index fa4b426c..09a2a010 100644
--- a/src/components/status/status.js
+++ b/src/components/status/status.js
@@ -26,8 +26,7 @@ const Status = {
'replies',
'isPreview',
'noHeading',
- 'inlineExpanded',
- 'pinned'
+ 'inlineExpanded'
],
data () {
return {
diff --git a/src/components/status/status.vue b/src/components/status/status.vue
index 1644f6b0..41662576 100644
--- a/src/components/status/status.vue
+++ b/src/components/status/status.vue
@@ -13,7 +13,7 @@
-
+
Pinned
diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue
index 46561e2a..1e104403 100644
--- a/src/components/user_profile/user_profile.vue
+++ b/src/components/user_profile/user_profile.vue
@@ -10,7 +10,6 @@
class="status-fadein"
:key="status.id"
:statusoid="status"
- :pinned="true"
:collapsable="true"
/>
--
cgit v1.2.3-70-g09d2
From f68653d0dd0b374aa28eca35b424b6c834c701d6 Mon Sep 17 00:00:00 2001
From: taehoon
Date: Tue, 30 Apr 2019 11:06:22 -0400
Subject: show pinned state only in the user timeline
---
src/components/conversation/conversation.js | 3 ++-
src/components/conversation/conversation.vue | 1 +
src/components/status/status.js | 3 ++-
src/components/status/status.vue | 2 +-
src/components/user_profile/user_profile.vue | 1 +
5 files changed, 7 insertions(+), 3 deletions(-)
(limited to 'src/components/conversation/conversation.js')
diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js
index ffeb7244..b3074590 100644
--- a/src/components/conversation/conversation.js
+++ b/src/components/conversation/conversation.js
@@ -41,7 +41,8 @@ const conversation = {
props: [
'statusoid',
'collapsable',
- 'isPage'
+ 'isPage',
+ 'showPinned'
],
created () {
if (this.isPage) {
diff --git a/src/components/conversation/conversation.vue b/src/components/conversation/conversation.vue
index d04ff722..0b4998c3 100644
--- a/src/components/conversation/conversation.vue
+++ b/src/components/conversation/conversation.vue
@@ -14,6 +14,7 @@
:inlineExpanded="collapsable && isExpanded"
:statusoid="status"
:expandable='!isExpanded'
+ :showPinned="showPinned"
:focused="focused(status.id)"
:inConversation="isExpanded"
:highlight="getHighlight()"
diff --git a/src/components/status/status.js b/src/components/status/status.js
index a1ffb026..5b3d98c3 100644
--- a/src/components/status/status.js
+++ b/src/components/status/status.js
@@ -26,7 +26,8 @@ const Status = {
'replies',
'isPreview',
'noHeading',
- 'inlineExpanded'
+ 'inlineExpanded',
+ 'showPinned'
],
data () {
return {
diff --git a/src/components/status/status.vue b/src/components/status/status.vue
index 8575a95e..997c1b31 100644
--- a/src/components/status/status.vue
+++ b/src/components/status/status.vue
@@ -16,7 +16,7 @@