-
+
+
+
+
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 cd0a7afa06cafc93510286d35a60e9e40ead36bf Mon Sep 17 00:00:00 2001
From: taehoon
Date: Wed, 24 Apr 2019 13:56:53 -0400
Subject: remove pinned timeline, instead, use simple entity of user object
---
src/components/timeline/timeline.js | 3 +--
src/components/timeline/timeline.vue | 3 +--
src/components/user_profile/user_profile.js | 13 +++++++------
src/components/user_profile/user_profile.vue | 19 ++++++++++---------
src/modules/statuses.js | 14 ++++++++++----
src/modules/users.js | 3 +++
.../backend_interactor_service.js | 2 ++
.../entity_normalizer/entity_normalizer.service.js | 2 ++
8 files changed, 36 insertions(+), 23 deletions(-)
(limited to 'src/components/user_profile/user_profile.vue')
diff --git a/src/components/timeline/timeline.js b/src/components/timeline/timeline.js
index 953b4a06..19d9a9ac 100644
--- a/src/components/timeline/timeline.js
+++ b/src/components/timeline/timeline.js
@@ -11,8 +11,7 @@ const Timeline = {
'userId',
'tag',
'embedded',
- 'count',
- 'noLoadMore'
+ 'count'
],
data () {
return {
diff --git a/src/components/timeline/timeline.vue b/src/components/timeline/timeline.vue
index 870fe4f5..e6a8d458 100644
--- a/src/components/timeline/timeline.vue
+++ b/src/components/timeline/timeline.vue
@@ -21,12 +21,11 @@
class="status-fadein"
:key="status.id"
:statusoid="status"
- :pinned="timelineName === 'pinned'"
:collapsable="true"
/>