soapbox/src/actions/about.ts

31 wiersze
973 B
TypeScript

2023-09-19 22:29:24 +00:00
import api from '../api';
2022-05-27 15:38:01 +00:00
import type { AnyAction } from 'redux';
2023-09-19 22:29:24 +00:00
import type { RootState } from 'soapbox/store';
2022-05-27 15:38:01 +00:00
const FETCH_ABOUT_PAGE_REQUEST = 'FETCH_ABOUT_PAGE_REQUEST';
const FETCH_ABOUT_PAGE_SUCCESS = 'FETCH_ABOUT_PAGE_SUCCESS';
const FETCH_ABOUT_PAGE_FAIL = 'FETCH_ABOUT_PAGE_FAIL';
2023-09-19 22:29:24 +00:00
const fetchAboutPage = (slug = 'index', locale?: string) => (dispatch: React.Dispatch<AnyAction>, getState: () => RootState) => {
2022-05-27 15:38:01 +00:00
dispatch({ type: FETCH_ABOUT_PAGE_REQUEST, slug, locale });
const filename = `${slug}${locale ? `.${locale}` : ''}.html`;
2023-09-19 22:29:24 +00:00
return api(getState).get(`/instance/about/${filename}`)
2022-05-27 15:38:01 +00:00
.then(({ data: html }) => {
dispatch({ type: FETCH_ABOUT_PAGE_SUCCESS, slug, locale, html });
return html;
})
.catch(error => {
dispatch({ type: FETCH_ABOUT_PAGE_FAIL, slug, locale, error });
throw error;
});
};
export {
fetchAboutPage,
FETCH_ABOUT_PAGE_REQUEST,
FETCH_ABOUT_PAGE_SUCCESS,
FETCH_ABOUT_PAGE_FAIL,
};