mirror of https://github.com/mastodon/mastodon
Improve eslint rules (#3147)
* Add semi to ESLint rules * Add padded-blocks to ESLint rules * Add comma-dangle to ESLint rules * add config/webpack and storyboard * add streaming/ * yarn test:lint -- --fix
This commit is contained in:
parent
812fe90eca
commit
2e112e2406
|
@ -47,6 +47,13 @@ rules:
|
||||||
no-mixed-spaces-and-tabs: warn
|
no-mixed-spaces-and-tabs: warn
|
||||||
no-nested-ternary: warn
|
no-nested-ternary: warn
|
||||||
no-trailing-spaces: warn
|
no-trailing-spaces: warn
|
||||||
|
semi: error
|
||||||
|
padded-blocks:
|
||||||
|
- error
|
||||||
|
- classes: always
|
||||||
|
comma-dangle:
|
||||||
|
- error
|
||||||
|
- always-multiline
|
||||||
|
|
||||||
react/jsx-wrap-multilines: error
|
react/jsx-wrap-multilines: error
|
||||||
react/jsx-no-bind: error
|
react/jsx-no-bind: error
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import api, { getLinks } from '../api'
|
import api, { getLinks } from '../api';
|
||||||
import Immutable from 'immutable';
|
import Immutable from 'immutable';
|
||||||
|
|
||||||
export const ACCOUNT_FETCH_REQUEST = 'ACCOUNT_FETCH_REQUEST';
|
export const ACCOUNT_FETCH_REQUEST = 'ACCOUNT_FETCH_REQUEST';
|
||||||
|
@ -154,8 +154,8 @@ export function expandAccountTimeline(id) {
|
||||||
api(getState).get(`/api/v1/accounts/${id}/statuses`, {
|
api(getState).get(`/api/v1/accounts/${id}/statuses`, {
|
||||||
params: {
|
params: {
|
||||||
limit: 10,
|
limit: 10,
|
||||||
max_id: lastId
|
max_id: lastId,
|
||||||
}
|
},
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
||||||
dispatch(expandAccountTimelineSuccess(id, response.data, next));
|
dispatch(expandAccountTimelineSuccess(id, response.data, next));
|
||||||
|
@ -175,8 +175,8 @@ export function expandAccountMediaTimeline(id) {
|
||||||
params: {
|
params: {
|
||||||
limit: 12,
|
limit: 12,
|
||||||
only_media: 'true',
|
only_media: 'true',
|
||||||
max_id: lastId
|
max_id: lastId,
|
||||||
}
|
},
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
||||||
dispatch(expandAccountMediaTimelineSuccess(id, response.data, next));
|
dispatch(expandAccountMediaTimelineSuccess(id, response.data, next));
|
||||||
|
@ -189,14 +189,14 @@ export function expandAccountMediaTimeline(id) {
|
||||||
export function fetchAccountRequest(id) {
|
export function fetchAccountRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_FETCH_REQUEST,
|
type: ACCOUNT_FETCH_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function fetchAccountSuccess(account) {
|
export function fetchAccountSuccess(account) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_FETCH_SUCCESS,
|
type: ACCOUNT_FETCH_SUCCESS,
|
||||||
account
|
account,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -205,7 +205,7 @@ export function fetchAccountFail(id, error) {
|
||||||
type: ACCOUNT_FETCH_FAIL,
|
type: ACCOUNT_FETCH_FAIL,
|
||||||
id,
|
id,
|
||||||
error,
|
error,
|
||||||
skipAlert: true
|
skipAlert: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -230,48 +230,48 @@ export function unfollowAccount(id) {
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
dispatch(unfollowAccountFail(error));
|
dispatch(unfollowAccountFail(error));
|
||||||
});
|
});
|
||||||
}
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function followAccountRequest(id) {
|
export function followAccountRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_FOLLOW_REQUEST,
|
type: ACCOUNT_FOLLOW_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function followAccountSuccess(relationship) {
|
export function followAccountSuccess(relationship) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_FOLLOW_SUCCESS,
|
type: ACCOUNT_FOLLOW_SUCCESS,
|
||||||
relationship
|
relationship,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function followAccountFail(error) {
|
export function followAccountFail(error) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_FOLLOW_FAIL,
|
type: ACCOUNT_FOLLOW_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function unfollowAccountRequest(id) {
|
export function unfollowAccountRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_UNFOLLOW_REQUEST,
|
type: ACCOUNT_UNFOLLOW_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function unfollowAccountSuccess(relationship) {
|
export function unfollowAccountSuccess(relationship) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_UNFOLLOW_SUCCESS,
|
type: ACCOUNT_UNFOLLOW_SUCCESS,
|
||||||
relationship
|
relationship,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function unfollowAccountFail(error) {
|
export function unfollowAccountFail(error) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_UNFOLLOW_FAIL,
|
type: ACCOUNT_UNFOLLOW_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -279,7 +279,7 @@ export function fetchAccountTimelineRequest(id, skipLoading) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_TIMELINE_FETCH_REQUEST,
|
type: ACCOUNT_TIMELINE_FETCH_REQUEST,
|
||||||
id,
|
id,
|
||||||
skipLoading
|
skipLoading,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -289,7 +289,7 @@ export function fetchAccountTimelineSuccess(id, statuses, replace, skipLoading)
|
||||||
id,
|
id,
|
||||||
statuses,
|
statuses,
|
||||||
replace,
|
replace,
|
||||||
skipLoading
|
skipLoading,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -299,7 +299,7 @@ export function fetchAccountTimelineFail(id, error, skipLoading) {
|
||||||
id,
|
id,
|
||||||
error,
|
error,
|
||||||
skipLoading,
|
skipLoading,
|
||||||
skipAlert: error.response.status === 404
|
skipAlert: error.response.status === 404,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -307,7 +307,7 @@ export function fetchAccountMediaTimelineRequest(id, skipLoading) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_MEDIA_TIMELINE_FETCH_REQUEST,
|
type: ACCOUNT_MEDIA_TIMELINE_FETCH_REQUEST,
|
||||||
id,
|
id,
|
||||||
skipLoading
|
skipLoading,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -317,7 +317,7 @@ export function fetchAccountMediaTimelineSuccess(id, statuses, replace, skipLoad
|
||||||
id,
|
id,
|
||||||
statuses,
|
statuses,
|
||||||
replace,
|
replace,
|
||||||
skipLoading
|
skipLoading,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -327,14 +327,14 @@ export function fetchAccountMediaTimelineFail(id, error, skipLoading) {
|
||||||
id,
|
id,
|
||||||
error,
|
error,
|
||||||
skipLoading,
|
skipLoading,
|
||||||
skipAlert: error.response.status === 404
|
skipAlert: error.response.status === 404,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function expandAccountTimelineRequest(id) {
|
export function expandAccountTimelineRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_TIMELINE_EXPAND_REQUEST,
|
type: ACCOUNT_TIMELINE_EXPAND_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -343,7 +343,7 @@ export function expandAccountTimelineSuccess(id, statuses, next) {
|
||||||
type: ACCOUNT_TIMELINE_EXPAND_SUCCESS,
|
type: ACCOUNT_TIMELINE_EXPAND_SUCCESS,
|
||||||
id,
|
id,
|
||||||
statuses,
|
statuses,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -351,14 +351,14 @@ export function expandAccountTimelineFail(id, error) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_TIMELINE_EXPAND_FAIL,
|
type: ACCOUNT_TIMELINE_EXPAND_FAIL,
|
||||||
id,
|
id,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function expandAccountMediaTimelineRequest(id) {
|
export function expandAccountMediaTimelineRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_MEDIA_TIMELINE_EXPAND_REQUEST,
|
type: ACCOUNT_MEDIA_TIMELINE_EXPAND_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -367,7 +367,7 @@ export function expandAccountMediaTimelineSuccess(id, statuses, next) {
|
||||||
type: ACCOUNT_MEDIA_TIMELINE_EXPAND_SUCCESS,
|
type: ACCOUNT_MEDIA_TIMELINE_EXPAND_SUCCESS,
|
||||||
id,
|
id,
|
||||||
statuses,
|
statuses,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -375,7 +375,7 @@ export function expandAccountMediaTimelineFail(id, error) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_MEDIA_TIMELINE_EXPAND_FAIL,
|
type: ACCOUNT_MEDIA_TIMELINE_EXPAND_FAIL,
|
||||||
id,
|
id,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -407,7 +407,7 @@ export function unblockAccount(id) {
|
||||||
export function blockAccountRequest(id) {
|
export function blockAccountRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_BLOCK_REQUEST,
|
type: ACCOUNT_BLOCK_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -415,35 +415,35 @@ export function blockAccountSuccess(relationship, statuses) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_BLOCK_SUCCESS,
|
type: ACCOUNT_BLOCK_SUCCESS,
|
||||||
relationship,
|
relationship,
|
||||||
statuses
|
statuses,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function blockAccountFail(error) {
|
export function blockAccountFail(error) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_BLOCK_FAIL,
|
type: ACCOUNT_BLOCK_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function unblockAccountRequest(id) {
|
export function unblockAccountRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_UNBLOCK_REQUEST,
|
type: ACCOUNT_UNBLOCK_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function unblockAccountSuccess(relationship) {
|
export function unblockAccountSuccess(relationship) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_UNBLOCK_SUCCESS,
|
type: ACCOUNT_UNBLOCK_SUCCESS,
|
||||||
relationship
|
relationship,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function unblockAccountFail(error) {
|
export function unblockAccountFail(error) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_UNBLOCK_FAIL,
|
type: ACCOUNT_UNBLOCK_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -476,7 +476,7 @@ export function unmuteAccount(id) {
|
||||||
export function muteAccountRequest(id) {
|
export function muteAccountRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_MUTE_REQUEST,
|
type: ACCOUNT_MUTE_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -484,35 +484,35 @@ export function muteAccountSuccess(relationship, statuses) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_MUTE_SUCCESS,
|
type: ACCOUNT_MUTE_SUCCESS,
|
||||||
relationship,
|
relationship,
|
||||||
statuses
|
statuses,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function muteAccountFail(error) {
|
export function muteAccountFail(error) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_MUTE_FAIL,
|
type: ACCOUNT_MUTE_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function unmuteAccountRequest(id) {
|
export function unmuteAccountRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_UNMUTE_REQUEST,
|
type: ACCOUNT_UNMUTE_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function unmuteAccountSuccess(relationship) {
|
export function unmuteAccountSuccess(relationship) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_UNMUTE_SUCCESS,
|
type: ACCOUNT_UNMUTE_SUCCESS,
|
||||||
relationship
|
relationship,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function unmuteAccountFail(error) {
|
export function unmuteAccountFail(error) {
|
||||||
return {
|
return {
|
||||||
type: ACCOUNT_UNMUTE_FAIL,
|
type: ACCOUNT_UNMUTE_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -535,7 +535,7 @@ export function fetchFollowers(id) {
|
||||||
export function fetchFollowersRequest(id) {
|
export function fetchFollowersRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOWERS_FETCH_REQUEST,
|
type: FOLLOWERS_FETCH_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -544,7 +544,7 @@ export function fetchFollowersSuccess(id, accounts, next) {
|
||||||
type: FOLLOWERS_FETCH_SUCCESS,
|
type: FOLLOWERS_FETCH_SUCCESS,
|
||||||
id,
|
id,
|
||||||
accounts,
|
accounts,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -552,7 +552,7 @@ export function fetchFollowersFail(id, error) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOWERS_FETCH_FAIL,
|
type: FOLLOWERS_FETCH_FAIL,
|
||||||
id,
|
id,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -580,7 +580,7 @@ export function expandFollowers(id) {
|
||||||
export function expandFollowersRequest(id) {
|
export function expandFollowersRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOWERS_EXPAND_REQUEST,
|
type: FOLLOWERS_EXPAND_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -589,7 +589,7 @@ export function expandFollowersSuccess(id, accounts, next) {
|
||||||
type: FOLLOWERS_EXPAND_SUCCESS,
|
type: FOLLOWERS_EXPAND_SUCCESS,
|
||||||
id,
|
id,
|
||||||
accounts,
|
accounts,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -597,7 +597,7 @@ export function expandFollowersFail(id, error) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOWERS_EXPAND_FAIL,
|
type: FOLLOWERS_EXPAND_FAIL,
|
||||||
id,
|
id,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -619,7 +619,7 @@ export function fetchFollowing(id) {
|
||||||
export function fetchFollowingRequest(id) {
|
export function fetchFollowingRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOWING_FETCH_REQUEST,
|
type: FOLLOWING_FETCH_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -628,7 +628,7 @@ export function fetchFollowingSuccess(id, accounts, next) {
|
||||||
type: FOLLOWING_FETCH_SUCCESS,
|
type: FOLLOWING_FETCH_SUCCESS,
|
||||||
id,
|
id,
|
||||||
accounts,
|
accounts,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -636,7 +636,7 @@ export function fetchFollowingFail(id, error) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOWING_FETCH_FAIL,
|
type: FOLLOWING_FETCH_FAIL,
|
||||||
id,
|
id,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -664,7 +664,7 @@ export function expandFollowing(id) {
|
||||||
export function expandFollowingRequest(id) {
|
export function expandFollowingRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOWING_EXPAND_REQUEST,
|
type: FOLLOWING_EXPAND_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -673,7 +673,7 @@ export function expandFollowingSuccess(id, accounts, next) {
|
||||||
type: FOLLOWING_EXPAND_SUCCESS,
|
type: FOLLOWING_EXPAND_SUCCESS,
|
||||||
id,
|
id,
|
||||||
accounts,
|
accounts,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -681,7 +681,7 @@ export function expandFollowingFail(id, error) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOWING_EXPAND_FAIL,
|
type: FOLLOWING_EXPAND_FAIL,
|
||||||
id,
|
id,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -708,7 +708,7 @@ export function fetchRelationshipsRequest(ids) {
|
||||||
return {
|
return {
|
||||||
type: RELATIONSHIPS_FETCH_REQUEST,
|
type: RELATIONSHIPS_FETCH_REQUEST,
|
||||||
ids,
|
ids,
|
||||||
skipLoading: true
|
skipLoading: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -716,7 +716,7 @@ export function fetchRelationshipsSuccess(relationships) {
|
||||||
return {
|
return {
|
||||||
type: RELATIONSHIPS_FETCH_SUCCESS,
|
type: RELATIONSHIPS_FETCH_SUCCESS,
|
||||||
relationships,
|
relationships,
|
||||||
skipLoading: true
|
skipLoading: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -724,7 +724,7 @@ export function fetchRelationshipsFail(error) {
|
||||||
return {
|
return {
|
||||||
type: RELATIONSHIPS_FETCH_FAIL,
|
type: RELATIONSHIPS_FETCH_FAIL,
|
||||||
error,
|
error,
|
||||||
skipLoading: true
|
skipLoading: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -734,14 +734,14 @@ export function fetchFollowRequests() {
|
||||||
|
|
||||||
api(getState).get('/api/v1/follow_requests').then(response => {
|
api(getState).get('/api/v1/follow_requests').then(response => {
|
||||||
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
||||||
dispatch(fetchFollowRequestsSuccess(response.data, next ? next.uri : null))
|
dispatch(fetchFollowRequestsSuccess(response.data, next ? next.uri : null));
|
||||||
}).catch(error => dispatch(fetchFollowRequestsFail(error)));
|
}).catch(error => dispatch(fetchFollowRequestsFail(error)));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function fetchFollowRequestsRequest() {
|
export function fetchFollowRequestsRequest() {
|
||||||
return {
|
return {
|
||||||
type: FOLLOW_REQUESTS_FETCH_REQUEST
|
type: FOLLOW_REQUESTS_FETCH_REQUEST,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -749,14 +749,14 @@ export function fetchFollowRequestsSuccess(accounts, next) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOW_REQUESTS_FETCH_SUCCESS,
|
type: FOLLOW_REQUESTS_FETCH_SUCCESS,
|
||||||
accounts,
|
accounts,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function fetchFollowRequestsFail(error) {
|
export function fetchFollowRequestsFail(error) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOW_REQUESTS_FETCH_FAIL,
|
type: FOLLOW_REQUESTS_FETCH_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -772,14 +772,14 @@ export function expandFollowRequests() {
|
||||||
|
|
||||||
api(getState).get(url).then(response => {
|
api(getState).get(url).then(response => {
|
||||||
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
||||||
dispatch(expandFollowRequestsSuccess(response.data, next ? next.uri : null))
|
dispatch(expandFollowRequestsSuccess(response.data, next ? next.uri : null));
|
||||||
}).catch(error => dispatch(expandFollowRequestsFail(error)));
|
}).catch(error => dispatch(expandFollowRequestsFail(error)));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function expandFollowRequestsRequest() {
|
export function expandFollowRequestsRequest() {
|
||||||
return {
|
return {
|
||||||
type: FOLLOW_REQUESTS_EXPAND_REQUEST
|
type: FOLLOW_REQUESTS_EXPAND_REQUEST,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -787,14 +787,14 @@ export function expandFollowRequestsSuccess(accounts, next) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOW_REQUESTS_EXPAND_SUCCESS,
|
type: FOLLOW_REQUESTS_EXPAND_SUCCESS,
|
||||||
accounts,
|
accounts,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function expandFollowRequestsFail(error) {
|
export function expandFollowRequestsFail(error) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOW_REQUESTS_EXPAND_FAIL,
|
type: FOLLOW_REQUESTS_EXPAND_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -812,14 +812,14 @@ export function authorizeFollowRequest(id) {
|
||||||
export function authorizeFollowRequestRequest(id) {
|
export function authorizeFollowRequestRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOW_REQUEST_AUTHORIZE_REQUEST,
|
type: FOLLOW_REQUEST_AUTHORIZE_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function authorizeFollowRequestSuccess(id) {
|
export function authorizeFollowRequestSuccess(id) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
|
type: FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -827,7 +827,7 @@ export function authorizeFollowRequestFail(id, error) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOW_REQUEST_AUTHORIZE_FAIL,
|
type: FOLLOW_REQUEST_AUTHORIZE_FAIL,
|
||||||
id,
|
id,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -846,14 +846,14 @@ export function rejectFollowRequest(id) {
|
||||||
export function rejectFollowRequestRequest(id) {
|
export function rejectFollowRequestRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOW_REQUEST_REJECT_REQUEST,
|
type: FOLLOW_REQUEST_REJECT_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function rejectFollowRequestSuccess(id) {
|
export function rejectFollowRequestSuccess(id) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOW_REQUEST_REJECT_SUCCESS,
|
type: FOLLOW_REQUEST_REJECT_SUCCESS,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -861,6 +861,6 @@ export function rejectFollowRequestFail(id, error) {
|
||||||
return {
|
return {
|
||||||
type: FOLLOW_REQUEST_REJECT_FAIL,
|
type: FOLLOW_REQUEST_REJECT_FAIL,
|
||||||
id,
|
id,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -5,13 +5,13 @@ export const ALERT_CLEAR = 'ALERT_CLEAR';
|
||||||
export function dismissAlert(alert) {
|
export function dismissAlert(alert) {
|
||||||
return {
|
return {
|
||||||
type: ALERT_DISMISS,
|
type: ALERT_DISMISS,
|
||||||
alert
|
alert,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function clearAlert() {
|
export function clearAlert() {
|
||||||
return {
|
return {
|
||||||
type: ALERT_CLEAR
|
type: ALERT_CLEAR,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -19,6 +19,6 @@ export function showAlert(title, message) {
|
||||||
return {
|
return {
|
||||||
type: ALERT_SHOW,
|
type: ALERT_SHOW,
|
||||||
title,
|
title,
|
||||||
message
|
message,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import api, { getLinks } from '../api'
|
import api, { getLinks } from '../api';
|
||||||
import { fetchRelationships } from './accounts';
|
import { fetchRelationships } from './accounts';
|
||||||
|
|
||||||
export const BLOCKS_FETCH_REQUEST = 'BLOCKS_FETCH_REQUEST';
|
export const BLOCKS_FETCH_REQUEST = 'BLOCKS_FETCH_REQUEST';
|
||||||
|
@ -23,7 +23,7 @@ export function fetchBlocks() {
|
||||||
|
|
||||||
export function fetchBlocksRequest() {
|
export function fetchBlocksRequest() {
|
||||||
return {
|
return {
|
||||||
type: BLOCKS_FETCH_REQUEST
|
type: BLOCKS_FETCH_REQUEST,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -31,14 +31,14 @@ export function fetchBlocksSuccess(accounts, next) {
|
||||||
return {
|
return {
|
||||||
type: BLOCKS_FETCH_SUCCESS,
|
type: BLOCKS_FETCH_SUCCESS,
|
||||||
accounts,
|
accounts,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function fetchBlocksFail(error) {
|
export function fetchBlocksFail(error) {
|
||||||
return {
|
return {
|
||||||
type: BLOCKS_FETCH_FAIL,
|
type: BLOCKS_FETCH_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ export function expandBlocks() {
|
||||||
|
|
||||||
export function expandBlocksRequest() {
|
export function expandBlocksRequest() {
|
||||||
return {
|
return {
|
||||||
type: BLOCKS_EXPAND_REQUEST
|
type: BLOCKS_EXPAND_REQUEST,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -70,13 +70,13 @@ export function expandBlocksSuccess(accounts, next) {
|
||||||
return {
|
return {
|
||||||
type: BLOCKS_EXPAND_SUCCESS,
|
type: BLOCKS_EXPAND_SUCCESS,
|
||||||
accounts,
|
accounts,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function expandBlocksFail(error) {
|
export function expandBlocksFail(error) {
|
||||||
return {
|
return {
|
||||||
type: BLOCKS_EXPAND_FAIL,
|
type: BLOCKS_EXPAND_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -28,7 +28,7 @@ export function fetchStatusCardRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: STATUS_CARD_FETCH_REQUEST,
|
type: STATUS_CARD_FETCH_REQUEST,
|
||||||
id,
|
id,
|
||||||
skipLoading: true
|
skipLoading: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ export function fetchStatusCardSuccess(id, card) {
|
||||||
type: STATUS_CARD_FETCH_SUCCESS,
|
type: STATUS_CARD_FETCH_SUCCESS,
|
||||||
id,
|
id,
|
||||||
card,
|
card,
|
||||||
skipLoading: true
|
skipLoading: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -47,6 +47,6 @@ export function fetchStatusCardFail(id, error) {
|
||||||
id,
|
id,
|
||||||
error,
|
error,
|
||||||
skipLoading: true,
|
skipLoading: true,
|
||||||
skipAlert: true
|
skipAlert: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -35,7 +35,7 @@ export const COMPOSE_EMOJI_INSERT = 'COMPOSE_EMOJI_INSERT';
|
||||||
export function changeCompose(text) {
|
export function changeCompose(text) {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_CHANGE,
|
type: COMPOSE_CHANGE,
|
||||||
text: text
|
text: text,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ export function replyCompose(status, router) {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
dispatch({
|
dispatch({
|
||||||
type: COMPOSE_REPLY,
|
type: COMPOSE_REPLY,
|
||||||
status: status
|
status: status,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!getState().getIn(['compose', 'mounted'])) {
|
if (!getState().getIn(['compose', 'mounted'])) {
|
||||||
|
@ -54,7 +54,7 @@ export function replyCompose(status, router) {
|
||||||
|
|
||||||
export function cancelReplyCompose() {
|
export function cancelReplyCompose() {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_REPLY_CANCEL
|
type: COMPOSE_REPLY_CANCEL,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ export function mentionCompose(account, router) {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
dispatch({
|
dispatch({
|
||||||
type: COMPOSE_MENTION,
|
type: COMPOSE_MENTION,
|
||||||
account: account
|
account: account,
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!getState().getIn(['compose', 'mounted'])) {
|
if (!getState().getIn(['compose', 'mounted'])) {
|
||||||
|
@ -84,11 +84,11 @@ export function submitCompose() {
|
||||||
media_ids: getState().getIn(['compose', 'media_attachments']).map(item => item.get('id')),
|
media_ids: getState().getIn(['compose', 'media_attachments']).map(item => item.get('id')),
|
||||||
sensitive: getState().getIn(['compose', 'sensitive']),
|
sensitive: getState().getIn(['compose', 'sensitive']),
|
||||||
spoiler_text: getState().getIn(['compose', 'spoiler_text'], ''),
|
spoiler_text: getState().getIn(['compose', 'spoiler_text'], ''),
|
||||||
visibility: getState().getIn(['compose', 'privacy'])
|
visibility: getState().getIn(['compose', 'privacy']),
|
||||||
}, {
|
}, {
|
||||||
headers: {
|
headers: {
|
||||||
'Idempotency-Key': getState().getIn(['compose', 'idempotencyKey'])
|
'Idempotency-Key': getState().getIn(['compose', 'idempotencyKey']),
|
||||||
}
|
},
|
||||||
}).then(function (response) {
|
}).then(function (response) {
|
||||||
dispatch(submitComposeSuccess({ ...response.data }));
|
dispatch(submitComposeSuccess({ ...response.data }));
|
||||||
|
|
||||||
|
@ -112,21 +112,21 @@ export function submitCompose() {
|
||||||
|
|
||||||
export function submitComposeRequest() {
|
export function submitComposeRequest() {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_SUBMIT_REQUEST
|
type: COMPOSE_SUBMIT_REQUEST,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function submitComposeSuccess(status) {
|
export function submitComposeSuccess(status) {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_SUBMIT_SUCCESS,
|
type: COMPOSE_SUBMIT_SUCCESS,
|
||||||
status: status
|
status: status,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function submitComposeFail(error) {
|
export function submitComposeFail(error) {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_SUBMIT_FAIL,
|
type: COMPOSE_SUBMIT_FAIL,
|
||||||
error: error
|
error: error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ export function uploadCompose(files) {
|
||||||
api(getState).post('/api/v1/media', data, {
|
api(getState).post('/api/v1/media', data, {
|
||||||
onUploadProgress: function (e) {
|
onUploadProgress: function (e) {
|
||||||
dispatch(uploadComposeProgress(e.loaded, e.total));
|
dispatch(uploadComposeProgress(e.loaded, e.total));
|
||||||
}
|
},
|
||||||
}).then(function (response) {
|
}).then(function (response) {
|
||||||
dispatch(uploadComposeSuccess(response.data));
|
dispatch(uploadComposeSuccess(response.data));
|
||||||
}).catch(function (error) {
|
}).catch(function (error) {
|
||||||
|
@ -156,7 +156,7 @@ export function uploadCompose(files) {
|
||||||
export function uploadComposeRequest() {
|
export function uploadComposeRequest() {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_UPLOAD_REQUEST,
|
type: COMPOSE_UPLOAD_REQUEST,
|
||||||
skipLoading: true
|
skipLoading: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@ export function uploadComposeProgress(loaded, total) {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_UPLOAD_PROGRESS,
|
type: COMPOSE_UPLOAD_PROGRESS,
|
||||||
loaded: loaded,
|
loaded: loaded,
|
||||||
total: total
|
total: total,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -172,7 +172,7 @@ export function uploadComposeSuccess(media) {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_UPLOAD_SUCCESS,
|
type: COMPOSE_UPLOAD_SUCCESS,
|
||||||
media: media,
|
media: media,
|
||||||
skipLoading: true
|
skipLoading: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -180,20 +180,20 @@ export function uploadComposeFail(error) {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_UPLOAD_FAIL,
|
type: COMPOSE_UPLOAD_FAIL,
|
||||||
error: error,
|
error: error,
|
||||||
skipLoading: true
|
skipLoading: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function undoUploadCompose(media_id) {
|
export function undoUploadCompose(media_id) {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_UPLOAD_UNDO,
|
type: COMPOSE_UPLOAD_UNDO,
|
||||||
media_id: media_id
|
media_id: media_id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function clearComposeSuggestions() {
|
export function clearComposeSuggestions() {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_SUGGESTIONS_CLEAR
|
type: COMPOSE_SUGGESTIONS_CLEAR,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -203,8 +203,8 @@ export function fetchComposeSuggestions(token) {
|
||||||
params: {
|
params: {
|
||||||
q: token,
|
q: token,
|
||||||
resolve: false,
|
resolve: false,
|
||||||
limit: 4
|
limit: 4,
|
||||||
}
|
},
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
dispatch(readyComposeSuggestions(token, response.data));
|
dispatch(readyComposeSuggestions(token, response.data));
|
||||||
});
|
});
|
||||||
|
@ -215,7 +215,7 @@ export function readyComposeSuggestions(token, accounts) {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_SUGGESTIONS_READY,
|
type: COMPOSE_SUGGESTIONS_READY,
|
||||||
token,
|
token,
|
||||||
accounts
|
accounts,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -227,20 +227,20 @@ export function selectComposeSuggestion(position, token, accountId) {
|
||||||
type: COMPOSE_SUGGESTION_SELECT,
|
type: COMPOSE_SUGGESTION_SELECT,
|
||||||
position,
|
position,
|
||||||
token,
|
token,
|
||||||
completion
|
completion,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function mountCompose() {
|
export function mountCompose() {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_MOUNT
|
type: COMPOSE_MOUNT,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function unmountCompose() {
|
export function unmountCompose() {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_UNMOUNT
|
type: COMPOSE_UNMOUNT,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -252,21 +252,21 @@ export function changeComposeSensitivity() {
|
||||||
|
|
||||||
export function changeComposeSpoilerness() {
|
export function changeComposeSpoilerness() {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_SPOILERNESS_CHANGE
|
type: COMPOSE_SPOILERNESS_CHANGE,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function changeComposeSpoilerText(text) {
|
export function changeComposeSpoilerText(text) {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_SPOILER_TEXT_CHANGE,
|
type: COMPOSE_SPOILER_TEXT_CHANGE,
|
||||||
text
|
text,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function changeComposeVisibility(value) {
|
export function changeComposeVisibility(value) {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_VISIBILITY_CHANGE,
|
type: COMPOSE_VISIBILITY_CHANGE,
|
||||||
value
|
value,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -274,6 +274,6 @@ export function insertEmojiCompose(position, emoji) {
|
||||||
return {
|
return {
|
||||||
type: COMPOSE_EMOJI_INSERT,
|
type: COMPOSE_EMOJI_INSERT,
|
||||||
position,
|
position,
|
||||||
emoji
|
emoji,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import api, { getLinks } from '../api'
|
import api, { getLinks } from '../api';
|
||||||
|
|
||||||
export const DOMAIN_BLOCK_REQUEST = 'DOMAIN_BLOCK_REQUEST';
|
export const DOMAIN_BLOCK_REQUEST = 'DOMAIN_BLOCK_REQUEST';
|
||||||
export const DOMAIN_BLOCK_SUCCESS = 'DOMAIN_BLOCK_SUCCESS';
|
export const DOMAIN_BLOCK_SUCCESS = 'DOMAIN_BLOCK_SUCCESS';
|
||||||
|
@ -27,7 +27,7 @@ export function blockDomain(domain, accountId) {
|
||||||
export function blockDomainRequest(domain) {
|
export function blockDomainRequest(domain) {
|
||||||
return {
|
return {
|
||||||
type: DOMAIN_BLOCK_REQUEST,
|
type: DOMAIN_BLOCK_REQUEST,
|
||||||
domain
|
domain,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ export function blockDomainSuccess(domain, accountId) {
|
||||||
return {
|
return {
|
||||||
type: DOMAIN_BLOCK_SUCCESS,
|
type: DOMAIN_BLOCK_SUCCESS,
|
||||||
domain,
|
domain,
|
||||||
accountId
|
accountId,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ export function blockDomainFail(domain, error) {
|
||||||
return {
|
return {
|
||||||
type: DOMAIN_BLOCK_FAIL,
|
type: DOMAIN_BLOCK_FAIL,
|
||||||
domain,
|
domain,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ export function unblockDomain(domain, accountId) {
|
||||||
export function unblockDomainRequest(domain) {
|
export function unblockDomainRequest(domain) {
|
||||||
return {
|
return {
|
||||||
type: DOMAIN_UNBLOCK_REQUEST,
|
type: DOMAIN_UNBLOCK_REQUEST,
|
||||||
domain
|
domain,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -70,7 +70,7 @@ export function unblockDomainSuccess(domain, accountId) {
|
||||||
return {
|
return {
|
||||||
type: DOMAIN_UNBLOCK_SUCCESS,
|
type: DOMAIN_UNBLOCK_SUCCESS,
|
||||||
domain,
|
domain,
|
||||||
accountId
|
accountId,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -78,7 +78,7 @@ export function unblockDomainFail(domain, error) {
|
||||||
return {
|
return {
|
||||||
type: DOMAIN_UNBLOCK_FAIL,
|
type: DOMAIN_UNBLOCK_FAIL,
|
||||||
domain,
|
domain,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ export function fetchDomainBlocks() {
|
||||||
|
|
||||||
export function fetchDomainBlocksRequest() {
|
export function fetchDomainBlocksRequest() {
|
||||||
return {
|
return {
|
||||||
type: DOMAIN_BLOCKS_FETCH_REQUEST
|
type: DOMAIN_BLOCKS_FETCH_REQUEST,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -105,13 +105,13 @@ export function fetchDomainBlocksSuccess(domains, next) {
|
||||||
return {
|
return {
|
||||||
type: DOMAIN_BLOCKS_FETCH_SUCCESS,
|
type: DOMAIN_BLOCKS_FETCH_SUCCESS,
|
||||||
domains,
|
domains,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function fetchDomainBlocksFail(error) {
|
export function fetchDomainBlocksFail(error) {
|
||||||
return {
|
return {
|
||||||
type: DOMAIN_BLOCKS_FETCH_FAIL,
|
type: DOMAIN_BLOCKS_FETCH_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import api, { getLinks } from '../api'
|
import api, { getLinks } from '../api';
|
||||||
|
|
||||||
export const FAVOURITED_STATUSES_FETCH_REQUEST = 'FAVOURITED_STATUSES_FETCH_REQUEST';
|
export const FAVOURITED_STATUSES_FETCH_REQUEST = 'FAVOURITED_STATUSES_FETCH_REQUEST';
|
||||||
export const FAVOURITED_STATUSES_FETCH_SUCCESS = 'FAVOURITED_STATUSES_FETCH_SUCCESS';
|
export const FAVOURITED_STATUSES_FETCH_SUCCESS = 'FAVOURITED_STATUSES_FETCH_SUCCESS';
|
||||||
|
@ -23,7 +23,7 @@ export function fetchFavouritedStatuses() {
|
||||||
|
|
||||||
export function fetchFavouritedStatusesRequest() {
|
export function fetchFavouritedStatusesRequest() {
|
||||||
return {
|
return {
|
||||||
type: FAVOURITED_STATUSES_FETCH_REQUEST
|
type: FAVOURITED_STATUSES_FETCH_REQUEST,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -31,14 +31,14 @@ export function fetchFavouritedStatusesSuccess(statuses, next) {
|
||||||
return {
|
return {
|
||||||
type: FAVOURITED_STATUSES_FETCH_SUCCESS,
|
type: FAVOURITED_STATUSES_FETCH_SUCCESS,
|
||||||
statuses,
|
statuses,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function fetchFavouritedStatusesFail(error) {
|
export function fetchFavouritedStatusesFail(error) {
|
||||||
return {
|
return {
|
||||||
type: FAVOURITED_STATUSES_FETCH_FAIL,
|
type: FAVOURITED_STATUSES_FETCH_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -63,7 +63,7 @@ export function expandFavouritedStatuses() {
|
||||||
|
|
||||||
export function expandFavouritedStatusesRequest() {
|
export function expandFavouritedStatusesRequest() {
|
||||||
return {
|
return {
|
||||||
type: FAVOURITED_STATUSES_EXPAND_REQUEST
|
type: FAVOURITED_STATUSES_EXPAND_REQUEST,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -71,13 +71,13 @@ export function expandFavouritedStatusesSuccess(statuses, next) {
|
||||||
return {
|
return {
|
||||||
type: FAVOURITED_STATUSES_EXPAND_SUCCESS,
|
type: FAVOURITED_STATUSES_EXPAND_SUCCESS,
|
||||||
statuses,
|
statuses,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function expandFavouritedStatusesFail(error) {
|
export function expandFavouritedStatusesFail(error) {
|
||||||
return {
|
return {
|
||||||
type: FAVOURITED_STATUSES_EXPAND_FAIL,
|
type: FAVOURITED_STATUSES_EXPAND_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import api from '../api'
|
import api from '../api';
|
||||||
|
|
||||||
export const REBLOG_REQUEST = 'REBLOG_REQUEST';
|
export const REBLOG_REQUEST = 'REBLOG_REQUEST';
|
||||||
export const REBLOG_SUCCESS = 'REBLOG_SUCCESS';
|
export const REBLOG_SUCCESS = 'REBLOG_SUCCESS';
|
||||||
|
@ -53,7 +53,7 @@ export function unreblog(status) {
|
||||||
export function reblogRequest(status) {
|
export function reblogRequest(status) {
|
||||||
return {
|
return {
|
||||||
type: REBLOG_REQUEST,
|
type: REBLOG_REQUEST,
|
||||||
status: status
|
status: status,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -61,7 +61,7 @@ export function reblogSuccess(status, response) {
|
||||||
return {
|
return {
|
||||||
type: REBLOG_SUCCESS,
|
type: REBLOG_SUCCESS,
|
||||||
status: status,
|
status: status,
|
||||||
response: response
|
response: response,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -69,14 +69,14 @@ export function reblogFail(status, error) {
|
||||||
return {
|
return {
|
||||||
type: REBLOG_FAIL,
|
type: REBLOG_FAIL,
|
||||||
status: status,
|
status: status,
|
||||||
error: error
|
error: error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function unreblogRequest(status) {
|
export function unreblogRequest(status) {
|
||||||
return {
|
return {
|
||||||
type: UNREBLOG_REQUEST,
|
type: UNREBLOG_REQUEST,
|
||||||
status: status
|
status: status,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -84,7 +84,7 @@ export function unreblogSuccess(status, response) {
|
||||||
return {
|
return {
|
||||||
type: UNREBLOG_SUCCESS,
|
type: UNREBLOG_SUCCESS,
|
||||||
status: status,
|
status: status,
|
||||||
response: response
|
response: response,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -92,7 +92,7 @@ export function unreblogFail(status, error) {
|
||||||
return {
|
return {
|
||||||
type: UNREBLOG_FAIL,
|
type: UNREBLOG_FAIL,
|
||||||
status: status,
|
status: status,
|
||||||
error: error
|
error: error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@ export function unfavourite(status) {
|
||||||
export function favouriteRequest(status) {
|
export function favouriteRequest(status) {
|
||||||
return {
|
return {
|
||||||
type: FAVOURITE_REQUEST,
|
type: FAVOURITE_REQUEST,
|
||||||
status: status
|
status: status,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -131,7 +131,7 @@ export function favouriteSuccess(status, response) {
|
||||||
return {
|
return {
|
||||||
type: FAVOURITE_SUCCESS,
|
type: FAVOURITE_SUCCESS,
|
||||||
status: status,
|
status: status,
|
||||||
response: response
|
response: response,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -139,14 +139,14 @@ export function favouriteFail(status, error) {
|
||||||
return {
|
return {
|
||||||
type: FAVOURITE_FAIL,
|
type: FAVOURITE_FAIL,
|
||||||
status: status,
|
status: status,
|
||||||
error: error
|
error: error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function unfavouriteRequest(status) {
|
export function unfavouriteRequest(status) {
|
||||||
return {
|
return {
|
||||||
type: UNFAVOURITE_REQUEST,
|
type: UNFAVOURITE_REQUEST,
|
||||||
status: status
|
status: status,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -154,7 +154,7 @@ export function unfavouriteSuccess(status, response) {
|
||||||
return {
|
return {
|
||||||
type: UNFAVOURITE_SUCCESS,
|
type: UNFAVOURITE_SUCCESS,
|
||||||
status: status,
|
status: status,
|
||||||
response: response
|
response: response,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -162,7 +162,7 @@ export function unfavouriteFail(status, error) {
|
||||||
return {
|
return {
|
||||||
type: UNFAVOURITE_FAIL,
|
type: UNFAVOURITE_FAIL,
|
||||||
status: status,
|
status: status,
|
||||||
error: error
|
error: error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -181,7 +181,7 @@ export function fetchReblogs(id) {
|
||||||
export function fetchReblogsRequest(id) {
|
export function fetchReblogsRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: REBLOGS_FETCH_REQUEST,
|
type: REBLOGS_FETCH_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -189,14 +189,14 @@ export function fetchReblogsSuccess(id, accounts) {
|
||||||
return {
|
return {
|
||||||
type: REBLOGS_FETCH_SUCCESS,
|
type: REBLOGS_FETCH_SUCCESS,
|
||||||
id,
|
id,
|
||||||
accounts
|
accounts,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function fetchReblogsFail(id, error) {
|
export function fetchReblogsFail(id, error) {
|
||||||
return {
|
return {
|
||||||
type: REBLOGS_FETCH_FAIL,
|
type: REBLOGS_FETCH_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -215,7 +215,7 @@ export function fetchFavourites(id) {
|
||||||
export function fetchFavouritesRequest(id) {
|
export function fetchFavouritesRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: FAVOURITES_FETCH_REQUEST,
|
type: FAVOURITES_FETCH_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -223,13 +223,13 @@ export function fetchFavouritesSuccess(id, accounts) {
|
||||||
return {
|
return {
|
||||||
type: FAVOURITES_FETCH_SUCCESS,
|
type: FAVOURITES_FETCH_SUCCESS,
|
||||||
id,
|
id,
|
||||||
accounts
|
accounts,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function fetchFavouritesFail(id, error) {
|
export function fetchFavouritesFail(id, error) {
|
||||||
return {
|
return {
|
||||||
type: FAVOURITES_FETCH_FAIL,
|
type: FAVOURITES_FETCH_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -5,12 +5,12 @@ export function openModal(type, props) {
|
||||||
return {
|
return {
|
||||||
type: MODAL_OPEN,
|
type: MODAL_OPEN,
|
||||||
modalType: type,
|
modalType: type,
|
||||||
modalProps: props
|
modalProps: props,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function closeModal() {
|
export function closeModal() {
|
||||||
return {
|
return {
|
||||||
type: MODAL_CLOSE
|
type: MODAL_CLOSE,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import api, { getLinks } from '../api'
|
import api, { getLinks } from '../api';
|
||||||
import { fetchRelationships } from './accounts';
|
import { fetchRelationships } from './accounts';
|
||||||
|
|
||||||
export const MUTES_FETCH_REQUEST = 'MUTES_FETCH_REQUEST';
|
export const MUTES_FETCH_REQUEST = 'MUTES_FETCH_REQUEST';
|
||||||
|
@ -23,7 +23,7 @@ export function fetchMutes() {
|
||||||
|
|
||||||
export function fetchMutesRequest() {
|
export function fetchMutesRequest() {
|
||||||
return {
|
return {
|
||||||
type: MUTES_FETCH_REQUEST
|
type: MUTES_FETCH_REQUEST,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -31,14 +31,14 @@ export function fetchMutesSuccess(accounts, next) {
|
||||||
return {
|
return {
|
||||||
type: MUTES_FETCH_SUCCESS,
|
type: MUTES_FETCH_SUCCESS,
|
||||||
accounts,
|
accounts,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function fetchMutesFail(error) {
|
export function fetchMutesFail(error) {
|
||||||
return {
|
return {
|
||||||
type: MUTES_FETCH_FAIL,
|
type: MUTES_FETCH_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ export function expandMutes() {
|
||||||
|
|
||||||
export function expandMutesRequest() {
|
export function expandMutesRequest() {
|
||||||
return {
|
return {
|
||||||
type: MUTES_EXPAND_REQUEST
|
type: MUTES_EXPAND_REQUEST,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -70,13 +70,13 @@ export function expandMutesSuccess(accounts, next) {
|
||||||
return {
|
return {
|
||||||
type: MUTES_EXPAND_SUCCESS,
|
type: MUTES_EXPAND_SUCCESS,
|
||||||
accounts,
|
accounts,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function expandMutesFail(error) {
|
export function expandMutesFail(error) {
|
||||||
return {
|
return {
|
||||||
type: MUTES_EXPAND_FAIL,
|
type: MUTES_EXPAND_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import api, { getLinks } from '../api'
|
import api, { getLinks } from '../api';
|
||||||
import Immutable from 'immutable';
|
import Immutable from 'immutable';
|
||||||
import IntlMessageFormat from 'intl-messageformat';
|
import IntlMessageFormat from 'intl-messageformat';
|
||||||
import { fetchRelationships } from './accounts';
|
import { fetchRelationships } from './accounts';
|
||||||
|
@ -33,7 +33,7 @@ const unescapeHTML = (html) => {
|
||||||
const wrapper = document.createElement('div');
|
const wrapper = document.createElement('div');
|
||||||
wrapper.innerHTML = html;
|
wrapper.innerHTML = html;
|
||||||
return wrapper.textContent;
|
return wrapper.textContent;
|
||||||
}
|
};
|
||||||
|
|
||||||
export function updateNotifications(notification, intlMessages, intlLocale) {
|
export function updateNotifications(notification, intlMessages, intlLocale) {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
|
@ -45,7 +45,7 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
|
||||||
notification,
|
notification,
|
||||||
account: notification.account,
|
account: notification.account,
|
||||||
status: notification.status,
|
status: notification.status,
|
||||||
meta: playSound ? { sound: 'boop' } : undefined
|
meta: playSound ? { sound: 'boop' } : undefined,
|
||||||
});
|
});
|
||||||
|
|
||||||
fetchRelatedRelationships(dispatch, [notification]);
|
fetchRelatedRelationships(dispatch, [notification]);
|
||||||
|
@ -99,7 +99,7 @@ export function refreshNotifications() {
|
||||||
export function refreshNotificationsRequest(skipLoading) {
|
export function refreshNotificationsRequest(skipLoading) {
|
||||||
return {
|
return {
|
||||||
type: NOTIFICATIONS_REFRESH_REQUEST,
|
type: NOTIFICATIONS_REFRESH_REQUEST,
|
||||||
skipLoading
|
skipLoading,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ export function refreshNotificationsSuccess(notifications, skipLoading, next) {
|
||||||
accounts: notifications.map(item => item.account),
|
accounts: notifications.map(item => item.account),
|
||||||
statuses: notifications.map(item => item.status).filter(status => !!status),
|
statuses: notifications.map(item => item.status).filter(status => !!status),
|
||||||
skipLoading,
|
skipLoading,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -118,7 +118,7 @@ export function refreshNotificationsFail(error, skipLoading) {
|
||||||
return {
|
return {
|
||||||
type: NOTIFICATIONS_REFRESH_FAIL,
|
type: NOTIFICATIONS_REFRESH_FAIL,
|
||||||
error,
|
error,
|
||||||
skipLoading
|
skipLoading,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ export function expandNotifications() {
|
||||||
|
|
||||||
const params = {
|
const params = {
|
||||||
max_id: lastId,
|
max_id: lastId,
|
||||||
limit: 20
|
limit: 20,
|
||||||
};
|
};
|
||||||
|
|
||||||
params.exclude_types = excludeTypesFromSettings(getState());
|
params.exclude_types = excludeTypesFromSettings(getState());
|
||||||
|
@ -153,7 +153,7 @@ export function expandNotifications() {
|
||||||
|
|
||||||
export function expandNotificationsRequest() {
|
export function expandNotificationsRequest() {
|
||||||
return {
|
return {
|
||||||
type: NOTIFICATIONS_EXPAND_REQUEST
|
type: NOTIFICATIONS_EXPAND_REQUEST,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -163,21 +163,21 @@ export function expandNotificationsSuccess(notifications, next) {
|
||||||
notifications,
|
notifications,
|
||||||
accounts: notifications.map(item => item.account),
|
accounts: notifications.map(item => item.account),
|
||||||
statuses: notifications.map(item => item.status).filter(status => !!status),
|
statuses: notifications.map(item => item.status).filter(status => !!status),
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function expandNotificationsFail(error) {
|
export function expandNotificationsFail(error) {
|
||||||
return {
|
return {
|
||||||
type: NOTIFICATIONS_EXPAND_FAIL,
|
type: NOTIFICATIONS_EXPAND_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function clearNotifications() {
|
export function clearNotifications() {
|
||||||
return (dispatch, getState) => {
|
return (dispatch, getState) => {
|
||||||
dispatch({
|
dispatch({
|
||||||
type: NOTIFICATIONS_CLEAR
|
type: NOTIFICATIONS_CLEAR,
|
||||||
});
|
});
|
||||||
|
|
||||||
api(getState).post('/api/v1/notifications/clear');
|
api(getState).post('/api/v1/notifications/clear');
|
||||||
|
@ -187,6 +187,6 @@ export function clearNotifications() {
|
||||||
export function scrollTopNotifications(top) {
|
export function scrollTopNotifications(top) {
|
||||||
return {
|
return {
|
||||||
type: NOTIFICATIONS_SCROLL_TOP,
|
type: NOTIFICATIONS_SCROLL_TOP,
|
||||||
top
|
top,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -14,13 +14,13 @@ export function initReport(account, status) {
|
||||||
return {
|
return {
|
||||||
type: REPORT_INIT,
|
type: REPORT_INIT,
|
||||||
account,
|
account,
|
||||||
status
|
status,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function cancelReport() {
|
export function cancelReport() {
|
||||||
return {
|
return {
|
||||||
type: REPORT_CANCEL
|
type: REPORT_CANCEL,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -39,34 +39,34 @@ export function submitReport() {
|
||||||
api(getState).post('/api/v1/reports', {
|
api(getState).post('/api/v1/reports', {
|
||||||
account_id: getState().getIn(['reports', 'new', 'account_id']),
|
account_id: getState().getIn(['reports', 'new', 'account_id']),
|
||||||
status_ids: getState().getIn(['reports', 'new', 'status_ids']),
|
status_ids: getState().getIn(['reports', 'new', 'status_ids']),
|
||||||
comment: getState().getIn(['reports', 'new', 'comment'])
|
comment: getState().getIn(['reports', 'new', 'comment']),
|
||||||
}).then(response => dispatch(submitReportSuccess(response.data))).catch(error => dispatch(submitReportFail(error)));
|
}).then(response => dispatch(submitReportSuccess(response.data))).catch(error => dispatch(submitReportFail(error)));
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function submitReportRequest() {
|
export function submitReportRequest() {
|
||||||
return {
|
return {
|
||||||
type: REPORT_SUBMIT_REQUEST
|
type: REPORT_SUBMIT_REQUEST,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function submitReportSuccess(report) {
|
export function submitReportSuccess(report) {
|
||||||
return {
|
return {
|
||||||
type: REPORT_SUBMIT_SUCCESS,
|
type: REPORT_SUBMIT_SUCCESS,
|
||||||
report
|
report,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function submitReportFail(error) {
|
export function submitReportFail(error) {
|
||||||
return {
|
return {
|
||||||
type: REPORT_SUBMIT_FAIL,
|
type: REPORT_SUBMIT_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function changeReportComment(comment) {
|
export function changeReportComment(comment) {
|
||||||
return {
|
return {
|
||||||
type: REPORT_COMMENT_CHANGE,
|
type: REPORT_COMMENT_CHANGE,
|
||||||
comment
|
comment,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import api from '../api'
|
import api from '../api';
|
||||||
|
|
||||||
export const SEARCH_CHANGE = 'SEARCH_CHANGE';
|
export const SEARCH_CHANGE = 'SEARCH_CHANGE';
|
||||||
export const SEARCH_CLEAR = 'SEARCH_CLEAR';
|
export const SEARCH_CLEAR = 'SEARCH_CLEAR';
|
||||||
|
@ -11,13 +11,13 @@ export const SEARCH_FETCH_FAIL = 'SEARCH_FETCH_FAIL';
|
||||||
export function changeSearch(value) {
|
export function changeSearch(value) {
|
||||||
return {
|
return {
|
||||||
type: SEARCH_CHANGE,
|
type: SEARCH_CHANGE,
|
||||||
value
|
value,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function clearSearch() {
|
export function clearSearch() {
|
||||||
return {
|
return {
|
||||||
type: SEARCH_CLEAR
|
type: SEARCH_CLEAR,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -34,8 +34,8 @@ export function submitSearch() {
|
||||||
api(getState).get('/api/v1/search', {
|
api(getState).get('/api/v1/search', {
|
||||||
params: {
|
params: {
|
||||||
q: value,
|
q: value,
|
||||||
resolve: true
|
resolve: true,
|
||||||
}
|
},
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
dispatch(fetchSearchSuccess(response.data));
|
dispatch(fetchSearchSuccess(response.data));
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
|
@ -46,7 +46,7 @@ export function submitSearch() {
|
||||||
|
|
||||||
export function fetchSearchRequest() {
|
export function fetchSearchRequest() {
|
||||||
return {
|
return {
|
||||||
type: SEARCH_FETCH_REQUEST
|
type: SEARCH_FETCH_REQUEST,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -55,19 +55,19 @@ export function fetchSearchSuccess(results) {
|
||||||
type: SEARCH_FETCH_SUCCESS,
|
type: SEARCH_FETCH_SUCCESS,
|
||||||
results,
|
results,
|
||||||
accounts: results.accounts,
|
accounts: results.accounts,
|
||||||
statuses: results.statuses
|
statuses: results.statuses,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function fetchSearchFail(error) {
|
export function fetchSearchFail(error) {
|
||||||
return {
|
return {
|
||||||
type: SEARCH_FETCH_FAIL,
|
type: SEARCH_FETCH_FAIL,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function showSearch() {
|
export function showSearch() {
|
||||||
return {
|
return {
|
||||||
type: SEARCH_SHOW
|
type: SEARCH_SHOW,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,14 +6,14 @@ export function changeSetting(key, value) {
|
||||||
return {
|
return {
|
||||||
type: SETTING_CHANGE,
|
type: SETTING_CHANGE,
|
||||||
key,
|
key,
|
||||||
value
|
value,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function saveSettings() {
|
export function saveSettings() {
|
||||||
return (_, getState) => {
|
return (_, getState) => {
|
||||||
axios.put('/api/web/settings', {
|
axios.put('/api/web/settings', {
|
||||||
data: getState().get('settings').toJS()
|
data: getState().get('settings').toJS(),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -27,7 +27,7 @@ export function fetchStatusRequest(id, skipLoading) {
|
||||||
return {
|
return {
|
||||||
type: STATUS_FETCH_REQUEST,
|
type: STATUS_FETCH_REQUEST,
|
||||||
id,
|
id,
|
||||||
skipLoading
|
skipLoading,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@ export function fetchStatusSuccess(status, skipLoading) {
|
||||||
return {
|
return {
|
||||||
type: STATUS_FETCH_SUCCESS,
|
type: STATUS_FETCH_SUCCESS,
|
||||||
status,
|
status,
|
||||||
skipLoading
|
skipLoading,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ export function fetchStatusFail(id, error, skipLoading) {
|
||||||
id,
|
id,
|
||||||
error,
|
error,
|
||||||
skipLoading,
|
skipLoading,
|
||||||
skipAlert: true
|
skipAlert: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -86,14 +86,14 @@ export function deleteStatus(id) {
|
||||||
export function deleteStatusRequest(id) {
|
export function deleteStatusRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: STATUS_DELETE_REQUEST,
|
type: STATUS_DELETE_REQUEST,
|
||||||
id: id
|
id: id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function deleteStatusSuccess(id) {
|
export function deleteStatusSuccess(id) {
|
||||||
return {
|
return {
|
||||||
type: STATUS_DELETE_SUCCESS,
|
type: STATUS_DELETE_SUCCESS,
|
||||||
id: id
|
id: id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -101,7 +101,7 @@ export function deleteStatusFail(id, error) {
|
||||||
return {
|
return {
|
||||||
type: STATUS_DELETE_FAIL,
|
type: STATUS_DELETE_FAIL,
|
||||||
id: id,
|
id: id,
|
||||||
error: error
|
error: error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -125,7 +125,7 @@ export function fetchContext(id) {
|
||||||
export function fetchContextRequest(id) {
|
export function fetchContextRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: CONTEXT_FETCH_REQUEST,
|
type: CONTEXT_FETCH_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -135,7 +135,7 @@ export function fetchContextSuccess(id, ancestors, descendants) {
|
||||||
id,
|
id,
|
||||||
ancestors,
|
ancestors,
|
||||||
descendants,
|
descendants,
|
||||||
statuses: ancestors.concat(descendants)
|
statuses: ancestors.concat(descendants),
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -144,7 +144,7 @@ export function fetchContextFail(id, error) {
|
||||||
type: CONTEXT_FETCH_FAIL,
|
type: CONTEXT_FETCH_FAIL,
|
||||||
id,
|
id,
|
||||||
error,
|
error,
|
||||||
skipAlert: true
|
skipAlert: true,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -163,14 +163,14 @@ export function muteStatus(id) {
|
||||||
export function muteStatusRequest(id) {
|
export function muteStatusRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: STATUS_MUTE_REQUEST,
|
type: STATUS_MUTE_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function muteStatusSuccess(id) {
|
export function muteStatusSuccess(id) {
|
||||||
return {
|
return {
|
||||||
type: STATUS_MUTE_SUCCESS,
|
type: STATUS_MUTE_SUCCESS,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -178,7 +178,7 @@ export function muteStatusFail(id, error) {
|
||||||
return {
|
return {
|
||||||
type: STATUS_MUTE_FAIL,
|
type: STATUS_MUTE_FAIL,
|
||||||
id,
|
id,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -197,14 +197,14 @@ export function unmuteStatus(id) {
|
||||||
export function unmuteStatusRequest(id) {
|
export function unmuteStatusRequest(id) {
|
||||||
return {
|
return {
|
||||||
type: STATUS_UNMUTE_REQUEST,
|
type: STATUS_UNMUTE_REQUEST,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function unmuteStatusSuccess(id) {
|
export function unmuteStatusSuccess(id) {
|
||||||
return {
|
return {
|
||||||
type: STATUS_UNMUTE_SUCCESS,
|
type: STATUS_UNMUTE_SUCCESS,
|
||||||
id
|
id,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -212,6 +212,6 @@ export function unmuteStatusFail(id, error) {
|
||||||
return {
|
return {
|
||||||
type: STATUS_UNMUTE_FAIL,
|
type: STATUS_UNMUTE_FAIL,
|
||||||
id,
|
id,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -12,6 +12,6 @@ export function hydrateStore(rawState) {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
type: STORE_HYDRATE,
|
type: STORE_HYDRATE,
|
||||||
state
|
state,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import api, { getLinks } from '../api'
|
import api, { getLinks } from '../api';
|
||||||
import Immutable from 'immutable';
|
import Immutable from 'immutable';
|
||||||
|
|
||||||
export const TIMELINE_UPDATE = 'TIMELINE_UPDATE';
|
export const TIMELINE_UPDATE = 'TIMELINE_UPDATE';
|
||||||
|
@ -23,7 +23,7 @@ export function refreshTimelineSuccess(timeline, statuses, skipLoading, next) {
|
||||||
timeline,
|
timeline,
|
||||||
statuses,
|
statuses,
|
||||||
skipLoading,
|
skipLoading,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ export function updateTimeline(timeline, status) {
|
||||||
type: TIMELINE_UPDATE,
|
type: TIMELINE_UPDATE,
|
||||||
timeline,
|
timeline,
|
||||||
status,
|
status,
|
||||||
references
|
references,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -51,7 +51,7 @@ export function deleteFromTimelines(id) {
|
||||||
id,
|
id,
|
||||||
accountId,
|
accountId,
|
||||||
references,
|
references,
|
||||||
reblogOf
|
reblogOf,
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -61,7 +61,7 @@ export function refreshTimelineRequest(timeline, id, skipLoading) {
|
||||||
type: TIMELINE_REFRESH_REQUEST,
|
type: TIMELINE_REFRESH_REQUEST,
|
||||||
timeline,
|
timeline,
|
||||||
id,
|
id,
|
||||||
skipLoading
|
skipLoading,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ export function refreshTimelineFail(timeline, error, skipLoading) {
|
||||||
type: TIMELINE_REFRESH_FAIL,
|
type: TIMELINE_REFRESH_FAIL,
|
||||||
timeline,
|
timeline,
|
||||||
error,
|
error,
|
||||||
skipLoading
|
skipLoading,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -130,8 +130,8 @@ export function expandTimeline(timeline) {
|
||||||
params: {
|
params: {
|
||||||
...params,
|
...params,
|
||||||
max_id: lastId,
|
max_id: lastId,
|
||||||
limit: 10
|
limit: 10,
|
||||||
}
|
},
|
||||||
}).then(response => {
|
}).then(response => {
|
||||||
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
||||||
dispatch(expandTimelineSuccess(timeline, response.data, next ? next.uri : null));
|
dispatch(expandTimelineSuccess(timeline, response.data, next ? next.uri : null));
|
||||||
|
@ -144,7 +144,7 @@ export function expandTimeline(timeline) {
|
||||||
export function expandTimelineRequest(timeline) {
|
export function expandTimelineRequest(timeline) {
|
||||||
return {
|
return {
|
||||||
type: TIMELINE_EXPAND_REQUEST,
|
type: TIMELINE_EXPAND_REQUEST,
|
||||||
timeline
|
timeline,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -153,7 +153,7 @@ export function expandTimelineSuccess(timeline, statuses, next) {
|
||||||
type: TIMELINE_EXPAND_SUCCESS,
|
type: TIMELINE_EXPAND_SUCCESS,
|
||||||
timeline,
|
timeline,
|
||||||
statuses,
|
statuses,
|
||||||
next
|
next,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -161,7 +161,7 @@ export function expandTimelineFail(timeline, error) {
|
||||||
return {
|
return {
|
||||||
type: TIMELINE_EXPAND_FAIL,
|
type: TIMELINE_EXPAND_FAIL,
|
||||||
timeline,
|
timeline,
|
||||||
error
|
error,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -169,20 +169,20 @@ export function scrollTopTimeline(timeline, top) {
|
||||||
return {
|
return {
|
||||||
type: TIMELINE_SCROLL_TOP,
|
type: TIMELINE_SCROLL_TOP,
|
||||||
timeline,
|
timeline,
|
||||||
top
|
top,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function connectTimeline(timeline) {
|
export function connectTimeline(timeline) {
|
||||||
return {
|
return {
|
||||||
type: TIMELINE_CONNECT,
|
type: TIMELINE_CONNECT,
|
||||||
timeline
|
timeline,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
export function disconnectTimeline(timeline) {
|
export function disconnectTimeline(timeline) {
|
||||||
return {
|
return {
|
||||||
type: TIMELINE_DISCONNECT,
|
type: TIMELINE_DISCONNECT,
|
||||||
timeline
|
timeline,
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
@ -13,7 +13,7 @@ export const getLinks = response => {
|
||||||
|
|
||||||
export default getState => axios.create({
|
export default getState => axios.create({
|
||||||
headers: {
|
headers: {
|
||||||
'Authorization': `Bearer ${getState().getIn(['meta', 'access_token'], '')}`
|
'Authorization': `Bearer ${getState().getIn(['meta', 'access_token'], '')}`,
|
||||||
},
|
},
|
||||||
|
|
||||||
transformResponse: [function (data) {
|
transformResponse: [function (data) {
|
||||||
|
@ -22,5 +22,5 @@ export default getState => axios.create({
|
||||||
} catch(Exception) {
|
} catch(Exception) {
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
}]
|
}],
|
||||||
});
|
});
|
||||||
|
|
|
@ -13,7 +13,7 @@ const messages = defineMessages({
|
||||||
unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },
|
unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },
|
||||||
requested: { id: 'account.requested', defaultMessage: 'Awaiting approval' },
|
requested: { id: 'account.requested', defaultMessage: 'Awaiting approval' },
|
||||||
unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' },
|
unblock: { id: 'account.unblock', defaultMessage: 'Unblock @{name}' },
|
||||||
unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' }
|
unmute: { id: 'account.unmute', defaultMessage: 'Unmute @{name}' },
|
||||||
});
|
});
|
||||||
|
|
||||||
class Account extends ImmutablePureComponent {
|
class Account extends ImmutablePureComponent {
|
||||||
|
@ -24,7 +24,7 @@ class Account extends ImmutablePureComponent {
|
||||||
onFollow: PropTypes.func.isRequired,
|
onFollow: PropTypes.func.isRequired,
|
||||||
onBlock: PropTypes.func.isRequired,
|
onBlock: PropTypes.func.isRequired,
|
||||||
onMute: PropTypes.func.isRequired,
|
onMute: PropTypes.func.isRequired,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
constructor (props, context) {
|
constructor (props, context) {
|
||||||
|
@ -62,7 +62,7 @@ class Account extends ImmutablePureComponent {
|
||||||
const muting = account.getIn(['relationship', 'muting']);
|
const muting = account.getIn(['relationship', 'muting']);
|
||||||
|
|
||||||
if (requested) {
|
if (requested) {
|
||||||
buttons = <IconButton disabled={true} icon='hourglass' title={intl.formatMessage(messages.requested)} />
|
buttons = <IconButton disabled={true} icon='hourglass' title={intl.formatMessage(messages.requested)} />;
|
||||||
} else if (blocking) {
|
} else if (blocking) {
|
||||||
buttons = <IconButton active={true} icon='unlock-alt' title={intl.formatMessage(messages.unblock, { name: account.get('username') })} onClick={this.handleBlock} />;
|
buttons = <IconButton active={true} icon='unlock-alt' title={intl.formatMessage(messages.unblock, { name: account.get('username') })} onClick={this.handleBlock} />;
|
||||||
} else if (muting) {
|
} else if (muting) {
|
||||||
|
|
|
@ -6,7 +6,7 @@ const filename = url => url.split('/').pop().split('#')[0].split('?')[0];
|
||||||
class AttachmentList extends React.PureComponent {
|
class AttachmentList extends React.PureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
media: ImmutablePropTypes.list.isRequired
|
media: ImmutablePropTypes.list.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
|
|
@ -44,11 +44,11 @@ class AutosuggestTextarea extends ImmutablePureComponent {
|
||||||
onKeyUp: PropTypes.func,
|
onKeyUp: PropTypes.func,
|
||||||
onKeyDown: PropTypes.func,
|
onKeyDown: PropTypes.func,
|
||||||
onPaste: PropTypes.func.isRequired,
|
onPaste: PropTypes.func.isRequired,
|
||||||
autoFocus: PropTypes.bool
|
autoFocus: PropTypes.bool,
|
||||||
};
|
};
|
||||||
|
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
autoFocus: true
|
autoFocus: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
constructor (props, context) {
|
constructor (props, context) {
|
||||||
|
@ -57,7 +57,7 @@ class AutosuggestTextarea extends ImmutablePureComponent {
|
||||||
suggestionsHidden: false,
|
suggestionsHidden: false,
|
||||||
selectedSuggestion: 0,
|
selectedSuggestion: 0,
|
||||||
lastToken: null,
|
lastToken: null,
|
||||||
tokenStart: 0
|
tokenStart: 0,
|
||||||
};
|
};
|
||||||
this.onChange = this.onChange.bind(this);
|
this.onChange = this.onChange.bind(this);
|
||||||
this.onKeyDown = this.onKeyDown.bind(this);
|
this.onKeyDown = this.onKeyDown.bind(this);
|
||||||
|
@ -164,7 +164,7 @@ class AutosuggestTextarea extends ImmutablePureComponent {
|
||||||
|
|
||||||
onPaste (e) {
|
onPaste (e) {
|
||||||
if (e.clipboardData && e.clipboardData.files.length === 1) {
|
if (e.clipboardData && e.clipboardData.files.length === 1) {
|
||||||
this.props.onPaste(e.clipboardData.files)
|
this.props.onPaste(e.clipboardData.files);
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,17 +9,17 @@ class Avatar extends React.PureComponent {
|
||||||
size: PropTypes.number.isRequired,
|
size: PropTypes.number.isRequired,
|
||||||
style: PropTypes.object,
|
style: PropTypes.object,
|
||||||
animate: PropTypes.bool,
|
animate: PropTypes.bool,
|
||||||
inline: PropTypes.bool
|
inline: PropTypes.bool,
|
||||||
};
|
};
|
||||||
|
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
animate: false,
|
animate: false,
|
||||||
size: 20,
|
size: 20,
|
||||||
inline: false
|
inline: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
hovering: true
|
hovering: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleMouseEnter = () => {
|
handleMouseEnter = () => {
|
||||||
|
@ -46,7 +46,7 @@ class Avatar extends React.PureComponent {
|
||||||
...this.props.style,
|
...this.props.style,
|
||||||
width: `${size}px`,
|
width: `${size}px`,
|
||||||
height: `${size}px`,
|
height: `${size}px`,
|
||||||
backgroundSize: `${size}px ${size}px`
|
backgroundSize: `${size}px ${size}px`,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (hovering || animate) {
|
if (hovering || animate) {
|
||||||
|
|
|
@ -2,20 +2,21 @@ import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
class AvatarOverlay extends React.PureComponent {
|
class AvatarOverlay extends React.PureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
staticSrc: PropTypes.string.isRequired,
|
staticSrc: PropTypes.string.isRequired,
|
||||||
overlaySrc: PropTypes.string.isRequired
|
overlaySrc: PropTypes.string.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const {staticSrc, overlaySrc} = this.props;
|
const {staticSrc, overlaySrc} = this.props;
|
||||||
|
|
||||||
const baseStyle = {
|
const baseStyle = {
|
||||||
backgroundImage: `url(${staticSrc})`
|
backgroundImage: `url(${staticSrc})`,
|
||||||
};
|
};
|
||||||
|
|
||||||
const overlayStyle = {
|
const overlayStyle = {
|
||||||
backgroundImage: `url(${overlaySrc})`
|
backgroundImage: `url(${overlaySrc})`,
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -11,11 +11,11 @@ class Button extends React.PureComponent {
|
||||||
secondary: PropTypes.bool,
|
secondary: PropTypes.bool,
|
||||||
size: PropTypes.number,
|
size: PropTypes.number,
|
||||||
style: PropTypes.object,
|
style: PropTypes.object,
|
||||||
children: PropTypes.node
|
children: PropTypes.node,
|
||||||
};
|
};
|
||||||
|
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
size: 36
|
size: 36,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleClick = (e) => {
|
handleClick = (e) => {
|
||||||
|
@ -29,7 +29,7 @@ class Button extends React.PureComponent {
|
||||||
padding: `0 ${this.props.size / 2.25}px`,
|
padding: `0 ${this.props.size / 2.25}px`,
|
||||||
height: `${this.props.size}px`,
|
height: `${this.props.size}px`,
|
||||||
lineHeight: `${this.props.size}px`,
|
lineHeight: `${this.props.size}px`,
|
||||||
...this.props.style
|
...this.props.style,
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -16,7 +16,7 @@ const Collapsable = ({ fullHeight, isVisible, children }) => (
|
||||||
Collapsable.propTypes = {
|
Collapsable.propTypes = {
|
||||||
fullHeight: PropTypes.number.isRequired,
|
fullHeight: PropTypes.number.isRequired,
|
||||||
isVisible: PropTypes.bool.isRequired,
|
isVisible: PropTypes.bool.isRequired,
|
||||||
children: PropTypes.node.isRequired
|
children: PropTypes.node.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Collapsable;
|
export default Collapsable;
|
||||||
|
|
|
@ -5,7 +5,7 @@ import PropTypes from 'prop-types';
|
||||||
class ColumnBackButton extends React.PureComponent {
|
class ColumnBackButton extends React.PureComponent {
|
||||||
|
|
||||||
static contextTypes = {
|
static contextTypes = {
|
||||||
router: PropTypes.object
|
router: PropTypes.object,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleClick = () => {
|
handleClick = () => {
|
||||||
|
|
|
@ -5,7 +5,7 @@ import PropTypes from 'prop-types';
|
||||||
class ColumnBackButtonSlim extends React.PureComponent {
|
class ColumnBackButtonSlim extends React.PureComponent {
|
||||||
|
|
||||||
static contextTypes = {
|
static contextTypes = {
|
||||||
router: PropTypes.object
|
router: PropTypes.object,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleClick = () => {
|
handleClick = () => {
|
||||||
|
@ -22,6 +22,7 @@ class ColumnBackButtonSlim extends React.PureComponent {
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default ColumnBackButtonSlim;
|
export default ColumnBackButtonSlim;
|
||||||
|
|
|
@ -8,11 +8,11 @@ class ColumnCollapsable extends React.PureComponent {
|
||||||
title: PropTypes.string,
|
title: PropTypes.string,
|
||||||
fullHeight: PropTypes.number.isRequired,
|
fullHeight: PropTypes.number.isRequired,
|
||||||
children: PropTypes.node,
|
children: PropTypes.node,
|
||||||
onCollapse: PropTypes.func
|
onCollapse: PropTypes.func,
|
||||||
};
|
};
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
collapsed: true
|
collapsed: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleToggleCollapsed = () => {
|
handleToggleCollapsed = () => {
|
||||||
|
@ -41,6 +41,7 @@ class ColumnCollapsable extends React.PureComponent {
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default ColumnCollapsable;
|
export default ColumnCollapsable;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import emojify from '../emoji';
|
||||||
class DisplayName extends React.PureComponent {
|
class DisplayName extends React.PureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
account: ImmutablePropTypes.map.isRequired
|
account: ImmutablePropTypes.map.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
|
|
@ -5,7 +5,7 @@ import PropTypes from 'prop-types';
|
||||||
class DropdownMenu extends React.PureComponent {
|
class DropdownMenu extends React.PureComponent {
|
||||||
|
|
||||||
static contextTypes = {
|
static contextTypes = {
|
||||||
router: PropTypes.object
|
router: PropTypes.object,
|
||||||
};
|
};
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
|
@ -13,11 +13,11 @@ class DropdownMenu extends React.PureComponent {
|
||||||
items: PropTypes.array.isRequired,
|
items: PropTypes.array.isRequired,
|
||||||
size: PropTypes.number.isRequired,
|
size: PropTypes.number.isRequired,
|
||||||
direction: PropTypes.string,
|
direction: PropTypes.string,
|
||||||
ariaLabel: PropTypes.string
|
ariaLabel: PropTypes.string,
|
||||||
};
|
};
|
||||||
|
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
ariaLabel: "Menu"
|
ariaLabel: "Menu",
|
||||||
};
|
};
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
|
|
|
@ -7,7 +7,7 @@ class ExtendedVideoPlayer extends React.PureComponent {
|
||||||
src: PropTypes.string.isRequired,
|
src: PropTypes.string.isRequired,
|
||||||
time: PropTypes.number,
|
time: PropTypes.number,
|
||||||
controls: PropTypes.bool.isRequired,
|
controls: PropTypes.bool.isRequired,
|
||||||
muted: PropTypes.bool.isRequired
|
muted: PropTypes.bool.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleLoadedData = () => {
|
handleLoadedData = () => {
|
||||||
|
|
|
@ -17,7 +17,7 @@ class IconButton extends React.PureComponent {
|
||||||
disabled: PropTypes.bool,
|
disabled: PropTypes.bool,
|
||||||
inverted: PropTypes.bool,
|
inverted: PropTypes.bool,
|
||||||
animate: PropTypes.bool,
|
animate: PropTypes.bool,
|
||||||
overlay: PropTypes.bool
|
overlay: PropTypes.bool,
|
||||||
};
|
};
|
||||||
|
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
|
@ -25,7 +25,7 @@ class IconButton extends React.PureComponent {
|
||||||
active: false,
|
active: false,
|
||||||
disabled: false,
|
disabled: false,
|
||||||
animate: false,
|
animate: false,
|
||||||
overlay: false
|
overlay: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleClick = (e) => {
|
handleClick = (e) => {
|
||||||
|
@ -43,7 +43,7 @@ class IconButton extends React.PureComponent {
|
||||||
height: `${this.props.size * 1.28571429}px`,
|
height: `${this.props.size * 1.28571429}px`,
|
||||||
lineHeight: `${this.props.size}px`,
|
lineHeight: `${this.props.size}px`,
|
||||||
...this.props.style,
|
...this.props.style,
|
||||||
...(this.props.active ? this.props.activeStyle : {})
|
...(this.props.active ? this.props.activeStyle : {}),
|
||||||
};
|
};
|
||||||
|
|
||||||
const classes = ['icon-button'];
|
const classes = ['icon-button'];
|
||||||
|
@ -65,7 +65,7 @@ class IconButton extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.props.className) {
|
if (this.props.className) {
|
||||||
classes.push(this.props.className)
|
classes.push(this.props.className);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
|
@ -9,7 +9,7 @@ const LoadMore = ({ onClick }) => (
|
||||||
);
|
);
|
||||||
|
|
||||||
LoadMore.propTypes = {
|
LoadMore.propTypes = {
|
||||||
onClick: PropTypes.func
|
onClick: PropTypes.func,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default LoadMore;
|
export default LoadMore;
|
||||||
|
|
|
@ -6,7 +6,7 @@ import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
||||||
import { isIOS } from '../is_mobile';
|
import { isIOS } from '../is_mobile';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
toggle_visible: { id: 'media_gallery.toggle_visible', defaultMessage: 'Toggle visibility' }
|
toggle_visible: { id: 'media_gallery.toggle_visible', defaultMessage: 'Toggle visibility' },
|
||||||
});
|
});
|
||||||
|
|
||||||
class Item extends React.PureComponent {
|
class Item extends React.PureComponent {
|
||||||
|
@ -16,7 +16,7 @@ class Item extends React.PureComponent {
|
||||||
index: PropTypes.number.isRequired,
|
index: PropTypes.number.isRequired,
|
||||||
size: PropTypes.number.isRequired,
|
size: PropTypes.number.isRequired,
|
||||||
onClick: PropTypes.func.isRequired,
|
onClick: PropTypes.func.isRequired,
|
||||||
autoPlayGif: PropTypes.bool.isRequired
|
autoPlayGif: PropTypes.bool.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleClick = (e) => {
|
handleClick = (e) => {
|
||||||
|
@ -131,11 +131,11 @@ class MediaGallery extends React.PureComponent {
|
||||||
height: PropTypes.number.isRequired,
|
height: PropTypes.number.isRequired,
|
||||||
onOpenMedia: PropTypes.func.isRequired,
|
onOpenMedia: PropTypes.func.isRequired,
|
||||||
intl: PropTypes.object.isRequired,
|
intl: PropTypes.object.isRequired,
|
||||||
autoPlayGif: PropTypes.bool.isRequired
|
autoPlayGif: PropTypes.bool.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
visible: !this.props.sensitive
|
visible: !this.props.sensitive,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleOpen = (e) => {
|
handleOpen = (e) => {
|
||||||
|
|
|
@ -4,14 +4,14 @@ import PropTypes from 'prop-types';
|
||||||
class Permalink extends React.PureComponent {
|
class Permalink extends React.PureComponent {
|
||||||
|
|
||||||
static contextTypes = {
|
static contextTypes = {
|
||||||
router: PropTypes.object
|
router: PropTypes.object,
|
||||||
};
|
};
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
className: PropTypes.string,
|
className: PropTypes.string,
|
||||||
href: PropTypes.string.isRequired,
|
href: PropTypes.string.isRequired,
|
||||||
to: PropTypes.string.isRequired,
|
to: PropTypes.string.isRequired,
|
||||||
children: PropTypes.node
|
children: PropTypes.node,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleClick = (e) => {
|
handleClick = (e) => {
|
||||||
|
|
|
@ -14,7 +14,7 @@ const RelativeTimestamp = ({ intl, timestamp }) => {
|
||||||
|
|
||||||
RelativeTimestamp.propTypes = {
|
RelativeTimestamp.propTypes = {
|
||||||
intl: PropTypes.object.isRequired,
|
intl: PropTypes.object.isRequired,
|
||||||
timestamp: PropTypes.string.isRequired
|
timestamp: PropTypes.string.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default injectIntl(RelativeTimestamp);
|
export default injectIntl(RelativeTimestamp);
|
||||||
|
|
|
@ -18,7 +18,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
class Status extends ImmutablePureComponent {
|
class Status extends ImmutablePureComponent {
|
||||||
|
|
||||||
static contextTypes = {
|
static contextTypes = {
|
||||||
router: PropTypes.object
|
router: PropTypes.object,
|
||||||
};
|
};
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
|
@ -35,7 +35,7 @@ class Status extends ImmutablePureComponent {
|
||||||
me: PropTypes.number,
|
me: PropTypes.number,
|
||||||
boostModal: PropTypes.bool,
|
boostModal: PropTypes.bool,
|
||||||
autoPlayGif: PropTypes.bool,
|
autoPlayGif: PropTypes.bool,
|
||||||
muted: PropTypes.bool
|
muted: PropTypes.bool,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleClick = () => {
|
handleClick = () => {
|
||||||
|
|
|
@ -24,7 +24,7 @@ const messages = defineMessages({
|
||||||
class StatusActionBar extends React.PureComponent {
|
class StatusActionBar extends React.PureComponent {
|
||||||
|
|
||||||
static contextTypes = {
|
static contextTypes = {
|
||||||
router: PropTypes.object
|
router: PropTypes.object,
|
||||||
};
|
};
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
|
@ -40,7 +40,7 @@ class StatusActionBar extends React.PureComponent {
|
||||||
onMuteConversation: PropTypes.func,
|
onMuteConversation: PropTypes.func,
|
||||||
me: PropTypes.number.isRequired,
|
me: PropTypes.number.isRequired,
|
||||||
withDismiss: PropTypes.bool,
|
withDismiss: PropTypes.bool,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleReplyClick = () => {
|
handleReplyClick = () => {
|
||||||
|
|
|
@ -10,16 +10,16 @@ import Permalink from './permalink';
|
||||||
class StatusContent extends React.PureComponent {
|
class StatusContent extends React.PureComponent {
|
||||||
|
|
||||||
static contextTypes = {
|
static contextTypes = {
|
||||||
router: PropTypes.object
|
router: PropTypes.object,
|
||||||
};
|
};
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
status: ImmutablePropTypes.map.isRequired,
|
status: ImmutablePropTypes.map.isRequired,
|
||||||
onClick: PropTypes.func
|
onClick: PropTypes.func,
|
||||||
};
|
};
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
hidden: true
|
hidden: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
|
@ -107,7 +107,7 @@ class StatusContent extends React.PureComponent {
|
||||||
<Permalink to={`/accounts/${item.get('id')}`} href={item.get('url')} key={item.get('id')} className='mention'>
|
<Permalink to={`/accounts/${item.get('id')}`} href={item.get('url')} key={item.get('id')} className='mention'>
|
||||||
@<span>{item.get('username')}</span>
|
@<span>{item.get('username')}</span>
|
||||||
</Permalink>
|
</Permalink>
|
||||||
)).reduce((aggregate, item) => [...aggregate, item, ' '], [])
|
)).reduce((aggregate, item) => [...aggregate, item, ' '], []);
|
||||||
|
|
||||||
const toggleText = hidden ? <FormattedMessage id='status.show_more' defaultMessage='Show more' /> : <FormattedMessage id='status.show_less' defaultMessage='Show less' />;
|
const toggleText = hidden ? <FormattedMessage id='status.show_more' defaultMessage='Show more' /> : <FormattedMessage id='status.show_less' defaultMessage='Show less' />;
|
||||||
|
|
||||||
|
|
|
@ -20,11 +20,11 @@ class StatusList extends ImmutablePureComponent {
|
||||||
isUnread: PropTypes.bool,
|
isUnread: PropTypes.bool,
|
||||||
hasMore: PropTypes.bool,
|
hasMore: PropTypes.bool,
|
||||||
prepend: PropTypes.node,
|
prepend: PropTypes.node,
|
||||||
emptyMessage: PropTypes.node
|
emptyMessage: PropTypes.node,
|
||||||
};
|
};
|
||||||
|
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
trackScroll: true
|
trackScroll: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleScroll = (e) => {
|
handleScroll = (e) => {
|
||||||
|
|
|
@ -20,12 +20,12 @@ class VideoPlayer extends React.PureComponent {
|
||||||
sensitive: PropTypes.bool,
|
sensitive: PropTypes.bool,
|
||||||
intl: PropTypes.object.isRequired,
|
intl: PropTypes.object.isRequired,
|
||||||
autoplay: PropTypes.bool,
|
autoplay: PropTypes.bool,
|
||||||
onOpenVideo: PropTypes.func.isRequired
|
onOpenVideo: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
width: 239,
|
width: 239,
|
||||||
height: 110
|
height: 110,
|
||||||
};
|
};
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
|
@ -33,7 +33,7 @@ class VideoPlayer extends React.PureComponent {
|
||||||
preview: true,
|
preview: true,
|
||||||
muted: true,
|
muted: true,
|
||||||
hasAudio: true,
|
hasAudio: true,
|
||||||
videoError: false
|
videoError: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleClick = () => {
|
handleClick = () => {
|
||||||
|
@ -59,7 +59,7 @@ class VideoPlayer extends React.PureComponent {
|
||||||
handleVisibility = () => {
|
handleVisibility = () => {
|
||||||
this.setState({
|
this.setState({
|
||||||
visible: !this.state.visible,
|
visible: !this.state.visible,
|
||||||
preview: true
|
preview: true,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ const makeMapStateToProps = () => {
|
||||||
|
|
||||||
const mapStateToProps = (state, props) => ({
|
const mapStateToProps = (state, props) => ({
|
||||||
account: getAccount(state, props.id),
|
account: getAccount(state, props.id),
|
||||||
me: state.getIn(['meta', 'me'])
|
me: state.getIn(['meta', 'me']),
|
||||||
});
|
});
|
||||||
|
|
||||||
return mapStateToProps;
|
return mapStateToProps;
|
||||||
|
@ -44,7 +44,7 @@ const mapDispatchToProps = (dispatch) => ({
|
||||||
} else {
|
} else {
|
||||||
dispatch(muteAccount(account.get('id')));
|
dispatch(muteAccount(account.get('id')));
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
export default connect(makeMapStateToProps, mapDispatchToProps)(Account);
|
export default connect(makeMapStateToProps, mapDispatchToProps)(Account);
|
||||||
|
|
|
@ -8,7 +8,7 @@ import {
|
||||||
deleteFromTimelines,
|
deleteFromTimelines,
|
||||||
refreshTimeline,
|
refreshTimeline,
|
||||||
connectTimeline,
|
connectTimeline,
|
||||||
disconnectTimeline
|
disconnectTimeline,
|
||||||
} from '../actions/timelines';
|
} from '../actions/timelines';
|
||||||
import { showOnboardingOnce } from '../actions/onboarding';
|
import { showOnboardingOnce } from '../actions/onboarding';
|
||||||
import { updateNotifications, refreshNotifications } from '../actions/notifications';
|
import { updateNotifications, refreshNotifications } from '../actions/notifications';
|
||||||
|
@ -75,7 +75,7 @@ const initialState = JSON.parse(document.getElementById("initial-state").textCon
|
||||||
store.dispatch(hydrateStore(initialState));
|
store.dispatch(hydrateStore(initialState));
|
||||||
|
|
||||||
const browserHistory = useRouterHistory(createBrowserHistory)({
|
const browserHistory = useRouterHistory(createBrowserHistory)({
|
||||||
basename: '/web'
|
basename: '/web',
|
||||||
});
|
});
|
||||||
|
|
||||||
addLocaleData([
|
addLocaleData([
|
||||||
|
@ -155,7 +155,7 @@ class Mastodon extends React.PureComponent {
|
||||||
store.dispatch(connectTimeline('home'));
|
store.dispatch(connectTimeline('home'));
|
||||||
store.dispatch(refreshTimeline('home'));
|
store.dispatch(refreshTimeline('home'));
|
||||||
store.dispatch(refreshNotifications());
|
store.dispatch(refreshNotifications());
|
||||||
}
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -223,7 +223,7 @@ class Mastodon extends React.PureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
Mastodon.propTypes = {
|
Mastodon.propTypes = {
|
||||||
locale: PropTypes.string.isRequired
|
locale: PropTypes.string.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default Mastodon;
|
export default Mastodon;
|
||||||
|
|
|
@ -4,23 +4,23 @@ import Status from '../components/status';
|
||||||
import { makeGetStatus } from '../selectors';
|
import { makeGetStatus } from '../selectors';
|
||||||
import {
|
import {
|
||||||
replyCompose,
|
replyCompose,
|
||||||
mentionCompose
|
mentionCompose,
|
||||||
} from '../actions/compose';
|
} from '../actions/compose';
|
||||||
import {
|
import {
|
||||||
reblog,
|
reblog,
|
||||||
favourite,
|
favourite,
|
||||||
unreblog,
|
unreblog,
|
||||||
unfavourite
|
unfavourite,
|
||||||
} from '../actions/interactions';
|
} from '../actions/interactions';
|
||||||
import {
|
import {
|
||||||
blockAccount,
|
blockAccount,
|
||||||
muteAccount
|
muteAccount,
|
||||||
} from '../actions/accounts';
|
} from '../actions/accounts';
|
||||||
import { muteStatus, unmuteStatus, deleteStatus } from '../actions/statuses';
|
import { muteStatus, unmuteStatus, deleteStatus } from '../actions/statuses';
|
||||||
import { initReport } from '../actions/reports';
|
import { initReport } from '../actions/reports';
|
||||||
import { openModal } from '../actions/modal';
|
import { openModal } from '../actions/modal';
|
||||||
import { createSelector } from 'reselect'
|
import { createSelector } from 'reselect';
|
||||||
import { isMobile } from '../is_mobile'
|
import { isMobile } from '../is_mobile';
|
||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
|
@ -37,7 +37,7 @@ const makeMapStateToProps = () => {
|
||||||
status: getStatus(state, props.id),
|
status: getStatus(state, props.id),
|
||||||
me: state.getIn(['meta', 'me']),
|
me: state.getIn(['meta', 'me']),
|
||||||
boostModal: state.getIn(['meta', 'boost_modal']),
|
boostModal: state.getIn(['meta', 'boost_modal']),
|
||||||
autoPlayGif: state.getIn(['meta', 'auto_play_gif'])
|
autoPlayGif: state.getIn(['meta', 'auto_play_gif']),
|
||||||
});
|
});
|
||||||
|
|
||||||
return mapStateToProps;
|
return mapStateToProps;
|
||||||
|
@ -77,7 +77,7 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
|
||||||
dispatch(openModal('CONFIRM', {
|
dispatch(openModal('CONFIRM', {
|
||||||
message: intl.formatMessage(messages.deleteMessage),
|
message: intl.formatMessage(messages.deleteMessage),
|
||||||
confirm: intl.formatMessage(messages.deleteConfirm),
|
confirm: intl.formatMessage(messages.deleteConfirm),
|
||||||
onConfirm: () => dispatch(deleteStatus(status.get('id')))
|
onConfirm: () => dispatch(deleteStatus(status.get('id'))),
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -97,7 +97,7 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
|
||||||
dispatch(openModal('CONFIRM', {
|
dispatch(openModal('CONFIRM', {
|
||||||
message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
|
message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
|
||||||
confirm: intl.formatMessage(messages.blockConfirm),
|
confirm: intl.formatMessage(messages.blockConfirm),
|
||||||
onConfirm: () => dispatch(blockAccount(account.get('id')))
|
onConfirm: () => dispatch(blockAccount(account.get('id'))),
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
|
||||||
dispatch(openModal('CONFIRM', {
|
dispatch(openModal('CONFIRM', {
|
||||||
message: <FormattedMessage id='confirmations.mute.message' defaultMessage='Are you sure you want to mute {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
|
message: <FormattedMessage id='confirmations.mute.message' defaultMessage='Are you sure you want to mute {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
|
||||||
confirm: intl.formatMessage(messages.muteConfirm),
|
confirm: intl.formatMessage(messages.muteConfirm),
|
||||||
onConfirm: () => dispatch(muteAccount(account.get('id')))
|
onConfirm: () => dispatch(muteAccount(account.get('id'))),
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@ class ActionBar extends React.PureComponent {
|
||||||
onMute: PropTypes.func.isRequired,
|
onMute: PropTypes.func.isRequired,
|
||||||
onBlockDomain: PropTypes.func.isRequired,
|
onBlockDomain: PropTypes.func.isRequired,
|
||||||
onUnblockDomain: PropTypes.func.isRequired,
|
onUnblockDomain: PropTypes.func.isRequired,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
|
|
@ -13,12 +13,12 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },
|
unfollow: { id: 'account.unfollow', defaultMessage: 'Unfollow' },
|
||||||
follow: { id: 'account.follow', defaultMessage: 'Follow' },
|
follow: { id: 'account.follow', defaultMessage: 'Follow' },
|
||||||
requested: { id: 'account.requested', defaultMessage: 'Awaiting approval' }
|
requested: { id: 'account.requested', defaultMessage: 'Awaiting approval' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const makeMapStateToProps = () => {
|
const makeMapStateToProps = () => {
|
||||||
const mapStateToProps = (state, props) => ({
|
const mapStateToProps = (state, props) => ({
|
||||||
autoPlayGif: state.getIn(['meta', 'auto_play_gif'])
|
autoPlayGif: state.getIn(['meta', 'auto_play_gif']),
|
||||||
});
|
});
|
||||||
|
|
||||||
return mapStateToProps;
|
return mapStateToProps;
|
||||||
|
@ -28,11 +28,11 @@ class Avatar extends ImmutablePureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
account: ImmutablePropTypes.map.isRequired,
|
account: ImmutablePropTypes.map.isRequired,
|
||||||
autoPlayGif: PropTypes.bool.isRequired
|
autoPlayGif: PropTypes.bool.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
isHovered: false
|
isHovered: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleMouseOver = () => {
|
handleMouseOver = () => {
|
||||||
|
@ -77,7 +77,7 @@ class Header extends ImmutablePureComponent {
|
||||||
me: PropTypes.number.isRequired,
|
me: PropTypes.number.isRequired,
|
||||||
onFollow: PropTypes.func.isRequired,
|
onFollow: PropTypes.func.isRequired,
|
||||||
intl: PropTypes.object.isRequired,
|
intl: PropTypes.object.isRequired,
|
||||||
autoPlayGif: PropTypes.bool.isRequired
|
autoPlayGif: PropTypes.bool.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
@ -97,7 +97,7 @@ class Header extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (me !== account.get('id') && account.getIn(['relationship', 'followed_by'])) {
|
if (me !== account.get('id') && account.getIn(['relationship', 'followed_by'])) {
|
||||||
info = <span className='account--follows-info'><FormattedMessage id='account.follows_you' defaultMessage='Follows you' /></span>
|
info = <span className='account--follows-info'><FormattedMessage id='account.follows_you' defaultMessage='Follows you' /></span>;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (me !== account.get('id')) {
|
if (me !== account.get('id')) {
|
||||||
|
|
|
@ -6,7 +6,7 @@ import Permalink from '../../../components/permalink';
|
||||||
class MediaItem extends ImmutablePureComponent {
|
class MediaItem extends ImmutablePureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
media: ImmutablePropTypes.map.isRequired
|
media: ImmutablePropTypes.map.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
@ -34,6 +34,7 @@ class MediaItem extends ImmutablePureComponent {
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default MediaItem;
|
export default MediaItem;
|
||||||
|
|
|
@ -5,7 +5,7 @@ import PropTypes from 'prop-types';
|
||||||
import {
|
import {
|
||||||
fetchAccount,
|
fetchAccount,
|
||||||
fetchAccountMediaTimeline,
|
fetchAccountMediaTimeline,
|
||||||
expandAccountMediaTimeline
|
expandAccountMediaTimeline,
|
||||||
} from '../../actions/accounts';
|
} from '../../actions/accounts';
|
||||||
import LoadingIndicator from '../../components/loading_indicator';
|
import LoadingIndicator from '../../components/loading_indicator';
|
||||||
import Column from '../ui/components/column';
|
import Column from '../ui/components/column';
|
||||||
|
|
|
@ -21,7 +21,7 @@ class Header extends ImmutablePureComponent {
|
||||||
};
|
};
|
||||||
|
|
||||||
static contextTypes = {
|
static contextTypes = {
|
||||||
router: PropTypes.object
|
router: PropTypes.object,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleFollow = () => {
|
handleFollow = () => {
|
||||||
|
|
|
@ -8,7 +8,7 @@ import {
|
||||||
blockAccount,
|
blockAccount,
|
||||||
unblockAccount,
|
unblockAccount,
|
||||||
muteAccount,
|
muteAccount,
|
||||||
unmuteAccount
|
unmuteAccount,
|
||||||
} from '../../../actions/accounts';
|
} from '../../../actions/accounts';
|
||||||
import { mentionCompose } from '../../../actions/compose';
|
import { mentionCompose } from '../../../actions/compose';
|
||||||
import { initReport } from '../../../actions/reports';
|
import { initReport } from '../../../actions/reports';
|
||||||
|
@ -27,7 +27,7 @@ const makeMapStateToProps = () => {
|
||||||
|
|
||||||
const mapStateToProps = (state, { accountId }) => ({
|
const mapStateToProps = (state, { accountId }) => ({
|
||||||
account: getAccount(state, Number(accountId)),
|
account: getAccount(state, Number(accountId)),
|
||||||
me: state.getIn(['meta', 'me'])
|
me: state.getIn(['meta', 'me']),
|
||||||
});
|
});
|
||||||
|
|
||||||
return mapStateToProps;
|
return mapStateToProps;
|
||||||
|
@ -49,7 +49,7 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
|
||||||
dispatch(openModal('CONFIRM', {
|
dispatch(openModal('CONFIRM', {
|
||||||
message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
|
message: <FormattedMessage id='confirmations.block.message' defaultMessage='Are you sure you want to block {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
|
||||||
confirm: intl.formatMessage(messages.blockConfirm),
|
confirm: intl.formatMessage(messages.blockConfirm),
|
||||||
onConfirm: () => dispatch(blockAccount(account.get('id')))
|
onConfirm: () => dispatch(blockAccount(account.get('id'))),
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -69,7 +69,7 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
|
||||||
dispatch(openModal('CONFIRM', {
|
dispatch(openModal('CONFIRM', {
|
||||||
message: <FormattedMessage id='confirmations.mute.message' defaultMessage='Are you sure you want to mute {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
|
message: <FormattedMessage id='confirmations.mute.message' defaultMessage='Are you sure you want to mute {name}?' values={{ name: <strong>@{account.get('acct')}</strong> }} />,
|
||||||
confirm: intl.formatMessage(messages.muteConfirm),
|
confirm: intl.formatMessage(messages.muteConfirm),
|
||||||
onConfirm: () => dispatch(muteAccount(account.get('id')))
|
onConfirm: () => dispatch(muteAccount(account.get('id'))),
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -78,13 +78,13 @@ const mapDispatchToProps = (dispatch, { intl }) => ({
|
||||||
dispatch(openModal('CONFIRM', {
|
dispatch(openModal('CONFIRM', {
|
||||||
message: <FormattedMessage id='confirmations.domain_block.message' defaultMessage='Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.' values={{ domain: <strong>{domain}</strong> }} />,
|
message: <FormattedMessage id='confirmations.domain_block.message' defaultMessage='Are you really, really sure you want to block the entire {domain}? In most cases a few targeted blocks or mutes are sufficient and preferable.' values={{ domain: <strong>{domain}</strong> }} />,
|
||||||
confirm: intl.formatMessage(messages.blockDomainConfirm),
|
confirm: intl.formatMessage(messages.blockDomainConfirm),
|
||||||
onConfirm: () => dispatch(blockDomain(domain, accountId))
|
onConfirm: () => dispatch(blockDomain(domain, accountId)),
|
||||||
}));
|
}));
|
||||||
},
|
},
|
||||||
|
|
||||||
onUnblockDomain (domain, accountId) {
|
onUnblockDomain (domain, accountId) {
|
||||||
dispatch(unblockDomain(domain, accountId));
|
dispatch(unblockDomain(domain, accountId));
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Header));
|
export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Header));
|
||||||
|
|
|
@ -5,7 +5,7 @@ import PropTypes from 'prop-types';
|
||||||
import {
|
import {
|
||||||
fetchAccount,
|
fetchAccount,
|
||||||
fetchAccountTimeline,
|
fetchAccountTimeline,
|
||||||
expandAccountTimeline
|
expandAccountTimeline,
|
||||||
} from '../../actions/accounts';
|
} from '../../actions/accounts';
|
||||||
import StatusList from '../../components/status_list';
|
import StatusList from '../../components/status_list';
|
||||||
import LoadingIndicator from '../../components/loading_indicator';
|
import LoadingIndicator from '../../components/loading_indicator';
|
||||||
|
@ -19,7 +19,7 @@ const mapStateToProps = (state, props) => ({
|
||||||
statusIds: state.getIn(['timelines', 'accounts_timelines', Number(props.params.accountId), 'items'], Immutable.List()),
|
statusIds: state.getIn(['timelines', 'accounts_timelines', Number(props.params.accountId), 'items'], Immutable.List()),
|
||||||
isLoading: state.getIn(['timelines', 'accounts_timelines', Number(props.params.accountId), 'isLoading']),
|
isLoading: state.getIn(['timelines', 'accounts_timelines', Number(props.params.accountId), 'isLoading']),
|
||||||
hasMore: !!state.getIn(['timelines', 'accounts_timelines', Number(props.params.accountId), 'next']),
|
hasMore: !!state.getIn(['timelines', 'accounts_timelines', Number(props.params.accountId), 'next']),
|
||||||
me: state.getIn(['meta', 'me'])
|
me: state.getIn(['meta', 'me']),
|
||||||
});
|
});
|
||||||
|
|
||||||
class AccountTimeline extends ImmutablePureComponent {
|
class AccountTimeline extends ImmutablePureComponent {
|
||||||
|
@ -30,7 +30,7 @@ class AccountTimeline extends ImmutablePureComponent {
|
||||||
statusIds: ImmutablePropTypes.list,
|
statusIds: ImmutablePropTypes.list,
|
||||||
isLoading: PropTypes.bool,
|
isLoading: PropTypes.bool,
|
||||||
hasMore: PropTypes.bool,
|
hasMore: PropTypes.bool,
|
||||||
me: PropTypes.number.isRequired
|
me: PropTypes.number.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
componentWillMount () {
|
componentWillMount () {
|
||||||
|
|
|
@ -12,11 +12,11 @@ import { defineMessages, injectIntl } from 'react-intl';
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
heading: { id: 'column.blocks', defaultMessage: 'Blocked users' }
|
heading: { id: 'column.blocks', defaultMessage: 'Blocked users' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
accountIds: state.getIn(['user_lists', 'blocks', 'items'])
|
accountIds: state.getIn(['user_lists', 'blocks', 'items']),
|
||||||
});
|
});
|
||||||
|
|
||||||
class Blocks extends ImmutablePureComponent {
|
class Blocks extends ImmutablePureComponent {
|
||||||
|
@ -25,7 +25,7 @@ class Blocks extends ImmutablePureComponent {
|
||||||
params: PropTypes.object.isRequired,
|
params: PropTypes.object.isRequired,
|
||||||
dispatch: PropTypes.func.isRequired,
|
dispatch: PropTypes.func.isRequired,
|
||||||
accountIds: ImmutablePropTypes.list,
|
accountIds: ImmutablePropTypes.list,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
componentWillMount () {
|
componentWillMount () {
|
||||||
|
@ -64,6 +64,7 @@ class Blocks extends ImmutablePureComponent {
|
||||||
</Column>
|
</Column>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default connect(mapStateToProps)(injectIntl(Blocks));
|
export default connect(mapStateToProps)(injectIntl(Blocks));
|
||||||
|
|
|
@ -8,20 +8,20 @@ import {
|
||||||
updateTimeline,
|
updateTimeline,
|
||||||
deleteFromTimelines,
|
deleteFromTimelines,
|
||||||
connectTimeline,
|
connectTimeline,
|
||||||
disconnectTimeline
|
disconnectTimeline,
|
||||||
} from '../../actions/timelines';
|
} from '../../actions/timelines';
|
||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
||||||
import ColumnBackButtonSlim from '../../components/column_back_button_slim';
|
import ColumnBackButtonSlim from '../../components/column_back_button_slim';
|
||||||
import createStream from '../../stream';
|
import createStream from '../../stream';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
title: { id: 'column.community', defaultMessage: 'Local timeline' }
|
title: { id: 'column.community', defaultMessage: 'Local timeline' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
hasUnread: state.getIn(['timelines', 'community', 'unread']) > 0,
|
hasUnread: state.getIn(['timelines', 'community', 'unread']) > 0,
|
||||||
streamingAPIBaseURL: state.getIn(['meta', 'streaming_api_base_url']),
|
streamingAPIBaseURL: state.getIn(['meta', 'streaming_api_base_url']),
|
||||||
accessToken: state.getIn(['meta', 'access_token'])
|
accessToken: state.getIn(['meta', 'access_token']),
|
||||||
});
|
});
|
||||||
|
|
||||||
let subscription;
|
let subscription;
|
||||||
|
@ -33,7 +33,7 @@ class CommunityTimeline extends React.PureComponent {
|
||||||
intl: PropTypes.object.isRequired,
|
intl: PropTypes.object.isRequired,
|
||||||
streamingAPIBaseURL: PropTypes.string.isRequired,
|
streamingAPIBaseURL: PropTypes.string.isRequired,
|
||||||
accessToken: PropTypes.string.isRequired,
|
accessToken: PropTypes.string.isRequired,
|
||||||
hasUnread: PropTypes.bool
|
hasUnread: PropTypes.bool,
|
||||||
};
|
};
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
|
@ -68,7 +68,7 @@ class CommunityTimeline extends React.PureComponent {
|
||||||
dispatch(deleteFromTimelines(data.payload));
|
dispatch(deleteFromTimelines(data.payload));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,7 +7,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
class AutosuggestAccount extends ImmutablePureComponent {
|
class AutosuggestAccount extends ImmutablePureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
account: ImmutablePropTypes.map.isRequired
|
account: ImmutablePropTypes.map.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
|
|
@ -6,7 +6,7 @@ class CharacterCounter extends React.PureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
text: PropTypes.string.isRequired,
|
text: PropTypes.string.isRequired,
|
||||||
max: PropTypes.number.isRequired
|
max: PropTypes.number.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
checkRemainingText (diff) {
|
checkRemainingText (diff) {
|
||||||
|
|
|
@ -53,7 +53,7 @@ class ComposeForm extends ImmutablePureComponent {
|
||||||
};
|
};
|
||||||
|
|
||||||
static defaultProps = {
|
static defaultProps = {
|
||||||
showSearch: false
|
showSearch: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleChange = (e) => {
|
handleChange = (e) => {
|
||||||
|
|
|
@ -13,13 +13,13 @@ const messages = defineMessages({
|
||||||
travel: { id: 'emoji_button.travel', defaultMessage: 'Travel & Places' },
|
travel: { id: 'emoji_button.travel', defaultMessage: 'Travel & Places' },
|
||||||
objects: { id: 'emoji_button.objects', defaultMessage: 'Objects' },
|
objects: { id: 'emoji_button.objects', defaultMessage: 'Objects' },
|
||||||
symbols: { id: 'emoji_button.symbols', defaultMessage: 'Symbols' },
|
symbols: { id: 'emoji_button.symbols', defaultMessage: 'Symbols' },
|
||||||
flags: { id: 'emoji_button.flags', defaultMessage: 'Flags' }
|
flags: { id: 'emoji_button.flags', defaultMessage: 'Flags' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const settings = {
|
const settings = {
|
||||||
imageType: 'png',
|
imageType: 'png',
|
||||||
sprites: false,
|
sprites: false,
|
||||||
imagePathPNG: '/emoji/'
|
imagePathPNG: '/emoji/',
|
||||||
};
|
};
|
||||||
|
|
||||||
let EmojiPicker; // load asynchronously
|
let EmojiPicker; // load asynchronously
|
||||||
|
@ -28,12 +28,12 @@ class EmojiPickerDropdown extends React.PureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
intl: PropTypes.object.isRequired,
|
intl: PropTypes.object.isRequired,
|
||||||
onPickEmoji: PropTypes.func.isRequired
|
onPickEmoji: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
active: false,
|
active: false,
|
||||||
loading: false
|
loading: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
setRef = (c) => {
|
setRef = (c) => {
|
||||||
|
@ -98,8 +98,8 @@ class EmojiPickerDropdown extends React.PureComponent {
|
||||||
flags: {
|
flags: {
|
||||||
title: intl.formatMessage(messages.flags),
|
title: intl.formatMessage(messages.flags),
|
||||||
emoji: 'flag_gb',
|
emoji: 'flag_gb',
|
||||||
}
|
},
|
||||||
}
|
};
|
||||||
|
|
||||||
const { active, loading } = this.state;
|
const { active, loading } = this.state;
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
class NavigationBar extends ImmutablePureComponent {
|
class NavigationBar extends ImmutablePureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
account: ImmutablePropTypes.map.isRequired
|
account: ImmutablePropTypes.map.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
|
|
@ -12,24 +12,24 @@ const messages = defineMessages({
|
||||||
private_long: { id: 'privacy.private.long', defaultMessage: 'Post to followers only' },
|
private_long: { id: 'privacy.private.long', defaultMessage: 'Post to followers only' },
|
||||||
direct_short: { id: 'privacy.direct.short', defaultMessage: 'Direct' },
|
direct_short: { id: 'privacy.direct.short', defaultMessage: 'Direct' },
|
||||||
direct_long: { id: 'privacy.direct.long', defaultMessage: 'Post to mentioned users only' },
|
direct_long: { id: 'privacy.direct.long', defaultMessage: 'Post to mentioned users only' },
|
||||||
change_privacy: { id: 'privacy.change', defaultMessage: 'Adjust status privacy' }
|
change_privacy: { id: 'privacy.change', defaultMessage: 'Adjust status privacy' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const iconStyle = {
|
const iconStyle = {
|
||||||
height: null,
|
height: null,
|
||||||
lineHeight: '27px'
|
lineHeight: '27px',
|
||||||
}
|
};
|
||||||
|
|
||||||
class PrivacyDropdown extends React.PureComponent {
|
class PrivacyDropdown extends React.PureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
value: PropTypes.string.isRequired,
|
value: PropTypes.string.isRequired,
|
||||||
onChange: PropTypes.func.isRequired,
|
onChange: PropTypes.func.isRequired,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
state = {
|
state = {
|
||||||
open: false
|
open: false,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleToggle = () => {
|
handleToggle = () => {
|
||||||
|
@ -71,7 +71,7 @@ class PrivacyDropdown extends React.PureComponent {
|
||||||
{ icon: 'globe', value: 'public', shortText: intl.formatMessage(messages.public_short), longText: intl.formatMessage(messages.public_long) },
|
{ icon: 'globe', value: 'public', shortText: intl.formatMessage(messages.public_short), longText: intl.formatMessage(messages.public_long) },
|
||||||
{ icon: 'unlock-alt', value: 'unlisted', shortText: intl.formatMessage(messages.unlisted_short), longText: intl.formatMessage(messages.unlisted_long) },
|
{ icon: 'unlock-alt', value: 'unlisted', shortText: intl.formatMessage(messages.unlisted_short), longText: intl.formatMessage(messages.unlisted_long) },
|
||||||
{ icon: 'lock', value: 'private', shortText: intl.formatMessage(messages.private_short), longText: intl.formatMessage(messages.private_long) },
|
{ icon: 'lock', value: 'private', shortText: intl.formatMessage(messages.private_short), longText: intl.formatMessage(messages.private_long) },
|
||||||
{ icon: 'envelope', value: 'direct', shortText: intl.formatMessage(messages.direct_short), longText: intl.formatMessage(messages.direct_long) }
|
{ icon: 'envelope', value: 'direct', shortText: intl.formatMessage(messages.direct_short), longText: intl.formatMessage(messages.direct_long) },
|
||||||
];
|
];
|
||||||
|
|
||||||
const valueOption = options.find(item => item.value === value);
|
const valueOption = options.find(item => item.value === value);
|
||||||
|
|
|
@ -9,19 +9,19 @@ import { defineMessages, injectIntl } from 'react-intl';
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
cancel: { id: 'reply_indicator.cancel', defaultMessage: 'Cancel' }
|
cancel: { id: 'reply_indicator.cancel', defaultMessage: 'Cancel' },
|
||||||
});
|
});
|
||||||
|
|
||||||
class ReplyIndicator extends ImmutablePureComponent {
|
class ReplyIndicator extends ImmutablePureComponent {
|
||||||
|
|
||||||
static contextTypes = {
|
static contextTypes = {
|
||||||
router: PropTypes.object
|
router: PropTypes.object,
|
||||||
};
|
};
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
status: ImmutablePropTypes.map,
|
status: ImmutablePropTypes.map,
|
||||||
onCancel: PropTypes.func.isRequired,
|
onCancel: PropTypes.func.isRequired,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleClick = () => {
|
handleClick = () => {
|
||||||
|
|
|
@ -3,7 +3,7 @@ import PropTypes from 'prop-types';
|
||||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
placeholder: { id: 'search.placeholder', defaultMessage: 'Search' }
|
placeholder: { id: 'search.placeholder', defaultMessage: 'Search' },
|
||||||
});
|
});
|
||||||
|
|
||||||
class Search extends React.PureComponent {
|
class Search extends React.PureComponent {
|
||||||
|
@ -15,7 +15,7 @@ class Search extends React.PureComponent {
|
||||||
onSubmit: PropTypes.func.isRequired,
|
onSubmit: PropTypes.func.isRequired,
|
||||||
onClear: PropTypes.func.isRequired,
|
onClear: PropTypes.func.isRequired,
|
||||||
onShow: PropTypes.func.isRequired,
|
onShow: PropTypes.func.isRequired,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleChange = (e) => {
|
handleChange = (e) => {
|
||||||
|
|
|
@ -9,7 +9,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
class SearchResults extends ImmutablePureComponent {
|
class SearchResults extends ImmutablePureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
results: ImmutablePropTypes.map.isRequired
|
results: ImmutablePropTypes.map.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
|
|
@ -8,7 +8,7 @@ class TextIconButton extends React.PureComponent {
|
||||||
title: PropTypes.string,
|
title: PropTypes.string,
|
||||||
active: PropTypes.bool,
|
active: PropTypes.bool,
|
||||||
onClick: PropTypes.func.isRequired,
|
onClick: PropTypes.func.isRequired,
|
||||||
ariaControls: PropTypes.string
|
ariaControls: PropTypes.string,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleClick = (e) => {
|
handleClick = (e) => {
|
||||||
|
|
|
@ -5,7 +5,7 @@ import { defineMessages, injectIntl } from 'react-intl';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
upload: { id: 'upload_button.label', defaultMessage: 'Add media' }
|
upload: { id: 'upload_button.label', defaultMessage: 'Add media' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const makeMapStateToProps = () => {
|
const makeMapStateToProps = () => {
|
||||||
|
@ -14,12 +14,12 @@ const makeMapStateToProps = () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
return mapStateToProps;
|
return mapStateToProps;
|
||||||
}
|
};
|
||||||
|
|
||||||
const iconStyle = {
|
const iconStyle = {
|
||||||
height: null,
|
height: null,
|
||||||
lineHeight: '27px'
|
lineHeight: '27px',
|
||||||
}
|
};
|
||||||
|
|
||||||
class UploadButton extends React.PureComponent {
|
class UploadButton extends React.PureComponent {
|
||||||
|
|
||||||
|
@ -29,7 +29,7 @@ class UploadButton extends React.PureComponent {
|
||||||
style: PropTypes.object,
|
style: PropTypes.object,
|
||||||
resetFileKey: PropTypes.number,
|
resetFileKey: PropTypes.number,
|
||||||
acceptContentTypes: PropTypes.arrayOf(PropTypes.string).isRequired,
|
acceptContentTypes: PropTypes.arrayOf(PropTypes.string).isRequired,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleChange = (e) => {
|
handleChange = (e) => {
|
||||||
|
|
|
@ -8,7 +8,7 @@ import Motion from 'react-motion/lib/Motion';
|
||||||
import spring from 'react-motion/lib/spring';
|
import spring from 'react-motion/lib/spring';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
undo: { id: 'upload_form.undo', defaultMessage: 'Undo' }
|
undo: { id: 'upload_form.undo', defaultMessage: 'Undo' },
|
||||||
});
|
});
|
||||||
|
|
||||||
class UploadForm extends React.PureComponent {
|
class UploadForm extends React.PureComponent {
|
||||||
|
@ -16,7 +16,7 @@ class UploadForm extends React.PureComponent {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
media: ImmutablePropTypes.list.isRequired,
|
media: ImmutablePropTypes.list.isRequired,
|
||||||
onRemoveFile: PropTypes.func.isRequired,
|
onRemoveFile: PropTypes.func.isRequired,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
onRemoveFile = (e) => {
|
onRemoveFile = (e) => {
|
||||||
|
|
|
@ -8,7 +8,7 @@ class UploadProgress extends React.PureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
active: PropTypes.bool,
|
active: PropTypes.bool,
|
||||||
progress: PropTypes.number
|
progress: PropTypes.number,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
|
|
@ -4,7 +4,7 @@ import PropTypes from 'prop-types';
|
||||||
class Warning extends React.PureComponent {
|
class Warning extends React.PureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
message: PropTypes.node.isRequired
|
message: PropTypes.node.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
|
|
@ -6,7 +6,7 @@ const makeMapStateToProps = () => {
|
||||||
const getAccount = makeGetAccount();
|
const getAccount = makeGetAccount();
|
||||||
|
|
||||||
const mapStateToProps = (state, { id }) => ({
|
const mapStateToProps = (state, { id }) => ({
|
||||||
account: getAccount(state, id)
|
account: getAccount(state, id),
|
||||||
});
|
});
|
||||||
|
|
||||||
return mapStateToProps;
|
return mapStateToProps;
|
||||||
|
|
|
@ -6,7 +6,7 @@ const makeMapStateToProps = () => {
|
||||||
const getStatus = makeGetStatus();
|
const getStatus = makeGetStatus();
|
||||||
|
|
||||||
const mapStateToProps = (state, { id }) => ({
|
const mapStateToProps = (state, { id }) => ({
|
||||||
status: getStatus(state, id)
|
status: getStatus(state, id),
|
||||||
});
|
});
|
||||||
|
|
||||||
return mapStateToProps;
|
return mapStateToProps;
|
||||||
|
|
|
@ -8,7 +8,7 @@ import {
|
||||||
fetchComposeSuggestions,
|
fetchComposeSuggestions,
|
||||||
selectComposeSuggestion,
|
selectComposeSuggestion,
|
||||||
changeComposeSpoilerText,
|
changeComposeSpoilerText,
|
||||||
insertEmojiCompose
|
insertEmojiCompose,
|
||||||
} from '../../../actions/compose';
|
} from '../../../actions/compose';
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
|
@ -23,7 +23,7 @@ const mapStateToProps = state => ({
|
||||||
is_submitting: state.getIn(['compose', 'is_submitting']),
|
is_submitting: state.getIn(['compose', 'is_submitting']),
|
||||||
is_uploading: state.getIn(['compose', 'is_uploading']),
|
is_uploading: state.getIn(['compose', 'is_uploading']),
|
||||||
me: state.getIn(['compose', 'me']),
|
me: state.getIn(['compose', 'me']),
|
||||||
showSearch: state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden'])
|
showSearch: state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']),
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
|
|
|
@ -3,7 +3,7 @@ import NavigationBar from '../components/navigation_bar';
|
||||||
|
|
||||||
const mapStateToProps = (state, props) => {
|
const mapStateToProps = (state, props) => {
|
||||||
return {
|
return {
|
||||||
account: state.getIn(['accounts', state.getIn(['meta', 'me'])])
|
account: state.getIn(['accounts', state.getIn(['meta', 'me'])]),
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -3,14 +3,14 @@ import PrivacyDropdown from '../components/privacy_dropdown';
|
||||||
import { changeComposeVisibility } from '../../../actions/compose';
|
import { changeComposeVisibility } from '../../../actions/compose';
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
value: state.getIn(['compose', 'privacy'])
|
value: state.getIn(['compose', 'privacy']),
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => ({
|
const mapDispatchToProps = dispatch => ({
|
||||||
|
|
||||||
onChange (value) {
|
onChange (value) {
|
||||||
dispatch(changeComposeVisibility(value));
|
dispatch(changeComposeVisibility(value));
|
||||||
}
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,7 @@ const mapDispatchToProps = dispatch => ({
|
||||||
|
|
||||||
onCancel () {
|
onCancel () {
|
||||||
dispatch(cancelReplyCompose());
|
dispatch(cancelReplyCompose());
|
||||||
}
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -3,13 +3,13 @@ import {
|
||||||
changeSearch,
|
changeSearch,
|
||||||
clearSearch,
|
clearSearch,
|
||||||
submitSearch,
|
submitSearch,
|
||||||
showSearch
|
showSearch,
|
||||||
} from '../../../actions/search';
|
} from '../../../actions/search';
|
||||||
import Search from '../components/search';
|
import Search from '../components/search';
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
value: state.getIn(['search', 'value']),
|
value: state.getIn(['search', 'value']),
|
||||||
submitted: state.getIn(['search', 'submitted'])
|
submitted: state.getIn(['search', 'submitted']),
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => ({
|
const mapDispatchToProps = dispatch => ({
|
||||||
|
@ -28,7 +28,7 @@ const mapDispatchToProps = dispatch => ({
|
||||||
|
|
||||||
onShow () {
|
onShow () {
|
||||||
dispatch(showSearch());
|
dispatch(showSearch());
|
||||||
}
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@ import { connect } from 'react-redux';
|
||||||
import SearchResults from '../components/search_results';
|
import SearchResults from '../components/search_results';
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
results: state.getIn(['search', 'results'])
|
results: state.getIn(['search', 'results']),
|
||||||
});
|
});
|
||||||
|
|
||||||
export default connect(mapStateToProps)(SearchResults);
|
export default connect(mapStateToProps)(SearchResults);
|
||||||
|
|
|
@ -8,19 +8,19 @@ import spring from 'react-motion/lib/spring';
|
||||||
import { injectIntl, defineMessages } from 'react-intl';
|
import { injectIntl, defineMessages } from 'react-intl';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
title: { id: 'compose_form.sensitive', defaultMessage: 'Mark media as sensitive' }
|
title: { id: 'compose_form.sensitive', defaultMessage: 'Mark media as sensitive' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
visible: state.getIn(['compose', 'media_attachments']).size > 0,
|
visible: state.getIn(['compose', 'media_attachments']).size > 0,
|
||||||
active: state.getIn(['compose', 'sensitive'])
|
active: state.getIn(['compose', 'sensitive']),
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => ({
|
const mapDispatchToProps = dispatch => ({
|
||||||
|
|
||||||
onClick () {
|
onClick () {
|
||||||
dispatch(changeComposeSensitivity());
|
dispatch(changeComposeSensitivity());
|
||||||
}
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ class SensitiveButton extends React.PureComponent {
|
||||||
visible: PropTypes.bool,
|
visible: PropTypes.bool,
|
||||||
active: PropTypes.bool,
|
active: PropTypes.bool,
|
||||||
onClick: PropTypes.func.isRequired,
|
onClick: PropTypes.func.isRequired,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
|
|
@ -4,21 +4,21 @@ import { changeComposeSpoilerness } from '../../../actions/compose';
|
||||||
import { injectIntl, defineMessages } from 'react-intl';
|
import { injectIntl, defineMessages } from 'react-intl';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
title: { id: 'compose_form.spoiler', defaultMessage: 'Hide text behind warning' }
|
title: { id: 'compose_form.spoiler', defaultMessage: 'Hide text behind warning' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapStateToProps = (state, { intl }) => ({
|
const mapStateToProps = (state, { intl }) => ({
|
||||||
label: 'CW',
|
label: 'CW',
|
||||||
title: intl.formatMessage(messages.title),
|
title: intl.formatMessage(messages.title),
|
||||||
active: state.getIn(['compose', 'spoiler']),
|
active: state.getIn(['compose', 'spoiler']),
|
||||||
ariaControls: 'cw-spoiler-input'
|
ariaControls: 'cw-spoiler-input',
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => ({
|
const mapDispatchToProps = dispatch => ({
|
||||||
|
|
||||||
onClick () {
|
onClick () {
|
||||||
dispatch(changeComposeSpoilerness());
|
dispatch(changeComposeSpoilerness());
|
||||||
}
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -4,14 +4,14 @@ import { uploadCompose } from '../../../actions/compose';
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
disabled: state.getIn(['compose', 'is_uploading']) || (state.getIn(['compose', 'media_attachments']).size > 3 || state.getIn(['compose', 'media_attachments']).some(m => m.get('type') === 'video')),
|
disabled: state.getIn(['compose', 'is_uploading']) || (state.getIn(['compose', 'media_attachments']).size > 3 || state.getIn(['compose', 'media_attachments']).some(m => m.get('type') === 'video')),
|
||||||
resetFileKey: state.getIn(['compose', 'resetFileKey'])
|
resetFileKey: state.getIn(['compose', 'resetFileKey']),
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => ({
|
const mapDispatchToProps = dispatch => ({
|
||||||
|
|
||||||
onSelectFile (files) {
|
onSelectFile (files) {
|
||||||
dispatch(uploadCompose(files));
|
dispatch(uploadCompose(files));
|
||||||
}
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ const mapDispatchToProps = dispatch => ({
|
||||||
|
|
||||||
onRemoveFile (media_id) {
|
onRemoveFile (media_id) {
|
||||||
dispatch(undoUploadCompose(media_id));
|
dispatch(undoUploadCompose(media_id));
|
||||||
}
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -3,7 +3,7 @@ import UploadProgress from '../components/upload_progress';
|
||||||
|
|
||||||
const mapStateToProps = (state, props) => ({
|
const mapStateToProps = (state, props) => ({
|
||||||
active: state.getIn(['compose', 'is_uploading']),
|
active: state.getIn(['compose', 'is_uploading']),
|
||||||
progress: state.getIn(['compose', 'progress'])
|
progress: state.getIn(['compose', 'progress']),
|
||||||
});
|
});
|
||||||
|
|
||||||
export default connect(mapStateToProps)(UploadProgress);
|
export default connect(mapStateToProps)(UploadProgress);
|
||||||
|
|
|
@ -20,7 +20,7 @@ const mapStateToProps = state => {
|
||||||
return {
|
return {
|
||||||
needsLeakWarning: (state.getIn(['compose', 'privacy']) === 'private' || state.getIn(['compose', 'privacy']) === 'direct') && mentionedUsernames !== null,
|
needsLeakWarning: (state.getIn(['compose', 'privacy']) === 'private' || state.getIn(['compose', 'privacy']) === 'direct') && mentionedUsernames !== null,
|
||||||
mentionedDomains: mentionedUsernamesWithDomains,
|
mentionedDomains: mentionedUsernamesWithDomains,
|
||||||
needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', state.getIn(['meta', 'me']), 'locked'])
|
needsLockWarning: state.getIn(['compose', 'privacy']) === 'private' && !state.getIn(['accounts', state.getIn(['meta', 'me']), 'locked']),
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -17,11 +17,11 @@ const messages = defineMessages({
|
||||||
public: { id: 'navigation_bar.public_timeline', defaultMessage: 'Federated timeline' },
|
public: { id: 'navigation_bar.public_timeline', defaultMessage: 'Federated timeline' },
|
||||||
community: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },
|
community: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' },
|
||||||
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
|
preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' },
|
||||||
logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' }
|
logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
showSearch: state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden'])
|
showSearch: state.getIn(['search', 'submitted']) && !state.getIn(['search', 'hidden']),
|
||||||
});
|
});
|
||||||
|
|
||||||
class Compose extends React.PureComponent {
|
class Compose extends React.PureComponent {
|
||||||
|
@ -30,7 +30,7 @@ class Compose extends React.PureComponent {
|
||||||
dispatch: PropTypes.func.isRequired,
|
dispatch: PropTypes.func.isRequired,
|
||||||
withHeader: PropTypes.bool,
|
withHeader: PropTypes.bool,
|
||||||
showSearch: PropTypes.bool,
|
showSearch: PropTypes.bool,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
componentDidMount () {
|
componentDidMount () {
|
||||||
|
|
|
@ -11,13 +11,13 @@ import { defineMessages, injectIntl } from 'react-intl';
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
heading: { id: 'column.favourites', defaultMessage: 'Favourites' }
|
heading: { id: 'column.favourites', defaultMessage: 'Favourites' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
statusIds: state.getIn(['status_lists', 'favourites', 'items']),
|
statusIds: state.getIn(['status_lists', 'favourites', 'items']),
|
||||||
loaded: state.getIn(['status_lists', 'favourites', 'loaded']),
|
loaded: state.getIn(['status_lists', 'favourites', 'loaded']),
|
||||||
me: state.getIn(['meta', 'me'])
|
me: state.getIn(['meta', 'me']),
|
||||||
});
|
});
|
||||||
|
|
||||||
class Favourites extends ImmutablePureComponent {
|
class Favourites extends ImmutablePureComponent {
|
||||||
|
@ -27,7 +27,7 @@ class Favourites extends ImmutablePureComponent {
|
||||||
statusIds: ImmutablePropTypes.list.isRequired,
|
statusIds: ImmutablePropTypes.list.isRequired,
|
||||||
loaded: PropTypes.bool,
|
loaded: PropTypes.bool,
|
||||||
intl: PropTypes.object.isRequired,
|
intl: PropTypes.object.isRequired,
|
||||||
me: PropTypes.number.isRequired
|
me: PropTypes.number.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
componentWillMount () {
|
componentWillMount () {
|
||||||
|
|
|
@ -11,7 +11,7 @@ import ColumnBackButton from '../../components/column_back_button';
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
|
|
||||||
const mapStateToProps = (state, props) => ({
|
const mapStateToProps = (state, props) => ({
|
||||||
accountIds: state.getIn(['user_lists', 'favourited_by', Number(props.params.statusId)])
|
accountIds: state.getIn(['user_lists', 'favourited_by', Number(props.params.statusId)]),
|
||||||
});
|
});
|
||||||
|
|
||||||
class Favourites extends ImmutablePureComponent {
|
class Favourites extends ImmutablePureComponent {
|
||||||
|
@ -19,7 +19,7 @@ class Favourites extends ImmutablePureComponent {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
params: PropTypes.object.isRequired,
|
params: PropTypes.object.isRequired,
|
||||||
dispatch: PropTypes.func.isRequired,
|
dispatch: PropTypes.func.isRequired,
|
||||||
accountIds: ImmutablePropTypes.list
|
accountIds: ImmutablePropTypes.list,
|
||||||
};
|
};
|
||||||
|
|
||||||
componentWillMount () {
|
componentWillMount () {
|
||||||
|
|
|
@ -11,7 +11,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
authorize: { id: 'follow_request.authorize', defaultMessage: 'Authorize' },
|
authorize: { id: 'follow_request.authorize', defaultMessage: 'Authorize' },
|
||||||
reject: { id: 'follow_request.reject', defaultMessage: 'Reject' }
|
reject: { id: 'follow_request.reject', defaultMessage: 'Reject' },
|
||||||
});
|
});
|
||||||
|
|
||||||
class AccountAuthorize extends ImmutablePureComponent {
|
class AccountAuthorize extends ImmutablePureComponent {
|
||||||
|
@ -20,7 +20,7 @@ class AccountAuthorize extends ImmutablePureComponent {
|
||||||
account: ImmutablePropTypes.map.isRequired,
|
account: ImmutablePropTypes.map.isRequired,
|
||||||
onAuthorize: PropTypes.func.isRequired,
|
onAuthorize: PropTypes.func.isRequired,
|
||||||
onReject: PropTypes.func.isRequired,
|
onReject: PropTypes.func.isRequired,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
|
|
@ -7,7 +7,7 @@ const makeMapStateToProps = () => {
|
||||||
const getAccount = makeGetAccount();
|
const getAccount = makeGetAccount();
|
||||||
|
|
||||||
const mapStateToProps = (state, props) => ({
|
const mapStateToProps = (state, props) => ({
|
||||||
account: getAccount(state, props.id)
|
account: getAccount(state, props.id),
|
||||||
});
|
});
|
||||||
|
|
||||||
return mapStateToProps;
|
return mapStateToProps;
|
||||||
|
@ -20,7 +20,7 @@ const mapDispatchToProps = (dispatch, { id }) => ({
|
||||||
|
|
||||||
onReject (account) {
|
onReject (account) {
|
||||||
dispatch(rejectFollowRequest(id));
|
dispatch(rejectFollowRequest(id));
|
||||||
}
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
export default connect(makeMapStateToProps, mapDispatchToProps)(AccountAuthorize);
|
export default connect(makeMapStateToProps, mapDispatchToProps)(AccountAuthorize);
|
||||||
|
|
|
@ -12,11 +12,11 @@ import { defineMessages, injectIntl } from 'react-intl';
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
heading: { id: 'column.follow_requests', defaultMessage: 'Follow requests' }
|
heading: { id: 'column.follow_requests', defaultMessage: 'Follow requests' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
accountIds: state.getIn(['user_lists', 'follow_requests', 'items'])
|
accountIds: state.getIn(['user_lists', 'follow_requests', 'items']),
|
||||||
});
|
});
|
||||||
|
|
||||||
class FollowRequests extends ImmutablePureComponent {
|
class FollowRequests extends ImmutablePureComponent {
|
||||||
|
@ -25,7 +25,7 @@ class FollowRequests extends ImmutablePureComponent {
|
||||||
params: PropTypes.object.isRequired,
|
params: PropTypes.object.isRequired,
|
||||||
dispatch: PropTypes.func.isRequired,
|
dispatch: PropTypes.func.isRequired,
|
||||||
accountIds: ImmutablePropTypes.list,
|
accountIds: ImmutablePropTypes.list,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
componentWillMount () {
|
componentWillMount () {
|
||||||
|
|
|
@ -6,7 +6,7 @@ import LoadingIndicator from '../../components/loading_indicator';
|
||||||
import {
|
import {
|
||||||
fetchAccount,
|
fetchAccount,
|
||||||
fetchFollowers,
|
fetchFollowers,
|
||||||
expandFollowers
|
expandFollowers,
|
||||||
} from '../../actions/accounts';
|
} from '../../actions/accounts';
|
||||||
import { ScrollContainer } from 'react-router-scroll';
|
import { ScrollContainer } from 'react-router-scroll';
|
||||||
import AccountContainer from '../../containers/account_container';
|
import AccountContainer from '../../containers/account_container';
|
||||||
|
@ -17,7 +17,7 @@ import ColumnBackButton from '../../components/column_back_button';
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
|
|
||||||
const mapStateToProps = (state, props) => ({
|
const mapStateToProps = (state, props) => ({
|
||||||
accountIds: state.getIn(['user_lists', 'followers', Number(props.params.accountId), 'items'])
|
accountIds: state.getIn(['user_lists', 'followers', Number(props.params.accountId), 'items']),
|
||||||
});
|
});
|
||||||
|
|
||||||
class Followers extends ImmutablePureComponent {
|
class Followers extends ImmutablePureComponent {
|
||||||
|
@ -25,7 +25,7 @@ class Followers extends ImmutablePureComponent {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
params: PropTypes.object.isRequired,
|
params: PropTypes.object.isRequired,
|
||||||
dispatch: PropTypes.func.isRequired,
|
dispatch: PropTypes.func.isRequired,
|
||||||
accountIds: ImmutablePropTypes.list
|
accountIds: ImmutablePropTypes.list,
|
||||||
};
|
};
|
||||||
|
|
||||||
componentWillMount () {
|
componentWillMount () {
|
||||||
|
|
|
@ -6,7 +6,7 @@ import LoadingIndicator from '../../components/loading_indicator';
|
||||||
import {
|
import {
|
||||||
fetchAccount,
|
fetchAccount,
|
||||||
fetchFollowing,
|
fetchFollowing,
|
||||||
expandFollowing
|
expandFollowing,
|
||||||
} from '../../actions/accounts';
|
} from '../../actions/accounts';
|
||||||
import { ScrollContainer } from 'react-router-scroll';
|
import { ScrollContainer } from 'react-router-scroll';
|
||||||
import AccountContainer from '../../containers/account_container';
|
import AccountContainer from '../../containers/account_container';
|
||||||
|
@ -17,7 +17,7 @@ import ColumnBackButton from '../../components/column_back_button';
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
|
|
||||||
const mapStateToProps = (state, props) => ({
|
const mapStateToProps = (state, props) => ({
|
||||||
accountIds: state.getIn(['user_lists', 'following', Number(props.params.accountId), 'items'])
|
accountIds: state.getIn(['user_lists', 'following', Number(props.params.accountId), 'items']),
|
||||||
});
|
});
|
||||||
|
|
||||||
class Following extends ImmutablePureComponent {
|
class Following extends ImmutablePureComponent {
|
||||||
|
@ -25,7 +25,7 @@ class Following extends ImmutablePureComponent {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
params: PropTypes.object.isRequired,
|
params: PropTypes.object.isRequired,
|
||||||
dispatch: PropTypes.func.isRequired,
|
dispatch: PropTypes.func.isRequired,
|
||||||
accountIds: ImmutablePropTypes.list
|
accountIds: ImmutablePropTypes.list,
|
||||||
};
|
};
|
||||||
|
|
||||||
componentWillMount () {
|
componentWillMount () {
|
||||||
|
|
|
@ -21,18 +21,18 @@ const messages = defineMessages({
|
||||||
favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },
|
favourites: { id: 'navigation_bar.favourites', defaultMessage: 'Favourites' },
|
||||||
blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
|
blocks: { id: 'navigation_bar.blocks', defaultMessage: 'Blocked users' },
|
||||||
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
|
mutes: { id: 'navigation_bar.mutes', defaultMessage: 'Muted users' },
|
||||||
info: { id: 'navigation_bar.info', defaultMessage: 'Extended information' }
|
info: { id: 'navigation_bar.info', defaultMessage: 'Extended information' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
me: state.getIn(['accounts', state.getIn(['meta', 'me'])])
|
me: state.getIn(['accounts', state.getIn(['meta', 'me'])]),
|
||||||
});
|
});
|
||||||
|
|
||||||
class GettingStarted extends ImmutablePureComponent {
|
class GettingStarted extends ImmutablePureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
intl: PropTypes.object.isRequired,
|
intl: PropTypes.object.isRequired,
|
||||||
me: ImmutablePropTypes.map.isRequired
|
me: ImmutablePropTypes.map.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
@ -69,7 +69,7 @@ class GettingStarted extends ImmutablePureComponent {
|
||||||
values={{
|
values={{
|
||||||
faq: <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/FAQ.md" rel="noopener" target="_blank"><FormattedMessage id='getting_started.faq' defaultMessage='FAQ' /></a>,
|
faq: <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/FAQ.md" rel="noopener" target="_blank"><FormattedMessage id='getting_started.faq' defaultMessage='FAQ' /></a>,
|
||||||
userguide: <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/User-guide.md" rel="noopener" target="_blank"><FormattedMessage id='getting_started.userguide' defaultMessage='User Guide' /></a>,
|
userguide: <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/User-guide.md" rel="noopener" target="_blank"><FormattedMessage id='getting_started.userguide' defaultMessage='User Guide' /></a>,
|
||||||
apps: <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md" rel="noopener" target="_blank"><FormattedMessage id='getting_started.appsshort' defaultMessage='Apps' /></a>
|
apps: <a href="https://github.com/tootsuite/documentation/blob/master/Using-Mastodon/Apps.md" rel="noopener" target="_blank"><FormattedMessage id='getting_started.appsshort' defaultMessage='Apps' /></a>,
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</p>
|
</p>
|
||||||
|
@ -85,6 +85,7 @@ class GettingStarted extends ImmutablePureComponent {
|
||||||
</Column>
|
</Column>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default connect(mapStateToProps)(injectIntl(GettingStarted));
|
export default connect(mapStateToProps)(injectIntl(GettingStarted));
|
||||||
|
|
|
@ -6,7 +6,7 @@ import Column from '../ui/components/column';
|
||||||
import {
|
import {
|
||||||
refreshTimeline,
|
refreshTimeline,
|
||||||
updateTimeline,
|
updateTimeline,
|
||||||
deleteFromTimelines
|
deleteFromTimelines,
|
||||||
} from '../../actions/timelines';
|
} from '../../actions/timelines';
|
||||||
import ColumnBackButtonSlim from '../../components/column_back_button_slim';
|
import ColumnBackButtonSlim from '../../components/column_back_button_slim';
|
||||||
import { FormattedMessage } from 'react-intl';
|
import { FormattedMessage } from 'react-intl';
|
||||||
|
@ -15,7 +15,7 @@ import createStream from '../../stream';
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
hasUnread: state.getIn(['timelines', 'tag', 'unread']) > 0,
|
hasUnread: state.getIn(['timelines', 'tag', 'unread']) > 0,
|
||||||
streamingAPIBaseURL: state.getIn(['meta', 'streaming_api_base_url']),
|
streamingAPIBaseURL: state.getIn(['meta', 'streaming_api_base_url']),
|
||||||
accessToken: state.getIn(['meta', 'access_token'])
|
accessToken: state.getIn(['meta', 'access_token']),
|
||||||
});
|
});
|
||||||
|
|
||||||
class HashtagTimeline extends React.PureComponent {
|
class HashtagTimeline extends React.PureComponent {
|
||||||
|
@ -25,7 +25,7 @@ class HashtagTimeline extends React.PureComponent {
|
||||||
dispatch: PropTypes.func.isRequired,
|
dispatch: PropTypes.func.isRequired,
|
||||||
streamingAPIBaseURL: PropTypes.string.isRequired,
|
streamingAPIBaseURL: PropTypes.string.isRequired,
|
||||||
accessToken: PropTypes.string.isRequired,
|
accessToken: PropTypes.string.isRequired,
|
||||||
hasUnread: PropTypes.bool
|
hasUnread: PropTypes.bool,
|
||||||
};
|
};
|
||||||
|
|
||||||
_subscribe (dispatch, id) {
|
_subscribe (dispatch, id) {
|
||||||
|
@ -42,7 +42,7 @@ class HashtagTimeline extends React.PureComponent {
|
||||||
dispatch(deleteFromTimelines(data.payload));
|
dispatch(deleteFromTimelines(data.payload));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,7 @@ import SettingText from './setting_text';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
filter_regex: { id: 'home.column_settings.filter_regex', defaultMessage: 'Filter out by regular expressions' },
|
filter_regex: { id: 'home.column_settings.filter_regex', defaultMessage: 'Filter out by regular expressions' },
|
||||||
settings: { id: 'home.settings', defaultMessage: 'Column settings' }
|
settings: { id: 'home.settings', defaultMessage: 'Column settings' },
|
||||||
});
|
});
|
||||||
|
|
||||||
class ColumnSettings extends React.PureComponent {
|
class ColumnSettings extends React.PureComponent {
|
||||||
|
@ -17,7 +17,7 @@ class ColumnSettings extends React.PureComponent {
|
||||||
settings: ImmutablePropTypes.map.isRequired,
|
settings: ImmutablePropTypes.map.isRequired,
|
||||||
onChange: PropTypes.func.isRequired,
|
onChange: PropTypes.func.isRequired,
|
||||||
onSave: PropTypes.func.isRequired,
|
onSave: PropTypes.func.isRequired,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
|
|
@ -8,11 +8,11 @@ class SettingText extends React.PureComponent {
|
||||||
settings: ImmutablePropTypes.map.isRequired,
|
settings: ImmutablePropTypes.map.isRequired,
|
||||||
settingKey: PropTypes.array.isRequired,
|
settingKey: PropTypes.array.isRequired,
|
||||||
label: PropTypes.string.isRequired,
|
label: PropTypes.string.isRequired,
|
||||||
onChange: PropTypes.func.isRequired
|
onChange: PropTypes.func.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
handleChange = (e) => {
|
handleChange = (e) => {
|
||||||
this.props.onChange(this.props.settingKey, e.target.value)
|
this.props.onChange(this.props.settingKey, e.target.value);
|
||||||
}
|
}
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
|
|
@ -3,7 +3,7 @@ import ColumnSettings from '../components/column_settings';
|
||||||
import { changeSetting, saveSettings } from '../../../actions/settings';
|
import { changeSetting, saveSettings } from '../../../actions/settings';
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
settings: state.getIn(['settings', 'home'])
|
settings: state.getIn(['settings', 'home']),
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapDispatchToProps = dispatch => ({
|
const mapDispatchToProps = dispatch => ({
|
||||||
|
@ -14,7 +14,7 @@ const mapDispatchToProps = dispatch => ({
|
||||||
|
|
||||||
onSave () {
|
onSave () {
|
||||||
dispatch(saveSettings());
|
dispatch(saveSettings());
|
||||||
}
|
},
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -8,12 +8,12 @@ import ColumnSettingsContainer from './containers/column_settings_container';
|
||||||
import Link from 'react-router/lib/Link';
|
import Link from 'react-router/lib/Link';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
title: { id: 'column.home', defaultMessage: 'Home' }
|
title: { id: 'column.home', defaultMessage: 'Home' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
hasUnread: state.getIn(['timelines', 'home', 'unread']) > 0,
|
hasUnread: state.getIn(['timelines', 'home', 'unread']) > 0,
|
||||||
hasFollows: state.getIn(['accounts_counters', state.getIn(['meta', 'me']), 'following_count']) > 0
|
hasFollows: state.getIn(['accounts_counters', state.getIn(['meta', 'me']), 'following_count']) > 0,
|
||||||
});
|
});
|
||||||
|
|
||||||
class HomeTimeline extends React.PureComponent {
|
class HomeTimeline extends React.PureComponent {
|
||||||
|
@ -21,7 +21,7 @@ class HomeTimeline extends React.PureComponent {
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
intl: PropTypes.object.isRequired,
|
intl: PropTypes.object.isRequired,
|
||||||
hasUnread: PropTypes.bool,
|
hasUnread: PropTypes.bool,
|
||||||
hasFollows: PropTypes.bool
|
hasFollows: PropTypes.bool,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
@ -30,7 +30,7 @@ class HomeTimeline extends React.PureComponent {
|
||||||
let emptyMessage;
|
let emptyMessage;
|
||||||
|
|
||||||
if (hasFollows) {
|
if (hasFollows) {
|
||||||
emptyMessage = <FormattedMessage id='empty_column.home.inactivity' defaultMessage="Your home feed is empty. If you have been inactive for a while, it will be regenerated for you soon." />
|
emptyMessage = <FormattedMessage id='empty_column.home.inactivity' defaultMessage="Your home feed is empty. If you have been inactive for a while, it will be regenerated for you soon." />;
|
||||||
} else {
|
} else {
|
||||||
emptyMessage = <FormattedMessage id='empty_column.home' defaultMessage="You aren't following anyone yet. Visit {public} or use search to get started and meet other users." values={{ public: <Link to='/timelines/public'><FormattedMessage id='empty_column.home.public_timeline' defaultMessage='the public timeline' /></Link> }} />;
|
emptyMessage = <FormattedMessage id='empty_column.home' defaultMessage="You aren't following anyone yet. Visit {public} or use search to get started and meet other users." values={{ public: <Link to='/timelines/public'><FormattedMessage id='empty_column.home.public_timeline' defaultMessage='the public timeline' /></Link> }} />;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,11 +12,11 @@ import { defineMessages, injectIntl } from 'react-intl';
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
heading: { id: 'column.mutes', defaultMessage: 'Muted users' }
|
heading: { id: 'column.mutes', defaultMessage: 'Muted users' },
|
||||||
});
|
});
|
||||||
|
|
||||||
const mapStateToProps = state => ({
|
const mapStateToProps = state => ({
|
||||||
accountIds: state.getIn(['user_lists', 'mutes', 'items'])
|
accountIds: state.getIn(['user_lists', 'mutes', 'items']),
|
||||||
});
|
});
|
||||||
|
|
||||||
class Mutes extends ImmutablePureComponent {
|
class Mutes extends ImmutablePureComponent {
|
||||||
|
@ -64,7 +64,7 @@ Mutes.propTypes = {
|
||||||
params: PropTypes.object.isRequired,
|
params: PropTypes.object.isRequired,
|
||||||
dispatch: PropTypes.func.isRequired,
|
dispatch: PropTypes.func.isRequired,
|
||||||
accountIds: ImmutablePropTypes.list,
|
accountIds: ImmutablePropTypes.list,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
export default connect(mapStateToProps)(injectIntl(Mutes));
|
export default connect(mapStateToProps)(injectIntl(Mutes));
|
||||||
|
|
|
@ -3,14 +3,14 @@ import PropTypes from 'prop-types';
|
||||||
import { defineMessages, injectIntl } from 'react-intl';
|
import { defineMessages, injectIntl } from 'react-intl';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
clear: { id: 'notifications.clear', defaultMessage: 'Clear notifications' }
|
clear: { id: 'notifications.clear', defaultMessage: 'Clear notifications' },
|
||||||
});
|
});
|
||||||
|
|
||||||
class ClearColumnButton extends React.Component {
|
class ClearColumnButton extends React.Component {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
onClick: PropTypes.func.isRequired,
|
onClick: PropTypes.func.isRequired,
|
||||||
intl: PropTypes.object.isRequired
|
intl: PropTypes.object.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
@ -22,6 +22,7 @@ class ClearColumnButton extends React.Component {
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default injectIntl(ClearColumnButton);
|
export default injectIntl(ClearColumnButton);
|
||||||
|
|
|
@ -6,7 +6,7 @@ import ColumnCollapsable from '../../../components/column_collapsable';
|
||||||
import SettingToggle from './setting_toggle';
|
import SettingToggle from './setting_toggle';
|
||||||
|
|
||||||
const messages = defineMessages({
|
const messages = defineMessages({
|
||||||
settings: { id: 'notifications.settings', defaultMessage: 'Column settings' }
|
settings: { id: 'notifications.settings', defaultMessage: 'Column settings' },
|
||||||
});
|
});
|
||||||
|
|
||||||
class ColumnSettings extends React.PureComponent {
|
class ColumnSettings extends React.PureComponent {
|
||||||
|
@ -16,8 +16,8 @@ class ColumnSettings extends React.PureComponent {
|
||||||
onChange: PropTypes.func.isRequired,
|
onChange: PropTypes.func.isRequired,
|
||||||
onSave: PropTypes.func.isRequired,
|
onSave: PropTypes.func.isRequired,
|
||||||
intl: PropTypes.shape({
|
intl: PropTypes.shape({
|
||||||
formatMessage: PropTypes.func.isRequired
|
formatMessage: PropTypes.func.isRequired,
|
||||||
}).isRequired
|
}).isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
|
|
|
@ -12,7 +12,7 @@ import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
class Notification extends ImmutablePureComponent {
|
class Notification extends ImmutablePureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
notification: ImmutablePropTypes.map.isRequired
|
notification: ImmutablePropTypes.map.isRequired,
|
||||||
};
|
};
|
||||||
|
|
||||||
renderFollow (account, link) {
|
renderFollow (account, link) {
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue