bazarr/frontend/src/@redux/actions/site.ts

52 lines
1.3 KiB
TypeScript
Raw Normal View History

import { createAction, createAsyncThunk } from "@reduxjs/toolkit";
2021-03-25 14:22:43 +00:00
import { BadgesApi } from "../../apis";
import { waitFor } from "../../utilites";
import { systemUpdateAllSettings } from "./system";
2021-03-25 14:22:43 +00:00
export const siteBootstrap = createAsyncThunk(
"site/bootstrap",
(_: undefined, { dispatch }) => {
return Promise.all([
dispatch(systemUpdateAllSettings()),
dispatch(siteUpdateBadges()),
]);
}
);
2021-03-25 14:22:43 +00:00
export const siteUpdateInitialization = createAction<string | true>(
"site/initialization/update"
);
2021-03-25 14:22:43 +00:00
export const siteRedirectToAuth = createAction("site/redirect_auth");
2021-03-25 14:22:43 +00:00
export const siteAddNotifications = createAction<Server.Notification[]>(
"site/notifications/add"
2021-03-25 14:22:43 +00:00
);
export const siteRemoveNotifications = createAction<string>(
"site/notifications/remove"
2021-03-25 14:22:43 +00:00
);
export const siteAddProgress =
createAction<Site.Progress[]>("site/progress/add");
2021-03-25 14:22:43 +00:00
export const siteRemoveProgress = createAsyncThunk(
"site/progress/remove",
async (ids: string[]) => {
await waitFor(3 * 1000);
return ids;
}
);
2021-05-09 08:41:19 +00:00
export const siteChangeSidebar = createAction<string>("site/sidebar/update");
2021-05-09 08:41:19 +00:00
export const siteUpdateOffline = createAction<boolean>("site/offline/update");
2021-03-25 14:22:43 +00:00
export const siteUpdateBadges = createAsyncThunk(
"site/badges/update",
async () => {
const response = await BadgesApi.all();
return response;
}
2021-03-25 14:22:43 +00:00
);