2021-08-14 12:59:08 +00:00
|
|
|
import { createAction, createAsyncThunk } from "@reduxjs/toolkit";
|
2021-03-25 14:22:43 +00:00
|
|
|
import { BadgesApi } from "../../apis";
|
2021-08-24 01:31:47 +00:00
|
|
|
import { waitFor } from "../../utilities";
|
2021-08-14 12:59:08 +00:00
|
|
|
import { systemUpdateAllSettings } from "./system";
|
2021-03-25 14:22:43 +00:00
|
|
|
|
2021-08-14 12:59:08 +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
|
|
|
|
2021-08-14 12:59:08 +00:00
|
|
|
export const siteUpdateInitialization = createAction<string | true>(
|
|
|
|
"site/initialization/update"
|
|
|
|
);
|
2021-03-25 14:22:43 +00:00
|
|
|
|
2021-08-14 12:59:08 +00:00
|
|
|
export const siteRedirectToAuth = createAction("site/redirect_auth");
|
2021-03-25 14:22:43 +00:00
|
|
|
|
2021-08-14 12:59:08 +00:00
|
|
|
export const siteAddNotifications = createAction<Server.Notification[]>(
|
|
|
|
"site/notifications/add"
|
2021-03-25 14:22:43 +00:00
|
|
|
);
|
|
|
|
|
2021-08-14 12:59:08 +00:00
|
|
|
export const siteRemoveNotifications = createAction<string>(
|
|
|
|
"site/notifications/remove"
|
2021-03-25 14:22:43 +00:00
|
|
|
);
|
|
|
|
|
2021-08-15 16:10:38 +00:00
|
|
|
export const siteAddProgress =
|
2021-08-21 16:44:52 +00:00
|
|
|
createAction<Site.Progress[]>("site/progress/add");
|
2021-03-25 14:22:43 +00:00
|
|
|
|
2021-08-21 17:30:25 +00:00
|
|
|
export const siteUpdateProgressCount = createAction<{
|
|
|
|
id: string;
|
|
|
|
count: number;
|
|
|
|
}>("site/progress/update_count");
|
|
|
|
|
2021-08-18 00:26:52 +00:00
|
|
|
export const siteRemoveProgress = createAsyncThunk(
|
|
|
|
"site/progress/remove",
|
|
|
|
async (ids: string[]) => {
|
|
|
|
await waitFor(3 * 1000);
|
|
|
|
return ids;
|
|
|
|
}
|
2021-08-15 16:10:38 +00:00
|
|
|
);
|
2021-05-09 08:41:19 +00:00
|
|
|
|
2021-08-22 05:20:08 +00:00
|
|
|
export const siteUpdateNotifier = createAction<string>(
|
|
|
|
"site/progress/update_notifier"
|
|
|
|
);
|
|
|
|
|
2021-08-31 16:08:47 +00:00
|
|
|
export const siteChangeSidebarVisibility = createAction<boolean>(
|
|
|
|
"site/sidebar/visibility"
|
|
|
|
);
|
2021-05-09 08:41:19 +00:00
|
|
|
|
2021-08-14 12:59:08 +00:00
|
|
|
export const siteUpdateOffline = createAction<boolean>("site/offline/update");
|
2021-03-25 14:22:43 +00:00
|
|
|
|
2021-08-14 12:59:08 +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
|
|
|
);
|