Skip to content

Commit

Permalink
webui: split actions per data type
Browse files Browse the repository at this point in the history
  • Loading branch information
KKoukiou committed Jun 21, 2023
1 parent 7660594 commit 63e3af9
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 43 deletions.
57 changes: 57 additions & 0 deletions ui/webui/src/actions/localization-actions.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/*
* Copyright (C) 2023 Red Hat, Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation; either version 2.1 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with This program; If not, see <http://www.gnu.org/licenses/>.
*/

import {
getCommonLocales,
getLanguages,
getLanguageData,
getLocales,
getLocaleData,
} from "../apis/localization.js";

export const getLanguagesAction = () => {
return async function fetchUserThunk (dispatch) {
const languageIds = await getLanguages();

dispatch(getCommonLocalesAction());
return languageIds.map(language => dispatch(getLanguageDataAction({ language })));
};
};

export const getLanguageDataAction = ({ language }) => {
return async function fetchUserThunk (dispatch) {
const localeIds = await getLocales({ lang: language });
const languageData = await getLanguageData({ lang: language });
const locales = await Promise.all(localeIds.map(async locale => await getLocaleData({ locale })));

return dispatch({
type: "GET_LANGUAGE_DATA",
payload: { languageData: { [language]: { languageData, locales } } }
});
};
};

export const getCommonLocalesAction = () => {
return async function fetchUserThunk (dispatch) {
const commonLocales = await getCommonLocales();

return dispatch({
type: "GET_COMMON_LOCALES",
payload: { commonLocales }
});
};
};
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
* You should have received a copy of the GNU Lesser General Public License
* along with This program; If not, see <http://www.gnu.org/licenses/>.
*/

import cockpit from "cockpit";

import {
Expand All @@ -24,14 +25,7 @@ import {
getDiskTotalSpace,
getFormatData,
getUsableDisks,
} from "./apis/storage.js";
import {
getCommonLocales,
getLanguages,
getLanguageData,
getLocales,
getLocaleData,
} from "./apis/localization.js";
} from "../apis/storage.js";

export const getDevicesAction = () => {
return async function fetchUserThunk (dispatch) {
Expand Down Expand Up @@ -88,36 +82,3 @@ export const getDiskSelectionAction = () => {
});
};
};

export const getLanguagesAction = () => {
return async function fetchUserThunk (dispatch) {
const languageIds = await getLanguages();

dispatch(getCommonLocalesAction());
return languageIds.map(language => dispatch(getLanguageDataAction({ language })));
};
};

export const getLanguageDataAction = ({ language }) => {
return async function fetchUserThunk (dispatch) {
const localeIds = await getLocales({ lang: language });
const languageData = await getLanguageData({ lang: language });
const locales = await Promise.all(localeIds.map(async locale => await getLocaleData({ locale })));

return dispatch({
type: "GET_LANGUAGE_DATA",
payload: { languageData: { [language]: { languageData, locales } } }
});
};
};

export const getCommonLocalesAction = () => {
return async function fetchUserThunk (dispatch) {
const commonLocales = await getCommonLocales();

return dispatch({
type: "GET_COMMON_LOCALES",
payload: { commonLocales }
});
};
};
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ import {
} from "../../helpers/language.js";
import { AnacondaPage } from "../AnacondaPage.jsx";
import { getOsReleaseByKey } from "../../helpers/product.js";
import { getLanguagesAction } from "../../actions.js";
import { getLanguagesAction } from "../../actions/localization-actions.js";

import "./InstallationLanguage.scss";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ import {
import {
getRequiredSpace,
} from "../../apis/payloads";
import { getDevicesAction, getDiskSelectionAction } from "../../actions.js";
import { getDevicesAction, getDiskSelectionAction } from "../../actions/storage-actions.js";

import {
sleep,
Expand Down

0 comments on commit 63e3af9

Please sign in to comment.