maruyama.t e9541e22a2 Merged PR 523: 画面修正(ヘッダー右上にユーザー名を表示)
## 概要
[Task2920: 画面修正](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2920)

- 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず)
- 何をどう変更したか、追加したライブラリなど
ログイン時に、API(getMyUser)を呼び出し、フラグをtrueにして結果をstateに保存する。
フラグで管理する目的は、ページ遷移時に再度API呼び出しを行わないようにするため。

- このPull Requestでの対象/対象外
サインアウト部分は対象外→別タスクにて対応

- 影響範囲(他の機能にも影響があるか)
既存の各ページのヘッダー部分

## レビューポイント
- component/header配下にSliceを追加すると循環参照になってしまうのを避けるため、feature/login配下にSlice及び各処理を追加した、妥当か。

## UIの変更
- https://ndstokyo.sharepoint.com/:f:/r/sites/Piranha/Shared%20Documents/General/OMDS/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88/Task2920?csf=1&web=1&e=AQgVug

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

## 補足
- 相談、参考資料などがあれば
2023-10-31 09:02:19 +00:00

29 lines
701 B
TypeScript

import { createSlice } from "@reduxjs/toolkit";
import { getUserInfoAsync } from "./operations";
import { HeaderState } from "./state";
const initialState: HeaderState = {
domain: {
getUserInfo: undefined,
},
};
export const headerSlice = createSlice({
name: "header",
initialState,
reducers: {
clearUserInfo: (state) => {
state.domain.getUserInfo = undefined;
},
},
extraReducers: (builder) => {
builder.addCase(getUserInfoAsync.fulfilled, (state, action) => {
state.domain.getUserInfo = action.payload;
});
},
});
export const { clearUserInfo } = headerSlice.actions;
export const headerReducer = headerSlice.reducer;
export default headerReducer;