diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/components/mentions/mentions.js | 13 | ||||
| -rw-r--r-- | src/components/nav_panel/nav_panel.vue | 3 | ||||
| -rw-r--r-- | src/components/notifications/notifications.scss | 6 | ||||
| -rw-r--r-- | src/components/notifications/notifications.vue | 2 | ||||
| -rw-r--r-- | src/components/status/status.js | 7 | ||||
| -rw-r--r-- | src/components/status/status.vue | 30 | ||||
| -rw-r--r-- | src/components/timeline/timeline.js | 3 | ||||
| -rw-r--r-- | src/components/timeline/timeline.vue | 10 | ||||
| -rw-r--r-- | src/modules/statuses.js | 21 | ||||
| -rw-r--r-- | src/services/api/api.service.js | 8 | ||||
| -rw-r--r-- | src/services/backend_interactor_service/backend_interactor_service.js | 5 | ||||
| -rw-r--r-- | src/services/style_setter/style_setter.js | 1 | ||||
| -rw-r--r-- | src/services/timeline_fetcher/timeline_fetcher.service.js | 13 |
13 files changed, 59 insertions, 63 deletions
diff --git a/src/components/mentions/mentions.js b/src/components/mentions/mentions.js index 46a1c63e..841d5aa4 100644 --- a/src/components/mentions/mentions.js +++ b/src/components/mentions/mentions.js @@ -2,25 +2,12 @@ import Timeline from '../timeline/timeline.vue' const Mentions = { computed: { - username () { - return this.$route.params.username - }, timeline () { return this.$store.state.statuses.timelines.mentions } }, components: { Timeline - }, - created () { - this.$store.state.api.backendInteractor.fetchMentions({username: this.username}) - .then((mentions) => { - this.$store.dispatch('addNewStatuses', { - statuses: mentions, - timeline: 'mentions', - showImmediately: true - }) - }) } } diff --git a/src/components/nav_panel/nav_panel.vue b/src/components/nav_panel/nav_panel.vue index 1d96f4d6..b62b4148 100644 --- a/src/components/nav_panel/nav_panel.vue +++ b/src/components/nav_panel/nav_panel.vue @@ -1,7 +1,7 @@ <template> <div class="nav-panel"> <div class="panel panel-default base02-background"> - <ul> + <ul class="base03-border"> <li v-if='currentUser'> <router-link class="base01-background" to='/main/friends'> Timeline @@ -38,6 +38,7 @@ .nav-panel li { border-bottom: 1px solid; + border-color: inherit; padding: 0; &:first-child a { border-top-right-radius: 10px; diff --git a/src/components/notifications/notifications.scss b/src/components/notifications/notifications.scss index 6ad7ec1e..5cce7a73 100644 --- a/src/components/notifications/notifications.scss +++ b/src/components/notifications/notifications.scss @@ -33,7 +33,8 @@ // which does not happen with 10px vs 4px + 6px. padding: 0.4em 0 0 10px; display: flex; - border-bottom: 1px solid silver; + border-bottom: 1px solid; + border-bottom-color: inherit; .text { @@ -72,7 +73,8 @@ } &:last-child { - border: none + border-bottom: none; + border-radius: 0 0 10px 10px; } } diff --git a/src/components/notifications/notifications.vue b/src/components/notifications/notifications.vue index 91f6cfdc..661d842c 100644 --- a/src/components/notifications/notifications.vue +++ b/src/components/notifications/notifications.vue @@ -6,7 +6,7 @@ Notifications <button @click.prevent="markAsSeen" class="base06 base02-background read-button">Read!</button> </div> - <div class="panel-body"> + <div class="panel-body base03-border"> <div v-for="notification in visibleNotifications" class="notification" :class='{"unseen": !notification.seen}'> <a :href="notification.action.user.statusnet_profile_url"> <img class='avatar' :src="notification.action.user.profile_image_url_original"> diff --git a/src/components/status/status.js b/src/components/status/status.js index 3f34af36..87fff879 100644 --- a/src/components/status/status.js +++ b/src/components/status/status.js @@ -36,7 +36,12 @@ const Status = { return !!this.$store.state.users.currentUser }, muted () { return !this.unmuted && this.status.user.muted }, - isReply () { return !!this.status.in_reply_to_status_id } + isReply () { return !!this.status.in_reply_to_status_id }, + borderColor () { + return { + borderBottomColor: this.$store.state.config.colors['base02'] + } + } }, components: { Attachment, diff --git a/src/components/status/status.vue b/src/components/status/status.vue index a5abbf6b..62a55505 100644 --- a/src/components/status/status.vue +++ b/src/components/status/status.vue @@ -1,5 +1,5 @@ <template> - <div class="status-el base00-background" v-if="!status.deleted" v-bind:class="[{ 'expanded-status': !expandable }, { 'base01-background': focused }, { 'status-conversation': inConversation }]"> + <div class="status-el base00-background base03-border" v-if="!status.deleted" v-bind:class="[{ 'base01-background': focused }, { 'status-conversation': inConversation }]" > <template v-if="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> @@ -73,18 +73,20 @@ <div class='status-actions'> <div> <a href="#" v-on:click.prevent="toggleReplying"> - <i class='fa icon-reply'></i> + <i class="fa icon-reply" :class="{'icon-reply-active': replying}"></i> </a> </div> <retweet-button :status=status></retweet-button> <favorite-button :status=status></favorite-button> <delete-button :status=status></delete-button> </div> - - <post-status-form v-if="replying" :reply-to="status.id" :attentions="status.attentions" :repliedUser="status.user" v-on:posted="toggleReplying"></post-status-form> </div> </div> </div> + <div class="status base00-background container" v-if="replying"> + <div class="reply-left"/> + <post-status-form class="reply-body" :reply-to="status.id" :attentions="status.attentions" :repliedUser="status.user" v-on:posted="toggleReplying"/> + </div> </template> </div> </template> @@ -98,6 +100,7 @@ overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; + border-left-width: 0px; .user-content { min-height: 52px; @@ -129,7 +132,7 @@ } .status-conversation { - border-left: 4px solid rgba(255, 48, 16, 0.65); + border-left-style: solid; } .status-actions { @@ -140,6 +143,10 @@ color: $blue; } + .icon-reply-active { + color: $blue; + } + .status .avatar { width: 48px; } @@ -151,6 +158,9 @@ .status { padding: 0.65em 0.7em 0.8em 0.8em; border-bottom: 1px solid; + border-bottom-color: inherit; + border-left: 4px rgba(255, 48, 16, 0.65); + border-left-style: inherit; } .muted button { margin-left: auto; @@ -168,4 +178,14 @@ margin-bottom: 1em; margin-top: 0.2em; } + + .reply-left { + flex: 0; + min-width: 48px; + } + + .reply-body { + flex: 1; + } + </style> diff --git a/src/components/timeline/timeline.js b/src/components/timeline/timeline.js index b4e80fe1..d5a9adcc 100644 --- a/src/components/timeline/timeline.js +++ b/src/components/timeline/timeline.js @@ -8,6 +8,9 @@ const Timeline = { 'timelineName', 'title' ], + computed: { + timelineError () { return this.$store.state.statuses.error } + }, components: { Status, StatusOrConversation diff --git a/src/components/timeline/timeline.vue b/src/components/timeline/timeline.vue index ac074f3c..84defac7 100644 --- a/src/components/timeline/timeline.vue +++ b/src/components/timeline/timeline.vue @@ -4,13 +4,13 @@ <div class="title"> {{title}} </div> - <button @click.prevent="showNewStatuses" class="base06 base02-background loadmore-button" v-if="timeline.newStatusCount > 0 && !timeline.error"> + <button @click.prevent="showNewStatuses" class="base06 base02-background loadmore-button" v-if="timeline.newStatusCount > 0 && !timelineError"> Show new ({{timeline.newStatusCount}}) </button> - <button @click.prevent class="base06 error no-press loadmore-button" v-if="timeline.error"> + <button @click.prevent class="base06 error no-press loadmore-button" v-if="timelineError"> Error fetching updates </button> - <button @click.prevent class="base04 base01-background no-press loadmore-button" v-if="!timeline.newStatusCount > 0 && !timeline.error"> + <button @click.prevent class="base04 base01-background no-press loadmore-button" v-if="!timeline.newStatusCount > 0 && !timelineError"> Up-to-date </button> </div> @@ -18,9 +18,9 @@ <div class="timeline"> <status-or-conversation v-for="status in timeline.visibleStatuses" :key="status.id" v-bind:statusoid="status"></status-or-conversation> <a href="#" v-on:click.prevent='fetchOlderStatuses()' v-if="!timeline.loading"> - <div class="base01-background base05-border new-status-notification text-center">Load older statuses.</div> + <div class="base01-background base03-border new-status-notification text-center">Load older statuses.</div> </a> - <div class="base01-background base05-border new-status-notification text-center" v-else>...</div> + <div class="base01-background base03-border new-status-notification text-center" v-else>...</div> </div> </div> </div> diff --git a/src/modules/statuses.js b/src/modules/statuses.js index e4528520..051ec71b 100644 --- a/src/modules/statuses.js +++ b/src/modules/statuses.js @@ -8,6 +8,7 @@ export const defaultState = { maxId: 0, notifications: [], favorites: new Set(), + error: false, timelines: { mentions: { statuses: [], @@ -18,8 +19,7 @@ export const defaultState = { newStatusCount: 0, maxId: 0, minVisibleId: 0, - loading: false, - error: false + loading: false }, public: { statuses: [], @@ -30,8 +30,7 @@ export const defaultState = { newStatusCount: 0, maxId: 0, minVisibleId: 0, - loading: false, - error: false + loading: false }, publicAndExternal: { statuses: [], @@ -42,8 +41,7 @@ export const defaultState = { newStatusCount: 0, maxId: 0, minVisibleId: 0, - loading: false, - error: false + loading: false }, friends: { statuses: [], @@ -54,8 +52,7 @@ export const defaultState = { newStatusCount: 0, maxId: 0, minVisibleId: 0, - loading: false, - error: false + loading: false } } } @@ -298,8 +295,8 @@ export const mutations = { const newStatus = state.allStatusesObject[id] newStatus.nsfw = nsfw }, - setError (state, { timeline, value }) { - state.timelines[timeline].error = value + setError (state, { value }) { + state.error = value }, markNotificationsAsSeen (state, notifications) { each(notifications, (notification) => { @@ -314,8 +311,8 @@ const statuses = { addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false }) { commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser }) }, - setError ({ rootState, commit }, { timeline, value }) { - commit('setError', { timeline, value }) + setError ({ rootState, commit }, { value }) { + commit('setError', { value }) }, deleteStatus ({ rootState, commit }, status) { commit('setDeleted', { status }) diff --git a/src/services/api/api.service.js b/src/services/api/api.service.js index f172f769..4dfc0a02 100644 --- a/src/services/api/api.service.js +++ b/src/services/api/api.service.js @@ -62,12 +62,6 @@ const fetchAllFollowing = ({username, credentials}) => { .then((data) => data.json()) } -const fetchMentions = ({username, sinceId = 0, credentials}) => { - let url = `${MENTIONS_URL}?since_id=${sinceId}&screen_name=${username}` - return fetch(url, { headers: authHeaders(credentials) }) - .then((data) => data.json()) -} - const fetchConversation = ({id, credentials}) => { let url = `${CONVERSATION_URL}/${id}.json?count=100` return fetch(url, { headers: authHeaders(credentials) }) @@ -100,6 +94,7 @@ const fetchTimeline = ({timeline, credentials, since = false, until = false}) => const timelineUrls = { public: PUBLIC_TIMELINE_URL, friends: FRIENDS_TIMELINE_URL, + mentions: MENTIONS_URL, 'publicAndExternal': PUBLIC_AND_EXTERNAL_TIMELINE_URL } @@ -192,7 +187,6 @@ const apiService = { fetchTimeline, fetchConversation, fetchStatus, - fetchMentions, fetchFriends, followUser, unfollowUser, diff --git a/src/services/backend_interactor_service/backend_interactor_service.js b/src/services/backend_interactor_service/backend_interactor_service.js index d379e602..bc68d02c 100644 --- a/src/services/backend_interactor_service/backend_interactor_service.js +++ b/src/services/backend_interactor_service/backend_interactor_service.js @@ -10,10 +10,6 @@ const backendInteractorService = (credentials) => { return apiService.fetchConversation({id, credentials}) } - const fetchMentions = ({sinceId, username}) => { - return apiService.fetchMentions({sinceId, username, credentials}) - } - const fetchFriends = () => { return apiService.fetchFriends({credentials}) } @@ -43,7 +39,6 @@ const backendInteractorService = (credentials) => { const backendInteractorServiceInstance = { fetchStatus, fetchConversation, - fetchMentions, fetchFriends, followUser, unfollowUser, diff --git a/src/services/style_setter/style_setter.js b/src/services/style_setter/style_setter.js index 7129852d..59d5a7de 100644 --- a/src/services/style_setter/style_setter.js +++ b/src/services/style_setter/style_setter.js @@ -45,6 +45,7 @@ const setStyle = (href, commit) => { styleSheet.insertRule(`a { color: ${colors['base08']}`, 'index-max') styleSheet.insertRule(`body { color: ${colors['base05']}`, 'index-max') styleSheet.insertRule(`.base05-border { border-color: ${colors['base05']}`, 'index-max') + styleSheet.insertRule(`.base03-border { border-color: ${colors['base03']}`, 'index-max') body.style.display = 'initial' } cssEl.addEventListener('load', setDynamic) diff --git a/src/services/timeline_fetcher/timeline_fetcher.service.js b/src/services/timeline_fetcher/timeline_fetcher.service.js index e684a170..24aef069 100644 --- a/src/services/timeline_fetcher/timeline_fetcher.service.js +++ b/src/services/timeline_fetcher/timeline_fetcher.service.js @@ -5,7 +5,7 @@ import apiService from '../api/api.service.js' const update = ({store, statuses, timeline, showImmediately}) => { const ccTimeline = camelCase(timeline) - setError({store, timeline, value: false}) + store.dispatch('setError', { value: false }) store.dispatch('addNewStatuses', { timeline: ccTimeline, @@ -14,15 +14,6 @@ const update = ({store, statuses, timeline, showImmediately}) => { }) } -const setError = ({store, timeline, value}) => { - const ccTimeline = camelCase(timeline) - - store.dispatch('setError', { - timeline: ccTimeline, - value - }) -} - const fetchAndUpdate = ({store, credentials, timeline = 'friends', older = false, showImmediately = false}) => { const args = { timeline, credentials } const rootState = store.rootState || store.state @@ -36,7 +27,7 @@ const fetchAndUpdate = ({store, credentials, timeline = 'friends', older = false return apiService.fetchTimeline(args) .then((statuses) => update({store, statuses, timeline, showImmediately}), - () => setError({store, timeline, value: true})) + () => store.dispatch('setError', { value: true })) } const startFetching = ({ timeline = 'friends', credentials, store }) => { |
