6fbea0a59e
removing .mov for now until we can figure out solution with videojs, added model to track username changes, got chat creation flow down, progress on bookmark collections, albums, filtering blocks/mutes from group, explore, collection timelines
250 lines
7.4 KiB
JavaScript
250 lines
7.4 KiB
JavaScript
import api, { getLinks } from '../api'
|
|
import { importFetchedAccounts } from './importer'
|
|
import { me } from '../initial_state'
|
|
|
|
//
|
|
|
|
export const CHAT_MESSENGER_BLOCKS_FETCH_REQUEST = 'CHAT_MESSENGER_BLOCKS_FETCH_REQUEST'
|
|
export const CHAT_MESSENGER_BLOCKS_FETCH_SUCCESS = 'CHAT_MESSENGER_BLOCKS_FETCH_SUCCESS'
|
|
export const CHAT_MESSENGER_BLOCKS_FETCH_FAIL = 'CHAT_MESSENGER_BLOCKS_FETCH_FAIL'
|
|
|
|
export const CHAT_MESSENGER_BLOCKS_EXPAND_REQUEST = 'CHAT_MESSENGER_BLOCKS_EXPAND_REQUEST'
|
|
export const CHAT_MESSENGER_BLOCKS_EXPAND_SUCCESS = 'CHAT_MESSENGER_BLOCKS_EXPAND_SUCCESS'
|
|
export const CHAT_MESSENGER_BLOCKS_EXPAND_FAIL = 'CHAT_MESSENGER_BLOCKS_EXPAND_FAIL'
|
|
|
|
export const BLOCK_CHAT_MESSAGER_REQUEST = 'BLOCK_CHAT_MESSAGER_REQUEST'
|
|
export const BLOCK_CHAT_MESSAGER_SUCCESS = 'BLOCK_CHAT_MESSAGER_SUCCESS'
|
|
export const BLOCK_CHAT_MESSAGER_FAIL = 'BLOCK_CHAT_MESSAGER_FAIL'
|
|
|
|
export const UNBLOCK_CHAT_MESSAGER_REQUEST = 'UNBLOCK_CHAT_MESSAGER_REQUEST'
|
|
export const UNBLOCK_CHAT_MESSAGER_SUCCESS = 'UNBLOCK_CHAT_MESSAGER_SUCCESS'
|
|
export const UNBLOCK_CHAT_MESSAGER_FAIL = 'UNBLOCK_CHAT_MESSAGER_FAIL'
|
|
|
|
export const FETCH_CHAT_MESSENGER_BLOCKING_RELATIONSHIPS_SUCCESS = 'FETCH_CHAT_MESSENGER_BLOCKING_RELATIONSHIPS_SUCCESS'
|
|
|
|
//
|
|
|
|
export const MUTE_CHAT_CONVERSATION_REQUEST = 'MUTE_CHAT_CONVERSATION_REQUEST'
|
|
export const MUTE_CHAT_CONVERSATION_SUCCESS = 'MUTE_CHAT_CONVERSATION_SUCCESS'
|
|
export const MUTE_CHAT_CONVERSATION_FAIL = 'MUTE_CHAT_CONVERSATION_FAIL'
|
|
|
|
export const UNMUTE_CHAT_CONVERSATION_REQUEST = 'UNMUTE_CHAT_CONVERSATION_REQUEST'
|
|
export const UNMUTE_CHAT_CONVERSATION_SUCCESS = 'UNMUTE_CHAT_CONVERSATION_SUCCESS'
|
|
export const UNMUTE_CHAT_CONVERSATION_FAIL = 'UNMUTE_CHAT_CONVERSATION_FAIL'
|
|
|
|
/**
|
|
*
|
|
*/
|
|
export const blockChatMessenger = (accountId) => (dispatch, getState) => {
|
|
if (!me || !accountId) return
|
|
|
|
dispatch(blockChatMessengerRequest(accountId))
|
|
|
|
api(getState).post(`/api/v1/chat_conversation_accounts/_/block_messenger`, { account_id: accountId }).then((response) => {
|
|
dispatch(blockChatMessengerSuccess(response))
|
|
}).catch((error) => {
|
|
dispatch(blockChatMessengerFail(accountId, error))
|
|
})
|
|
}
|
|
|
|
const blockChatMessengerRequest = (accountId) => ({
|
|
type: BLOCK_CHAT_MESSAGER_REQUEST,
|
|
accountId,
|
|
})
|
|
|
|
const blockChatMessengerSuccess = (data) => ({
|
|
type: BLOCK_CHAT_MESSAGER_SUCCESS,
|
|
data,
|
|
showToast: true,
|
|
})
|
|
|
|
const blockChatMessengerFail = (accountId, error) => ({
|
|
type: BLOCK_CHAT_MESSAGER_FAIL,
|
|
showToast: true,
|
|
accountId,
|
|
error,
|
|
})
|
|
|
|
/**
|
|
*
|
|
*/
|
|
export const unblockChatMessenger = (accountId) => (dispatch, getState) => {
|
|
if (!me || !accountId) return
|
|
|
|
dispatch(unblockChatMessengerRequest(accountId))
|
|
|
|
api(getState).post(`/api/v1/chat_conversation_accounts/_/unblock_messenger`, { account_id: accountId }).then((response) => {
|
|
dispatch(unblockChatMessengerSuccess(response))
|
|
}).catch((error) => {
|
|
dispatch(unblockChatMessengerFail(accountId, error))
|
|
})
|
|
}
|
|
|
|
const unblockChatMessengerRequest = (accountId) => ({
|
|
type: UNBLOCK_CHAT_MESSAGER_REQUEST,
|
|
accountId,
|
|
})
|
|
|
|
const unblockChatMessengerSuccess = (data) => ({
|
|
type: UNBLOCK_CHAT_MESSAGER_SUCCESS,
|
|
data,
|
|
showToast: true,
|
|
})
|
|
|
|
const unblockChatMessengerFail = (accountId, error) => ({
|
|
type: UNBLOCK_CHAT_MESSAGER_FAIL,
|
|
showToast: true,
|
|
accountId,
|
|
error,
|
|
})
|
|
|
|
/**
|
|
* @description Check if a chat messenger is blocked by the current user account.
|
|
* @param {String} accountId
|
|
*/
|
|
export const fetchMessengerBlockingRelationships = (accountId) => (dispatch, getState) => {
|
|
if (!me || !accountId) return
|
|
|
|
api(getState).post(`/api/v1/chat_conversation_accounts/_/messenger_block_relationships`, { account_id: accountId }).then((response) => {
|
|
dispatch(fetchMessengerBlockingRelationshipsSuccess(response.data))
|
|
})
|
|
}
|
|
|
|
const fetchMessengerBlockingRelationshipsSuccess = (data) => ({
|
|
type: FETCH_CHAT_MESSENGER_BLOCKING_RELATIONSHIPS_SUCCESS,
|
|
data,
|
|
})
|
|
|
|
/**
|
|
*
|
|
*/
|
|
export const fetchChatMessengerBlocks = () => (dispatch, getState) => {
|
|
if (!me) return
|
|
|
|
dispatch(fetchChatMessengerBlocksRequest())
|
|
|
|
api(getState).get('/api/v1/chat_conversations/blocked_chat_accounts').then(response => {
|
|
const next = getLinks(response).refs.find(link => link.rel === 'next')
|
|
dispatch(importFetchedAccounts(response.data))
|
|
dispatch(fetchChatMessengerBlocksSuccess(response.data, next ? next.uri : null))
|
|
}).catch(error => dispatch(fetchChatMessengerBlocksFail(error)))
|
|
}
|
|
|
|
export const fetchChatMessengerBlocksRequest = () => ({
|
|
type: CHAT_MESSENGER_BLOCKS_FETCH_REQUEST,
|
|
})
|
|
|
|
export const fetchChatMessengerBlocksSuccess = (accounts, next) => ({
|
|
type: CHAT_MESSENGER_BLOCKS_FETCH_SUCCESS,
|
|
accounts,
|
|
next,
|
|
})
|
|
|
|
export const fetchChatMessengerBlocksFail = (error) => ({
|
|
type: CHAT_MESSENGER_BLOCKS_FETCH_FAIL,
|
|
showToast: true,
|
|
error,
|
|
})
|
|
|
|
/**
|
|
*
|
|
*/
|
|
export const expandChatMessengerBlocks = () => (dispatch, getState) => {
|
|
if (!me) return
|
|
|
|
const url = getState().getIn(['user_lists', 'chat_blocks', me, 'next'])
|
|
const isLoading = getState().getIn(['user_lists', 'chat_blocks', me, 'isLoading'])
|
|
|
|
if (url === null || isLoading) return
|
|
|
|
dispatch(expandChatMessengerBlocksRequest())
|
|
|
|
api(getState).get(url).then(response => {
|
|
const next = getLinks(response).refs.find(link => link.rel === 'next')
|
|
dispatch(importFetchedAccounts(response.data))
|
|
dispatch(expandChatMessengerBlocksSuccess(response.data, next ? next.uri : null))
|
|
}).catch(error => dispatch(expandChatMessengerBlocksFail(error)))
|
|
}
|
|
|
|
export const expandChatMessengerBlocksRequest = () => ({
|
|
type: CHAT_MESSENGER_BLOCKS_EXPAND_REQUEST,
|
|
})
|
|
|
|
export const expandChatMessengerBlocksSuccess = (accounts, next) => ({
|
|
type: CHAT_MESSENGER_BLOCKS_EXPAND_SUCCESS,
|
|
accounts,
|
|
next,
|
|
})
|
|
|
|
export const expandChatMessengerBlocksFail = (error) => ({
|
|
type: CHAT_MESSENGER_BLOCKS_EXPAND_FAIL,
|
|
error,
|
|
})
|
|
|
|
//
|
|
|
|
/**
|
|
*
|
|
*/
|
|
export const muteChatConversation = (chatConversationId) => (dispatch, getState) => {
|
|
if (!me || !chatConversationId) return
|
|
|
|
dispatch(muteChatConversationRequest(chatConversationId))
|
|
|
|
api(getState).post(`/api/v1/chat_conversation_accounts/${chatConversationId}/mute_chat_conversation`).then((response) => {
|
|
dispatch(muteChatConversationSuccess(response.data))
|
|
}).catch((error) => {
|
|
dispatch(muteChatConversationFail(error))
|
|
})
|
|
}
|
|
|
|
const muteChatConversationRequest = (accountId) => ({
|
|
type: MUTE_CHAT_CONVERSATION_REQUEST,
|
|
accountId,
|
|
})
|
|
|
|
const muteChatConversationSuccess = (chatConversation) => ({
|
|
type: MUTE_CHAT_CONVERSATION_SUCCESS,
|
|
chatConversation,
|
|
showToast: true,
|
|
})
|
|
|
|
const muteChatConversationFail = (error) => ({
|
|
type: MUTE_CHAT_CONVERSATION_FAIL,
|
|
showToast: true,
|
|
error,
|
|
})
|
|
|
|
/**
|
|
*
|
|
*/
|
|
export const unmuteChatConversation = (chatConversationId) => (dispatch, getState) => {
|
|
if (!me || !chatConversationId) return
|
|
|
|
dispatch(unmuteChatConversationRequest(chatConversationId))
|
|
|
|
api(getState).post(`/api/v1/chat_conversation_accounts/${chatConversationId}/unmute_chat_conversation`).then((response) => {
|
|
dispatch(unmuteChatConversationSuccess(response.data))
|
|
}).catch((error) => {
|
|
dispatch(unmuteChatConversationFail(error))
|
|
})
|
|
}
|
|
|
|
const unmuteChatConversationRequest = (accountId) => ({
|
|
type: UNMUTE_CHAT_CONVERSATION_REQUEST,
|
|
accountId,
|
|
})
|
|
|
|
const unmuteChatConversationSuccess = (chatConversation) => ({
|
|
type: UNMUTE_CHAT_CONVERSATION_SUCCESS,
|
|
chatConversation,
|
|
showToast: true,
|
|
})
|
|
|
|
const unmuteChatConversationFail = (accountId, error) => ({
|
|
type: UNMUTE_CHAT_CONVERSATION_FAIL,
|
|
showToast: true,
|
|
accountId,
|
|
error,
|
|
})
|