Newer
Older
taehui / qwilight-fe / src / etc / setEtcStore.ts
@Taehui Taehui on 6 Nov 3 KB 2023-11-06 오후 10:13
import { runInAction } from "mobx";
import { getMillis } from "taehui-ts/date";
import { getLanguage } from "taehui-ts/language";

import { wwwAXIOS } from "src/Www";
import {
  GetEtcAPI,
  EtcAPIMode,
  EtcAPINote,
  EtcAPITitle,
  EtcAPIEdge,
} from "src/wwwAPI";

export default function setEtcStore() {
  let lastMillis = getMillis();

  return {
    totalDateSet: [] as string[],
    totalDateValues: [] as number[],
    signUpDateSet: [] as string[],
    signUpDateValues: [] as number[],
    avatarDateSet: [] as string[],
    avatarDateValues: [] as number[],
    totalNoteFileValues: [] as EtcAPINote[],
    totalTitleValues: [] as EtcAPITitle[],
    totalEdgeValues: [] as EtcAPIEdge[],
    favoriteNoteFileValues: [] as EtcAPINote[],
    favoriteNoteFileAtValues: [] as EtcAPINote[],
    inputModeValues: [] as EtcAPIMode[],
    autoModeValues: [] as EtcAPIMode[],
    noteSaltModeValues: [] as EtcAPIMode[],
    faintNoteModeValues: [] as EtcAPIMode[],
    judgmentModeValues: [] as EtcAPIMode[],
    hitPointsModeValues: [] as EtcAPIMode[],
    noteMobilityModeValues: [] as EtcAPIMode[],
    longNoteModeValues: [] as EtcAPIMode[],
    inputFavorModeValues: [] as EtcAPIMode[],
    noteModifyModeValues: [] as EtcAPIMode[],
    lowestJudgmentConditionModeValues: [] as EtcAPIMode[],
    isLoading: false,

    async getEtc() {
      const millis = getMillis();
      lastMillis = millis;
      this.isLoading = true;
      const { status, data } = await wwwAXIOS.get<GetEtcAPI>("/etc", {
        params: { language: getLanguage() },
      });
      if (millis >= lastMillis) {
        if (status === 200) {
          runInAction(() => {
            this.totalDateSet = data.totalDateSet;
            this.totalDateValues = data.totalDateValues;
            this.signUpDateSet = data.signUpDateSet;
            this.signUpDateValues = data.signUpDateValues;
            this.avatarDateSet = data.avatarDateSet;
            this.avatarDateValues = data.avatarDateValues;
            this.totalNoteFileValues = data.totalNoteFileValues;
            this.totalTitleValues = data.totalTitleValues;
            this.totalEdgeValues = data.totalEdgeValues;
            this.favoriteNoteFileValues = data.favoriteNoteFileValues;
            this.favoriteNoteFileAtValues = data.favoriteNoteFileAtValues;
            this.inputModeValues = data.inputModeValues;
            this.autoModeValues = data.autoModeValues;
            this.noteSaltModeValues = data.noteSaltModeValues;
            this.faintNoteModeValues = data.faintNoteModeValues;
            this.judgmentModeValues = data.judgmentModeValues;
            this.hitPointsModeValues = data.hitPointsModeValues;
            this.noteMobilityModeValues = data.noteMobilityModeValues;
            this.longNoteModeValues = data.longNoteModeValues;
            this.inputFavorModeValues = data.inputFavorModeValues;
            this.noteModifyModeValues = data.noteModifyModeValues;
            this.lowestJudgmentConditionModeValues =
              data.lowestJudgmentConditionModeValues;
            this.isLoading = false;
          });
        }
      }
    },
  };
}