kopia lustrzana https://gitlab.com/soapbox-pub/soapbox
Actions: TypeScript
Signed-off-by: marcin mikołajczak <git@mkljczk.pl>environments/review-develop-3zknud/deployments/332^2
rodzic
ae3277bbb3
commit
86511dc26b
|
@ -1,201 +0,0 @@
|
||||||
import { isLoggedIn } from 'soapbox/utils/auth';
|
|
||||||
|
|
||||||
import api, { getLinks } from '../api';
|
|
||||||
|
|
||||||
import { importFetchedStatuses } from './importer';
|
|
||||||
|
|
||||||
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_FAIL = 'FAVOURITED_STATUSES_FETCH_FAIL';
|
|
||||||
|
|
||||||
export const FAVOURITED_STATUSES_EXPAND_REQUEST = 'FAVOURITED_STATUSES_EXPAND_REQUEST';
|
|
||||||
export const FAVOURITED_STATUSES_EXPAND_SUCCESS = 'FAVOURITED_STATUSES_EXPAND_SUCCESS';
|
|
||||||
export const FAVOURITED_STATUSES_EXPAND_FAIL = 'FAVOURITED_STATUSES_EXPAND_FAIL';
|
|
||||||
|
|
||||||
export const ACCOUNT_FAVOURITED_STATUSES_FETCH_REQUEST = 'ACCOUNT_FAVOURITED_STATUSES_FETCH_REQUEST';
|
|
||||||
export const ACCOUNT_FAVOURITED_STATUSES_FETCH_SUCCESS = 'ACCOUNT_FAVOURITED_STATUSES_FETCH_SUCCESS';
|
|
||||||
export const ACCOUNT_FAVOURITED_STATUSES_FETCH_FAIL = 'ACCOUNT_FAVOURITED_STATUSES_FETCH_FAIL';
|
|
||||||
|
|
||||||
export const ACCOUNT_FAVOURITED_STATUSES_EXPAND_REQUEST = 'ACCOUNT_FAVOURITED_STATUSES_EXPAND_REQUEST';
|
|
||||||
export const ACCOUNT_FAVOURITED_STATUSES_EXPAND_SUCCESS = 'ACCOUNT_FAVOURITED_STATUSES_EXPAND_SUCCESS';
|
|
||||||
export const ACCOUNT_FAVOURITED_STATUSES_EXPAND_FAIL = 'ACCOUNT_FAVOURITED_STATUSES_EXPAND_FAIL';
|
|
||||||
|
|
||||||
export function fetchFavouritedStatuses() {
|
|
||||||
return (dispatch, getState) => {
|
|
||||||
if (!isLoggedIn(getState)) return;
|
|
||||||
|
|
||||||
if (getState().getIn(['status_lists', 'favourites', 'isLoading'])) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
dispatch(fetchFavouritedStatusesRequest());
|
|
||||||
|
|
||||||
api(getState).get('/api/v1/favourites').then(response => {
|
|
||||||
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
|
||||||
dispatch(importFetchedStatuses(response.data));
|
|
||||||
dispatch(fetchFavouritedStatusesSuccess(response.data, next ? next.uri : null));
|
|
||||||
}).catch(error => {
|
|
||||||
dispatch(fetchFavouritedStatusesFail(error));
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchFavouritedStatusesRequest() {
|
|
||||||
return {
|
|
||||||
type: FAVOURITED_STATUSES_FETCH_REQUEST,
|
|
||||||
skipLoading: true,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchFavouritedStatusesSuccess(statuses, next) {
|
|
||||||
return {
|
|
||||||
type: FAVOURITED_STATUSES_FETCH_SUCCESS,
|
|
||||||
statuses,
|
|
||||||
next,
|
|
||||||
skipLoading: true,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchFavouritedStatusesFail(error) {
|
|
||||||
return {
|
|
||||||
type: FAVOURITED_STATUSES_FETCH_FAIL,
|
|
||||||
error,
|
|
||||||
skipLoading: true,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function expandFavouritedStatuses() {
|
|
||||||
return (dispatch, getState) => {
|
|
||||||
if (!isLoggedIn(getState)) return;
|
|
||||||
|
|
||||||
const url = getState().getIn(['status_lists', 'favourites', 'next'], null);
|
|
||||||
|
|
||||||
if (url === null || getState().getIn(['status_lists', 'favourites', 'isLoading'])) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
dispatch(expandFavouritedStatusesRequest());
|
|
||||||
|
|
||||||
api(getState).get(url).then(response => {
|
|
||||||
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
|
||||||
dispatch(importFetchedStatuses(response.data));
|
|
||||||
dispatch(expandFavouritedStatusesSuccess(response.data, next ? next.uri : null));
|
|
||||||
}).catch(error => {
|
|
||||||
dispatch(expandFavouritedStatusesFail(error));
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function expandFavouritedStatusesRequest() {
|
|
||||||
return {
|
|
||||||
type: FAVOURITED_STATUSES_EXPAND_REQUEST,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function expandFavouritedStatusesSuccess(statuses, next) {
|
|
||||||
return {
|
|
||||||
type: FAVOURITED_STATUSES_EXPAND_SUCCESS,
|
|
||||||
statuses,
|
|
||||||
next,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function expandFavouritedStatusesFail(error) {
|
|
||||||
return {
|
|
||||||
type: FAVOURITED_STATUSES_EXPAND_FAIL,
|
|
||||||
error,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAccountFavouritedStatuses(accountId) {
|
|
||||||
return (dispatch, getState) => {
|
|
||||||
if (!isLoggedIn(getState)) return;
|
|
||||||
|
|
||||||
if (getState().getIn(['status_lists', `favourites:${accountId}`, 'isLoading'])) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
dispatch(fetchAccountFavouritedStatusesRequest(accountId));
|
|
||||||
|
|
||||||
api(getState).get(`/api/v1/pleroma/accounts/${accountId}/favourites`).then(response => {
|
|
||||||
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
|
||||||
dispatch(importFetchedStatuses(response.data));
|
|
||||||
dispatch(fetchAccountFavouritedStatusesSuccess(accountId, response.data, next ? next.uri : null));
|
|
||||||
}).catch(error => {
|
|
||||||
dispatch(fetchAccountFavouritedStatusesFail(accountId, error));
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAccountFavouritedStatusesRequest(accountId) {
|
|
||||||
return {
|
|
||||||
type: ACCOUNT_FAVOURITED_STATUSES_FETCH_REQUEST,
|
|
||||||
accountId,
|
|
||||||
skipLoading: true,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAccountFavouritedStatusesSuccess(accountId, statuses, next) {
|
|
||||||
return {
|
|
||||||
type: ACCOUNT_FAVOURITED_STATUSES_FETCH_SUCCESS,
|
|
||||||
accountId,
|
|
||||||
statuses,
|
|
||||||
next,
|
|
||||||
skipLoading: true,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function fetchAccountFavouritedStatusesFail(accountId, error) {
|
|
||||||
return {
|
|
||||||
type: ACCOUNT_FAVOURITED_STATUSES_FETCH_FAIL,
|
|
||||||
accountId,
|
|
||||||
error,
|
|
||||||
skipLoading: true,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function expandAccountFavouritedStatuses(accountId) {
|
|
||||||
return (dispatch, getState) => {
|
|
||||||
if (!isLoggedIn(getState)) return;
|
|
||||||
|
|
||||||
const url = getState().getIn(['status_lists', `favourites:${accountId}`, 'next'], null);
|
|
||||||
|
|
||||||
if (url === null || getState().getIn(['status_lists', `favourites:${accountId}`, 'isLoading'])) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
dispatch(expandAccountFavouritedStatusesRequest(accountId));
|
|
||||||
|
|
||||||
api(getState).get(url).then(response => {
|
|
||||||
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
|
||||||
dispatch(importFetchedStatuses(response.data));
|
|
||||||
dispatch(expandAccountFavouritedStatusesSuccess(accountId, response.data, next ? next.uri : null));
|
|
||||||
}).catch(error => {
|
|
||||||
dispatch(expandAccountFavouritedStatusesFail(accountId, error));
|
|
||||||
});
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function expandAccountFavouritedStatusesRequest(accountId) {
|
|
||||||
return {
|
|
||||||
type: ACCOUNT_FAVOURITED_STATUSES_EXPAND_REQUEST,
|
|
||||||
accountId,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function expandAccountFavouritedStatusesSuccess(accountId, statuses, next) {
|
|
||||||
return {
|
|
||||||
type: ACCOUNT_FAVOURITED_STATUSES_EXPAND_SUCCESS,
|
|
||||||
accountId,
|
|
||||||
statuses,
|
|
||||||
next,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
export function expandAccountFavouritedStatusesFail(accountId, error) {
|
|
||||||
return {
|
|
||||||
type: ACCOUNT_FAVOURITED_STATUSES_EXPAND_FAIL,
|
|
||||||
accountId,
|
|
||||||
error,
|
|
||||||
};
|
|
||||||
}
|
|
|
@ -0,0 +1,208 @@
|
||||||
|
import { isLoggedIn } from 'soapbox/utils/auth';
|
||||||
|
|
||||||
|
import api, { getLinks } from '../api';
|
||||||
|
|
||||||
|
import { importFetchedStatuses } from './importer';
|
||||||
|
|
||||||
|
import type { AxiosError } from 'axios';
|
||||||
|
import type { AppDispatch, RootState } from 'soapbox/store';
|
||||||
|
import type { APIEntity } from 'soapbox/types/entities';
|
||||||
|
|
||||||
|
const FAVOURITED_STATUSES_FETCH_REQUEST = 'FAVOURITED_STATUSES_FETCH_REQUEST';
|
||||||
|
const FAVOURITED_STATUSES_FETCH_SUCCESS = 'FAVOURITED_STATUSES_FETCH_SUCCESS';
|
||||||
|
const FAVOURITED_STATUSES_FETCH_FAIL = 'FAVOURITED_STATUSES_FETCH_FAIL';
|
||||||
|
|
||||||
|
const FAVOURITED_STATUSES_EXPAND_REQUEST = 'FAVOURITED_STATUSES_EXPAND_REQUEST';
|
||||||
|
const FAVOURITED_STATUSES_EXPAND_SUCCESS = 'FAVOURITED_STATUSES_EXPAND_SUCCESS';
|
||||||
|
const FAVOURITED_STATUSES_EXPAND_FAIL = 'FAVOURITED_STATUSES_EXPAND_FAIL';
|
||||||
|
|
||||||
|
const ACCOUNT_FAVOURITED_STATUSES_FETCH_REQUEST = 'ACCOUNT_FAVOURITED_STATUSES_FETCH_REQUEST';
|
||||||
|
const ACCOUNT_FAVOURITED_STATUSES_FETCH_SUCCESS = 'ACCOUNT_FAVOURITED_STATUSES_FETCH_SUCCESS';
|
||||||
|
const ACCOUNT_FAVOURITED_STATUSES_FETCH_FAIL = 'ACCOUNT_FAVOURITED_STATUSES_FETCH_FAIL';
|
||||||
|
|
||||||
|
const ACCOUNT_FAVOURITED_STATUSES_EXPAND_REQUEST = 'ACCOUNT_FAVOURITED_STATUSES_EXPAND_REQUEST';
|
||||||
|
const ACCOUNT_FAVOURITED_STATUSES_EXPAND_SUCCESS = 'ACCOUNT_FAVOURITED_STATUSES_EXPAND_SUCCESS';
|
||||||
|
const ACCOUNT_FAVOURITED_STATUSES_EXPAND_FAIL = 'ACCOUNT_FAVOURITED_STATUSES_EXPAND_FAIL';
|
||||||
|
|
||||||
|
const fetchFavouritedStatuses = () =>
|
||||||
|
(dispatch: AppDispatch, getState: () => RootState) => {
|
||||||
|
if (!isLoggedIn(getState)) return;
|
||||||
|
|
||||||
|
if (getState().status_lists.get('favourites')?.isLoading) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
dispatch(fetchFavouritedStatusesRequest());
|
||||||
|
|
||||||
|
api(getState).get('/api/v1/favourites').then(response => {
|
||||||
|
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
||||||
|
dispatch(importFetchedStatuses(response.data));
|
||||||
|
dispatch(fetchFavouritedStatusesSuccess(response.data, next ? next.uri : null));
|
||||||
|
}).catch(error => {
|
||||||
|
dispatch(fetchFavouritedStatusesFail(error));
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const fetchFavouritedStatusesRequest = () => ({
|
||||||
|
type: FAVOURITED_STATUSES_FETCH_REQUEST,
|
||||||
|
skipLoading: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const fetchFavouritedStatusesSuccess = (statuses: APIEntity[], next: string | null) => ({
|
||||||
|
type: FAVOURITED_STATUSES_FETCH_SUCCESS,
|
||||||
|
statuses,
|
||||||
|
next,
|
||||||
|
skipLoading: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const fetchFavouritedStatusesFail = (error: AxiosError) => ({
|
||||||
|
type: FAVOURITED_STATUSES_FETCH_FAIL,
|
||||||
|
error,
|
||||||
|
skipLoading: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const expandFavouritedStatuses = () =>
|
||||||
|
(dispatch: AppDispatch, getState: () => RootState) => {
|
||||||
|
if (!isLoggedIn(getState)) return;
|
||||||
|
|
||||||
|
const url = getState().status_lists.get('favourites')?.next || null;
|
||||||
|
|
||||||
|
if (url === null || getState().status_lists.get('favourites')?.isLoading) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
dispatch(expandFavouritedStatusesRequest());
|
||||||
|
|
||||||
|
api(getState).get(url).then(response => {
|
||||||
|
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
||||||
|
dispatch(importFetchedStatuses(response.data));
|
||||||
|
dispatch(expandFavouritedStatusesSuccess(response.data, next ? next.uri : null));
|
||||||
|
}).catch(error => {
|
||||||
|
dispatch(expandFavouritedStatusesFail(error));
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const expandFavouritedStatusesRequest = () => ({
|
||||||
|
type: FAVOURITED_STATUSES_EXPAND_REQUEST,
|
||||||
|
});
|
||||||
|
|
||||||
|
const expandFavouritedStatusesSuccess = (statuses: APIEntity[], next: string | null) => ({
|
||||||
|
type: FAVOURITED_STATUSES_EXPAND_SUCCESS,
|
||||||
|
statuses,
|
||||||
|
next,
|
||||||
|
});
|
||||||
|
|
||||||
|
const expandFavouritedStatusesFail = (error: AxiosError) => ({
|
||||||
|
type: FAVOURITED_STATUSES_EXPAND_FAIL,
|
||||||
|
error,
|
||||||
|
});
|
||||||
|
|
||||||
|
const fetchAccountFavouritedStatuses = (accountId: string) =>
|
||||||
|
(dispatch: AppDispatch, getState: () => RootState) => {
|
||||||
|
if (!isLoggedIn(getState)) return;
|
||||||
|
|
||||||
|
if (getState().status_lists.get(`favourites:${accountId}`)?.isLoading) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
dispatch(fetchAccountFavouritedStatusesRequest(accountId));
|
||||||
|
|
||||||
|
api(getState).get(`/api/v1/pleroma/accounts/${accountId}/favourites`).then(response => {
|
||||||
|
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
||||||
|
dispatch(importFetchedStatuses(response.data));
|
||||||
|
dispatch(fetchAccountFavouritedStatusesSuccess(accountId, response.data, next ? next.uri : null));
|
||||||
|
}).catch(error => {
|
||||||
|
dispatch(fetchAccountFavouritedStatusesFail(accountId, error));
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const fetchAccountFavouritedStatusesRequest = (accountId: string) => ({
|
||||||
|
type: ACCOUNT_FAVOURITED_STATUSES_FETCH_REQUEST,
|
||||||
|
accountId,
|
||||||
|
skipLoading: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const fetchAccountFavouritedStatusesSuccess = (accountId: string, statuses: APIEntity, next: string | null) => ({
|
||||||
|
type: ACCOUNT_FAVOURITED_STATUSES_FETCH_SUCCESS,
|
||||||
|
accountId,
|
||||||
|
statuses,
|
||||||
|
next,
|
||||||
|
skipLoading: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const fetchAccountFavouritedStatusesFail = (accountId: string, error: AxiosError) => ({
|
||||||
|
type: ACCOUNT_FAVOURITED_STATUSES_FETCH_FAIL,
|
||||||
|
accountId,
|
||||||
|
error,
|
||||||
|
skipLoading: true,
|
||||||
|
});
|
||||||
|
|
||||||
|
const expandAccountFavouritedStatuses = (accountId: string) =>
|
||||||
|
(dispatch: AppDispatch, getState: () => RootState) => {
|
||||||
|
if (!isLoggedIn(getState)) return;
|
||||||
|
|
||||||
|
const url = getState().status_lists.get(`favourites:${accountId}`)?.next || null;
|
||||||
|
|
||||||
|
if (url === null || getState().status_lists.get(`favourites:${accountId}`)?.isLoading) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
dispatch(expandAccountFavouritedStatusesRequest(accountId));
|
||||||
|
|
||||||
|
api(getState).get(url).then(response => {
|
||||||
|
const next = getLinks(response).refs.find(link => link.rel === 'next');
|
||||||
|
dispatch(importFetchedStatuses(response.data));
|
||||||
|
dispatch(expandAccountFavouritedStatusesSuccess(accountId, response.data, next ? next.uri : null));
|
||||||
|
}).catch(error => {
|
||||||
|
dispatch(expandAccountFavouritedStatusesFail(accountId, error));
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
const expandAccountFavouritedStatusesRequest = (accountId: string) => ({
|
||||||
|
type: ACCOUNT_FAVOURITED_STATUSES_EXPAND_REQUEST,
|
||||||
|
accountId,
|
||||||
|
});
|
||||||
|
|
||||||
|
const expandAccountFavouritedStatusesSuccess = (accountId: string, statuses: APIEntity[], next: string | null) => ({
|
||||||
|
type: ACCOUNT_FAVOURITED_STATUSES_EXPAND_SUCCESS,
|
||||||
|
accountId,
|
||||||
|
statuses,
|
||||||
|
next,
|
||||||
|
});
|
||||||
|
|
||||||
|
const expandAccountFavouritedStatusesFail = (accountId: string, error: AxiosError) => ({
|
||||||
|
type: ACCOUNT_FAVOURITED_STATUSES_EXPAND_FAIL,
|
||||||
|
accountId,
|
||||||
|
error,
|
||||||
|
});
|
||||||
|
|
||||||
|
export {
|
||||||
|
FAVOURITED_STATUSES_FETCH_REQUEST,
|
||||||
|
FAVOURITED_STATUSES_FETCH_SUCCESS,
|
||||||
|
FAVOURITED_STATUSES_FETCH_FAIL,
|
||||||
|
FAVOURITED_STATUSES_EXPAND_REQUEST,
|
||||||
|
FAVOURITED_STATUSES_EXPAND_SUCCESS,
|
||||||
|
FAVOURITED_STATUSES_EXPAND_FAIL,
|
||||||
|
ACCOUNT_FAVOURITED_STATUSES_FETCH_REQUEST,
|
||||||
|
ACCOUNT_FAVOURITED_STATUSES_FETCH_SUCCESS,
|
||||||
|
ACCOUNT_FAVOURITED_STATUSES_FETCH_FAIL,
|
||||||
|
ACCOUNT_FAVOURITED_STATUSES_EXPAND_REQUEST,
|
||||||
|
ACCOUNT_FAVOURITED_STATUSES_EXPAND_SUCCESS,
|
||||||
|
ACCOUNT_FAVOURITED_STATUSES_EXPAND_FAIL,
|
||||||
|
fetchFavouritedStatuses,
|
||||||
|
fetchFavouritedStatusesRequest,
|
||||||
|
fetchFavouritedStatusesSuccess,
|
||||||
|
fetchFavouritedStatusesFail,
|
||||||
|
expandFavouritedStatuses,
|
||||||
|
expandFavouritedStatusesRequest,
|
||||||
|
expandFavouritedStatusesSuccess,
|
||||||
|
expandFavouritedStatusesFail,
|
||||||
|
fetchAccountFavouritedStatuses,
|
||||||
|
fetchAccountFavouritedStatusesRequest,
|
||||||
|
fetchAccountFavouritedStatusesSuccess,
|
||||||
|
fetchAccountFavouritedStatusesFail,
|
||||||
|
expandAccountFavouritedStatuses,
|
||||||
|
expandAccountFavouritedStatusesRequest,
|
||||||
|
expandAccountFavouritedStatusesSuccess,
|
||||||
|
expandAccountFavouritedStatusesFail,
|
||||||
|
};
|
|
@ -4,7 +4,7 @@ import api from '../api';
|
||||||
|
|
||||||
import type { AppDispatch, RootState } from 'soapbox/store';
|
import type { AppDispatch, RootState } from 'soapbox/store';
|
||||||
|
|
||||||
const noOp = (e) => {};
|
const noOp = (e: any) => {};
|
||||||
|
|
||||||
const fetchMedia = (mediaId: string) =>
|
const fetchMedia = (mediaId: string) =>
|
||||||
(dispatch: any, getState: () => RootState) => {
|
(dispatch: any, getState: () => RootState) => {
|
||||||
|
|
Ładowanie…
Reference in New Issue