## 概要 [Task2809: アカウント登録画面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2809) アカウント作成時の管理者ユーザー作成時に、同意済みEULAバージョンを登録する処理を追加しました。 ## レビューポイント なし ## UIの変更 なし ## 動作確認状況 ローカルで動作確認済み ## 補足 なし
103 lines
2.8 KiB
TypeScript
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;
|