refactor: return value as Tabsection from isTabSection fn (avoids assertion at setState level)

This commit is contained in:
lemmyMwaura
2024-07-28 07:50:27 +03:00
parent 06900b9c99
commit f5bc4e1b5f
3 changed files with 6 additions and 4 deletions

View File

@@ -6,7 +6,7 @@ enum TabSections {
ServiceTokens = "service-tokens"
}
const isTabSection = (value: any): boolean => {
const isTabSection = (value: any): value is TabSections => {
return Object.values(TabSections).includes(value);
}

View File

@@ -1,6 +1,7 @@
/* eslint-disable @typescript-eslint/no-unused-vars */
import { useRouter } from 'next/router';
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";
@@ -17,7 +18,7 @@ export const MembersPage = withPermission(
useEffect(() => {
if (selectedTab && isTabSection(selectedTab)) {
setActiveTab(selectedTab as TabSections);
setActiveTab(selectedTab);
}
}, [isTabSection, selectedTab]);

View File

@@ -1,13 +1,14 @@
/* eslint-disable @typescript-eslint/no-unused-vars */
import { useRouter } from 'next/router';
import { useEffect, useState } from 'react';
import { Tab, TabList, TabPanel, Tabs } from "@app/components/v2";
import { ProjectPermissionActions, ProjectPermissionSub } from "@app/context";
import { withProjectPermission } from "@app/hoc";
import { TabSections, isTabSection } from '@app/types';
import { IdentityTab, MembersTab,ProjectRoleListTab, ServiceTokenTab } from "./components";
import { TabSections, isTabSection } from '@app/types';
export const MembersPage = withProjectPermission(
() => {
@@ -18,7 +19,7 @@ export const MembersPage = withProjectPermission(
useEffect(() => {
if (selectedTab && isTabSection(selectedTab)) {
setActiveTab(selectedTab as TabSections);
setActiveTab(selectedTab);
}
}, [isTabSection, selectedTab]);