From 82f6799c34d12c7174d7e2cc580a7275fd5620c2 Mon Sep 17 00:00:00 2001 From: mabashian Date: Thu, 17 Dec 2020 09:19:44 -0500 Subject: [PATCH] Wrap breadcrumb function in useCallback to prevent infinite requests on org tabs --- .../screens/Organization/Organizations.jsx | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/awx/ui_next/src/screens/Organization/Organizations.jsx b/awx/ui_next/src/screens/Organization/Organizations.jsx index de46e1faae..5942d75147 100644 --- a/awx/ui_next/src/screens/Organization/Organizations.jsx +++ b/awx/ui_next/src/screens/Organization/Organizations.jsx @@ -1,4 +1,4 @@ -import React, { useState, Fragment } from 'react'; +import React, { useCallback, useState, Fragment } from 'react'; import { Route, withRouter, Switch, useRouteMatch } from 'react-router-dom'; import { withI18n } from '@lingui/react'; import { t } from '@lingui/macro'; @@ -17,25 +17,28 @@ function Organizations({ i18n }) { '/organizations/add': i18n._(t`Create New Organization`), }); - const setBreadcrumb = organization => { - if (!organization) { - return; - } + const setBreadcrumb = useCallback( + organization => { + if (!organization) { + return; + } - const breadcrumb = { - '/organizations': i18n._(t`Organizations`), - '/organizations/add': i18n._(t`Create New Organization`), - [`/organizations/${organization.id}`]: `${organization.name}`, - [`/organizations/${organization.id}/edit`]: i18n._(t`Edit Details`), - [`/organizations/${organization.id}/details`]: i18n._(t`Details`), - [`/organizations/${organization.id}/access`]: i18n._(t`Access`), - [`/organizations/${organization.id}/teams`]: i18n._(t`Teams`), - [`/organizations/${organization.id}/notifications`]: i18n._( - t`Notifications` - ), - }; - setBreadcrumbConfig(breadcrumb); - }; + const breadcrumb = { + '/organizations': i18n._(t`Organizations`), + '/organizations/add': i18n._(t`Create New Organization`), + [`/organizations/${organization.id}`]: `${organization.name}`, + [`/organizations/${organization.id}/edit`]: i18n._(t`Edit Details`), + [`/organizations/${organization.id}/details`]: i18n._(t`Details`), + [`/organizations/${organization.id}/access`]: i18n._(t`Access`), + [`/organizations/${organization.id}/teams`]: i18n._(t`Teams`), + [`/organizations/${organization.id}/notifications`]: i18n._( + t`Notifications` + ), + }; + setBreadcrumbConfig(breadcrumb); + }, + [i18n] + ); return (