diff --git a/src/pages/workspace/tags/WorkspaceTagsPage.tsx b/src/pages/workspace/tags/WorkspaceTagsPage.tsx index 74211f8f53a2..d046f413e780 100644 --- a/src/pages/workspace/tags/WorkspaceTagsPage.tsx +++ b/src/pages/workspace/tags/WorkspaceTagsPage.tsx @@ -52,9 +52,8 @@ function WorkspaceTagsPage({route}: WorkspaceTagsPageProps) { const [policyTags] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY_TAGS}${policyID}`); const {environmentURL} = useEnvironment(); const isConnectedToAccounting = Object.keys(policy?.connections ?? {}).length > 0; - const policyTagLists = useMemo(() => PolicyUtils.getTagLists(policyTags), [policyTags]); - const doesPolicyContainOnlyOneTagList = policyTagLists.length === 1; - const canSelectMultiple = doesPolicyContainOnlyOneTagList; + const [policyTagLists, isMultiLevelTags] = useMemo(() => [PolicyUtils.getTagLists(policyTags), PolicyUtils.isMultiLevelTags(policyTags)], [policyTags]); + const canSelectMultiple = !isMultiLevelTags; const fetchTags = useCallback(() => { Policy.openPolicyTagsPage(policyID); @@ -72,7 +71,7 @@ function WorkspaceTagsPage({route}: WorkspaceTagsPageProps) { }, [isFocused]); const tagList = useMemo(() => { - if (!doesPolicyContainOnlyOneTagList) { + if (isMultiLevelTags) { return policyTagLists.map((policyTagList) => ({ value: policyTagList.name, orderWeight: policyTagList.orderWeight, @@ -89,7 +88,7 @@ function WorkspaceTagsPage({route}: WorkspaceTagsPageProps) { ), })); } - return Object.values(policyTagLists[0].tags) + return Object.values(policyTagLists[0]?.tags ?? {}) .sort((tagA, tagB) => localeCompare(tagA.name, tagB.name)) .map((tag) => ({ value: tag.name, @@ -102,7 +101,7 @@ function WorkspaceTagsPage({route}: WorkspaceTagsPageProps) { isDisabled: tag.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE, rightElement: , })); - }, [doesPolicyContainOnlyOneTagList, policyTagLists, selectedTags, translate]); + }, [isMultiLevelTags, policyTagLists, selectedTags, translate]); const tagListKeyedByName = useMemo( () => @@ -166,12 +165,11 @@ function WorkspaceTagsPage({route}: WorkspaceTagsPageProps) { const getHeaderButtons = () => { const isThereAnyAccountingConnection = Object.keys(policy?.connections ?? {}).length !== 0; - const isMultiLevelTags = PolicyUtils.isMultiLevelTags(policyTags); if (selectedTagsArray.length === 0) { return ( - {doesPolicyContainOnlyOneTagList && !isThereAnyAccountingConnection && ( + {!isThereAnyAccountingConnection && !isMultiLevelTags && (