makabe.t a9aca6e4ff Merged PR 750: データ削除ツール作成+動作確認
## 概要
[Task3569: データ削除ツール作成+動作確認](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/3569)

- データ削除ツールを実装しました。
  - Blobストレージからのコンテナ削除
  - ADB2Cからのユーザー削除
  - DBの全削除
  - Auto Incrementの設定

## レビューポイント
- Blobストレージの削除対象の取得に問題はないでしょうか?
  - 3つのリージョン内のすべてのコンテナを取得してから、取得したコンテナを全削除するようにしています。
- ADB2Cの削除対象の取得に問題はないでしょうか?
  - ローカルアカウントなユーザーのみを取得してから、取得したユーザーを全削除するようにしています。
- フォルダ構成に違和感はないでしょうか?

## UIの変更
- [Task3569](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/Task3569?csf=1&web=1&e=wU1st1)

## 動作確認状況
- ローカルで確認
  - DB操作のみ確認しています。Azureリソースの削除についてはdevelop環境で改めて実施します。
2024-02-20 10:09:05 +00:00

39 lines
955 B
TypeScript

import { createSlice, PayloadAction } from "@reduxjs/toolkit";
import { SnackbarLevel } from "./types";
import { UIState } from "./state";
import { DEFAULT_SNACKBAR_DURATION } from "./constants";
const initialState: UIState = {
isOpen: false,
level: "error",
message: "",
};
export const uiSlice = createSlice({
name: "ui",
initialState,
reducers: {
openSnackbar: (
state,
action: PayloadAction<{
level: SnackbarLevel;
message: string;
duration?: number;
}>
) => {
const { level, message, duration } = action.payload;
state.isOpen = true;
state.level = level;
state.message = message;
state.duration =
level === "error" ? undefined : duration ?? DEFAULT_SNACKBAR_DURATION;
},
closeSnackbar: (state) => {
state.isOpen = false;
},
},
});
export const { openSnackbar, closeSnackbar } = uiSlice.actions;
export default uiSlice.reducer;