Commiting
This commit is contained in:
@@ -1,12 +1,18 @@
|
||||
import { normalizeAccount, normalizeStatus, normalizePoll } from './normalizer';
|
||||
import isObject from 'lodash.isobject'
|
||||
import {
|
||||
normalizeAccount,
|
||||
normalizeStatus,
|
||||
normalizePoll,
|
||||
} from './normalizer'
|
||||
import { fetchContext } from '../statuses'
|
||||
import { importGroups } from '../groups'
|
||||
|
||||
export const ACCOUNT_IMPORT = 'ACCOUNT_IMPORT';
|
||||
export const ACCOUNTS_IMPORT = 'ACCOUNTS_IMPORT';
|
||||
export const STATUS_IMPORT = 'STATUS_IMPORT';
|
||||
export const STATUSES_IMPORT = 'STATUSES_IMPORT';
|
||||
export const POLLS_IMPORT = 'POLLS_IMPORT';
|
||||
export const ACCOUNT_FETCH_FAIL_FOR_USERNAME_LOOKUP = 'ACCOUNT_FETCH_FAIL_FOR_USERNAME_LOOKUP';
|
||||
export const ACCOUNT_IMPORT = 'ACCOUNT_IMPORT'
|
||||
export const ACCOUNTS_IMPORT = 'ACCOUNTS_IMPORT'
|
||||
export const STATUS_IMPORT = 'STATUS_IMPORT'
|
||||
export const STATUSES_IMPORT = 'STATUSES_IMPORT'
|
||||
export const POLLS_IMPORT = 'POLLS_IMPORT'
|
||||
export const ACCOUNT_FETCH_FAIL_FOR_USERNAME_LOOKUP = 'ACCOUNT_FETCH_FAIL_FOR_USERNAME_LOOKUP'
|
||||
|
||||
function pushUnique(array, object) {
|
||||
if (array.every(element => element.id !== object.id)) {
|
||||
@@ -14,34 +20,39 @@ function pushUnique(array, object) {
|
||||
}
|
||||
}
|
||||
|
||||
export function importAccount(account) {
|
||||
return { type: ACCOUNT_IMPORT, account };
|
||||
}
|
||||
export const importAccount = (account) => ({
|
||||
type: ACCOUNT_IMPORT,
|
||||
account,
|
||||
})
|
||||
|
||||
export function importAccounts(accounts) {
|
||||
return { type: ACCOUNTS_IMPORT, accounts };
|
||||
}
|
||||
export const importAccounts = (accounts) => ({
|
||||
type: ACCOUNTS_IMPORT,
|
||||
accounts,
|
||||
})
|
||||
|
||||
export function importStatus(status) {
|
||||
return { type: STATUS_IMPORT, status };
|
||||
}
|
||||
export const importStatus = (status) => ({
|
||||
type: STATUS_IMPORT,
|
||||
status,
|
||||
})
|
||||
|
||||
export function importStatuses(statuses) {
|
||||
return { type: STATUSES_IMPORT, statuses };
|
||||
}
|
||||
export const importStatuses = (statuses) => ({
|
||||
type: STATUSES_IMPORT,
|
||||
statuses,
|
||||
})
|
||||
|
||||
export function importPolls(polls) {
|
||||
return { type: POLLS_IMPORT, polls };
|
||||
}
|
||||
export const importPolls = (polls) => ({
|
||||
type: POLLS_IMPORT,
|
||||
polls,
|
||||
})
|
||||
|
||||
export function importFetchedAccount(account) {
|
||||
export const importFetchedAccount = (account) => {
|
||||
return importFetchedAccounts([account]);
|
||||
}
|
||||
|
||||
export function importFetchedAccounts(accounts) {
|
||||
export const importFetchedAccounts = (accounts) => {
|
||||
const normalAccounts = [];
|
||||
|
||||
function processAccount(account) {
|
||||
const processAccount = (account) => {
|
||||
pushUnique(normalAccounts, normalizeAccount(account));
|
||||
|
||||
if (account.moved) {
|
||||
@@ -54,47 +65,48 @@ export function importFetchedAccounts(accounts) {
|
||||
return importAccounts(normalAccounts);
|
||||
}
|
||||
|
||||
export function importFetchedStatus(status) {
|
||||
export const importFetchedStatus = (status) => {
|
||||
return importFetchedStatuses([status]);
|
||||
}
|
||||
|
||||
export function importFetchedStatuses(statuses) {
|
||||
return (dispatch, getState) => {
|
||||
const accounts = [];
|
||||
const normalStatuses = [];
|
||||
const polls = [];
|
||||
export const importFetchedStatuses = (statuses) => (dispatch, getState) => {
|
||||
const accounts = []
|
||||
const normalStatuses = []
|
||||
const polls = []
|
||||
const groups = []
|
||||
|
||||
function processStatus(status) {
|
||||
pushUnique(normalStatuses, normalizeStatus(status, getState().getIn(['statuses', status.id])));
|
||||
pushUnique(accounts, status.account);
|
||||
const processStatus = (status) => {
|
||||
pushUnique(normalStatuses, normalizeStatus(status, getState().getIn(['statuses', status.id])))
|
||||
|
||||
if (status.reblog && status.reblog.id) {
|
||||
processStatus(status.reblog);
|
||||
}
|
||||
|
||||
if (status.quote && status.quote.id) {
|
||||
processStatus(status.quote);
|
||||
}
|
||||
|
||||
if (status.poll && status.poll.id) {
|
||||
pushUnique(polls, normalizePoll(status.poll));
|
||||
}
|
||||
if (isObject(status.account)) pushUnique(accounts, status.account)
|
||||
if (isObject(status.group)) pushUnique(groups, status.group)
|
||||
|
||||
if (status.reblog && status.reblog.id) {
|
||||
processStatus(status.reblog)
|
||||
}
|
||||
|
||||
statuses.forEach(processStatus);
|
||||
if (status.quote && status.quote.id) {
|
||||
processStatus(status.quote)
|
||||
}
|
||||
|
||||
dispatch(importPolls(polls));
|
||||
dispatch(importFetchedAccounts(accounts));
|
||||
dispatch(importStatuses(normalStatuses));
|
||||
};
|
||||
if (status.poll && status.poll.id) {
|
||||
pushUnique(polls, normalizePoll(status.poll))
|
||||
}
|
||||
}
|
||||
|
||||
statuses.forEach(processStatus)
|
||||
|
||||
dispatch(importPolls(polls))
|
||||
dispatch(importFetchedAccounts(accounts))
|
||||
dispatch(importStatuses(normalStatuses))
|
||||
dispatch(importGroups(groups))
|
||||
}
|
||||
|
||||
export function importFetchedPoll(poll) {
|
||||
return dispatch => {
|
||||
dispatch(importPolls([normalizePoll(poll)]));
|
||||
};
|
||||
export const importFetchedPoll = (poll) => (dispatch) => {
|
||||
dispatch(importPolls([normalizePoll(poll)]))
|
||||
}
|
||||
|
||||
export function importErrorWhileFetchingAccountByUsername(username) {
|
||||
return { type: ACCOUNT_FETCH_FAIL_FOR_USERNAME_LOOKUP, username };
|
||||
};
|
||||
export const importErrorWhileFetchingAccountByUsername = (username) => ({
|
||||
type: ACCOUNT_FETCH_FAIL_FOR_USERNAME_LOOKUP,
|
||||
username
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user