stitch-ui
Version:
35 lines (28 loc) • 1.31 kB
JavaScript
import { createAction } from "redux-act";
import { makeAsyncActions, asyncActionExecutor } from "../util";
const NAME = "home/";
export const showNewAppModal = createAction(`${NAME}show new app modal`);
export const hideNewAppModal = createAction(`${NAME}hide new app modal`);
export const setError = createAction(`${NAME}set error`);
export const resetError = createAction(`${NAME}reset error`);
export const toggleGroupDropdown = createAction(`${NAME}toggle group dropdown`);
export const setGroupId = createAction(`${NAME}set group id`);
export const setCreateAppError = createAction(`${NAME}set create app error`);
// Async actions
export const loadAppsActions = makeAsyncActions(`${NAME}load apps`);
export const createAppActions = makeAsyncActions(`${NAME}create app`);
export const deleteAppActions = makeAsyncActions(`${NAME}delete app`);
export const loadApps = asyncActionExecutor(
loadAppsActions,
(client, groupId) => () => client.apps(groupId).list()
);
export const createApp = asyncActionExecutor(
createAppActions,
(client, groupId, appName) => () =>
client.apps(groupId).create({ name: appName }, { defaults: true }),
true
);
export const deleteApp = asyncActionExecutor(
deleteAppActions,
(client, groupId, appId) => () => client.apps(groupId).app(appId).remove()
);