From fabcdc16f5717cc1716abd663822773c5fd432da Mon Sep 17 00:00:00 2001 From: "oura.a" Date: Tue, 18 Jul 2023 06:13:23 +0000 Subject: [PATCH] =?UTF-8?q?Merged=20PR=20223:=20=E3=83=98=E3=83=83?= =?UTF-8?q?=E3=83=80=E4=BF=AE=E6=AD=A3=EF=BC=88partner=E3=82=BF=E3=83=96?= =?UTF-8?q?=E8=BF=BD=E5=8A=A0=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## 概要 [Task2154: ヘッダ修正(partnerタブ追加)](https://paruru.nds-tyo.co.jp:8443/tfs/ReciproCollection/fa4924a4-d079-4fab-9fb5-a9a11eb205f0/_workitems/edit/2154) - 元PBI or タスクへのリンク(内容・目的などはそちらにあるはず) - 何をどう変更したか、追加したライブラリなど ・Partnerヘッダータグを追加 - このPull Requestでの対象/対象外 ・リンクを押下した際の挙動は対象外 - 影響範囲(他の機能にも影響があるか) 新規タブなのでなし ## レビューポイント - 特にレビューしてほしい箇所 特になし ## UIの変更 - Before/Afterのスクショなど - スクショ置き場 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/Task2154?csf=1&web=1&e=jv7CDb ## 動作確認状況 - ローカルで確認 ## 補足 - 相談、参考資料などがあれば --- .../src/components/auth/constants.ts | 12 +++++ .../src/components/header/constants.ts | 18 ++++++- .../src/components/header/loginedHeader.tsx | 12 ++--- .../src/components/header/types.ts | 2 + .../src/components/header/utils.ts | 50 +++++++++++++++++++ dictation_client/src/features/auth/utils.ts | 27 +++++++++- 6 files changed, 111 insertions(+), 10 deletions(-) diff --git a/dictation_client/src/components/auth/constants.ts b/dictation_client/src/components/auth/constants.ts index 55e074a..d000d87 100644 --- a/dictation_client/src/components/auth/constants.ts +++ b/dictation_client/src/components/auth/constants.ts @@ -16,3 +16,15 @@ export const USER_ROLES = { AUTHOR: "author", TYPIST: "typist", } as const; + +/** + * 階層 + * @const {string[]} + */ +export const TIERS = { + TIER1: "1", + TIER2: "2", + TIER3: "3", + TIER4: "4", + TIER5: "5", +} as const; diff --git a/dictation_client/src/components/header/constants.ts b/dictation_client/src/components/header/constants.ts index ede1a6a..f3788f1 100644 --- a/dictation_client/src/components/header/constants.ts +++ b/dictation_client/src/components/header/constants.ts @@ -5,6 +5,7 @@ export const HEADER_MENUS_USER = "User"; export const HEADER_MENUS_LICENSE = "License"; export const HEADER_MENUS_DICTATIONS = "Dictations"; export const HEADER_MENUS_WORKFLOW = "Workflow"; +export const HEADER_MENUS_PARTNER = "Partners"; export const HEADER_MENUS_XXX = "XXX"; // XXX 仮のタブ export const HEADER_MENUS: { label: HeaderMenus; path: LoginedPaths }[] = [ @@ -13,6 +14,7 @@ export const HEADER_MENUS: { label: HeaderMenus; path: LoginedPaths }[] = [ { label: HEADER_MENUS_LICENSE, path: "/license" }, { label: HEADER_MENUS_USER, path: "/user" }, { label: HEADER_MENUS_WORKFLOW, path: "/workflow" }, + { label: HEADER_MENUS_PARTNER, path: "/partners" }, { label: HEADER_MENUS_XXX, path: "/xxx" }, // XXX 仮のタブ ]; @@ -21,4 +23,18 @@ export const HEADER_NAME = "ODMS Cloud"; /** * adminのみに表示するヘッダータブ */ -export const ADMIN_ONLY_TABS = [HEADER_MENUS_LICENSE, HEADER_MENUS_USER]; +export const ADMIN_ONLY_TABS = [ + HEADER_MENUS_LICENSE, + HEADER_MENUS_USER, + HEADER_MENUS_PARTNER, +]; + +/** + * 第1~4階層のみに表示するヘッダータブ + */ +export const TIER1_TO_TIER4_ONLY_TABS = [HEADER_MENUS_PARTNER]; + +/** + * admin,standardでなく、第1~5階層でもないアカウントに表示する空のヘッダータブ + */ +export const INVALID_ACCOUNT_TABS = []; diff --git a/dictation_client/src/components/header/loginedHeader.tsx b/dictation_client/src/components/header/loginedHeader.tsx index c124236..5a4260c 100644 --- a/dictation_client/src/components/header/loginedHeader.tsx +++ b/dictation_client/src/components/header/loginedHeader.tsx @@ -1,11 +1,10 @@ import React from "react"; -import { isAdminUser } from "features/auth/utils"; import styles from "styles/app.module.scss"; - +import { getFilteredMenus } from "./utils"; import logo from "../../assets/images/OMS_logo_black.svg"; import ac from "../../assets/images/account_circle.svg"; import { LoginedPaths } from "./types"; -import { ADMIN_ONLY_TABS, HEADER_MENUS, HEADER_NAME } from "./constants"; +import { HEADER_NAME } from "./constants"; interface HeaderProps { name: string; @@ -15,10 +14,7 @@ interface HeaderProps { // ログイン後のヘッダー const LoginedHeader: React.FC = (props: HeaderProps) => { const { name, activePath } = props; - const isAdmin = isAdminUser(); - const filteredMenus = isAdmin - ? HEADER_MENUS - : HEADER_MENUS.filter((item) => !ADMIN_ONLY_TABS.includes(item.label)); + const filterMenus = getFilteredMenus(); return (
@@ -27,7 +23,7 @@ const LoginedHeader: React.FC = (props: HeaderProps) => {
{HEADER_NAME}