languageActions.ts 803 Bytes
Newer Older
1
import language from "./languageReducer";
mayi's avatar
mayi committed
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35

export const CHANGE_LANGUAGE = "changeLanguage";
export const ADD_LANGUAGE = "addLanguage";
interface changeLanguageActionCreator {
  type: typeof CHANGE_LANGUAGE;
  payload: "en" | "zh";
}

interface addLanguageActionCreator {
  type: typeof ADD_LANGUAGE;
  payload: { name: string; code: string };
}

export type languageActionTypes =
  | changeLanguageActionCreator
  | addLanguageActionCreator;
export const changeLanguageActionCreator = (
  languageCode: "en" | "zh"
): changeLanguageActionCreator => {
  return {
    type: CHANGE_LANGUAGE,
    payload: languageCode,
  };
};

export const addLanguageActionCreator = (
  name: string,
  code: string
): addLanguageActionCreator => {
  return {
    type: ADD_LANGUAGE,
    payload: { name, code },
  };
};