oura.a 58674f7773 Merged PR 498: アカウント登録画面修正
## 概要
[Task2809: アカウント登録画面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2809)

アカウント作成時の管理者ユーザー作成時に、同意済みEULAバージョンを登録する処理を追加しました。

## レビューポイント
なし

## UIの変更
なし

## 動作確認状況
ローカルで動作確認済み

## 補足
なし
2023-10-17 06:06:12 +00:00

103 lines
2.8 KiB
TypeScript

import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { SignupState } from "./state";
import {
getDealersAsync,
getLatestEulaVersionAsync,
signupAsync,
} from "./operations";
const initialState: SignupState = {
apps: {
pageState: "input",
company: "",
country: "",
dealer: undefined,
adminName: "",
email: "",
password: "",
dealers: [],
},
domain: {
dealers: [],
eulaVersion: "",
},
};
export const signupSlice = createSlice({
name: "signup",
initialState,
reducers: {
changePageState: (
state,
action: PayloadAction<{ pageState: "input" | "confirm" | "complete" }>
) => {
const { pageState } = action.payload;
state.apps.pageState = pageState;
},
changeCompany: (state, action: PayloadAction<{ company: string }>) => {
const { company } = action.payload;
state.apps.company = company;
},
changeCountry: (state, action: PayloadAction<{ country: string }>) => {
const { country } = action.payload;
state.apps.country = country;
state.apps.dealer = undefined;
},
changeDealer: (state, action: PayloadAction<{ dealer: number }>) => {
const { dealer } = action.payload;
state.apps.dealer = Number.isNaN(dealer) ? undefined : dealer;
},
changeAdminName: (state, action: PayloadAction<{ adminName: string }>) => {
const { adminName } = action.payload;
state.apps.adminName = adminName;
},
changeEmail: (state, action: PayloadAction<{ email: string }>) => {
const { email } = action.payload;
state.apps.email = email;
},
changePassword: (state, action: PayloadAction<{ password: string }>) => {
const { password } = action.payload;
state.apps.password = password;
},
},
extraReducers: (builder) => {
builder.addCase(signupAsync.pending, () => {
//
});
builder.addCase(signupAsync.fulfilled, (state) => {
state.apps.pageState = "complete";
});
builder.addCase(signupAsync.rejected, () => {
//
});
builder.addCase(getDealersAsync.pending, () => {
//
});
builder.addCase(getDealersAsync.fulfilled, (state, action) => {
state.domain.dealers = action.payload.dealers;
});
builder.addCase(getDealersAsync.rejected, () => {
//
});
builder.addCase(getLatestEulaVersionAsync.pending, () => {
//
});
builder.addCase(getLatestEulaVersionAsync.fulfilled, (state, action) => {
state.domain.eulaVersion = action.payload;
});
builder.addCase(getLatestEulaVersionAsync.rejected, () => {
//
});
},
});
export const {
changePageState,
changeEmail,
changeAdminName,
changeCompany,
changeCountry,
changeDealer,
changePassword,
} = signupSlice.actions;
export default signupSlice.reducer;