From 06900b9c99575503a5f00c36bc40c8e48f65f5c6 Mon Sep 17 00:00:00 2001 From: lemmyMwaura Date: Sun, 28 Jul 2024 07:14:57 +0300 Subject: [PATCH] refactor: create helper fn to check if string is in TabSections --- frontend/src/types/TabSections.ts | 6 +++++- frontend/src/types/index.ts | 5 +++-- frontend/src/views/Org/MembersPage/MembersPage.tsx | 6 +++--- frontend/src/views/Project/MembersPage/MembersPage.tsx | 6 +++--- 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/frontend/src/types/TabSections.ts b/frontend/src/types/TabSections.ts index f9ca3b207..2496d3da8 100644 --- a/frontend/src/types/TabSections.ts +++ b/frontend/src/types/TabSections.ts @@ -6,4 +6,8 @@ enum TabSections { ServiceTokens = "service-tokens" } -export default TabSections +const isTabSection = (value: any): boolean => { + return Object.values(TabSections).includes(value); +} + +export { TabSections, isTabSection } diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts index 58ab663a6..76f47c6f2 100644 --- a/frontend/src/types/index.ts +++ b/frontend/src/types/index.ts @@ -1,2 +1,3 @@ -import TabSections from "./TabSections"; -export { TabSections }; +import { TabSections, isTabSection } from "./TabSections"; + +export { TabSections, isTabSection }; diff --git a/frontend/src/views/Org/MembersPage/MembersPage.tsx b/frontend/src/views/Org/MembersPage/MembersPage.tsx index f567ee523..94009caf7 100644 --- a/frontend/src/views/Org/MembersPage/MembersPage.tsx +++ b/frontend/src/views/Org/MembersPage/MembersPage.tsx @@ -4,7 +4,7 @@ import { useEffect, useState } from 'react'; import { Tab, TabList, TabPanel, Tabs } from "@app/components/v2"; import { OrgPermissionActions, OrgPermissionSubjects } from "@app/context"; import { withPermission } from "@app/hoc"; -import { TabSections } from "@app/types"; +import { isTabSection, TabSections } from "@app/types"; import { OrgIdentityTab, OrgMembersTab, OrgRoleTabSection } from "./components"; @@ -16,10 +16,10 @@ export const MembersPage = withPermission( const [activeTab, setActiveTab] = useState(TabSections.Member); useEffect(() => { - if (selectedTab && Object.values(TabSections).includes(selectedTab as TabSections)) { + if (selectedTab && isTabSection(selectedTab)) { setActiveTab(selectedTab as TabSections); } - }, [selectedTab]); + }, [isTabSection, selectedTab]); const updateSelectedTab = (tab: string) => { router.push({ diff --git a/frontend/src/views/Project/MembersPage/MembersPage.tsx b/frontend/src/views/Project/MembersPage/MembersPage.tsx index 10af057eb..877c0ebbd 100644 --- a/frontend/src/views/Project/MembersPage/MembersPage.tsx +++ b/frontend/src/views/Project/MembersPage/MembersPage.tsx @@ -7,7 +7,7 @@ import { withProjectPermission } from "@app/hoc"; import { IdentityTab, MembersTab,ProjectRoleListTab, ServiceTokenTab } from "./components"; -import { TabSections } from '@app/types'; +import { TabSections, isTabSection } from '@app/types'; export const MembersPage = withProjectPermission( () => { @@ -17,10 +17,10 @@ export const MembersPage = withProjectPermission( const [activeTab, setActiveTab] = useState(TabSections.Member); useEffect(() => { - if (selectedTab && Object.values(TabSections).includes(selectedTab as TabSections)) { + if (selectedTab && isTabSection(selectedTab)) { setActiveTab(selectedTab as TabSections); } - }, [selectedTab]); + }, [isTabSection, selectedTab]); const updateSelectedTab = (tab: string) => { router.push({