Browse Source

ref(js): Remove withProjects in noProjectMessage (#30300)

Evan Purkhiser 3 years ago
parent
commit
f64da67081

+ 6 - 8
static/app/components/noProjectMessage.tsx

@@ -10,23 +10,21 @@ import PageHeading from 'sentry/components/pageHeading';
 import {t} from 'sentry/locale';
 import ConfigStore from 'sentry/stores/configStore';
 import space from 'sentry/styles/space';
-import {Organization, Project} from 'sentry/types';
-import withProjects from 'sentry/utils/withProjects';
+import {Organization} from 'sentry/types';
+import useProjects from 'sentry/utils/useProjects';
 
 type Props = React.PropsWithChildren<{
   organization: Organization;
-  projects: Project[];
-  loadingProjects: boolean;
   superuserNeedsToBeProjectMember?: boolean;
 }>;
 
 function NoProjectMessage({
   children,
   organization,
-  projects,
-  loadingProjects,
   superuserNeedsToBeProjectMember,
 }: Props) {
+  const {projects, initiallyLoaded: projectsLoaded} = useProjects();
+
   const orgSlug = organization.slug;
   const canCreateProject = organization.access.includes('project:write');
   const canJoinTeam = organization.access.includes('team:read');
@@ -39,7 +37,7 @@ function NoProjectMessage({
       ? !!projects?.some(p => p.hasAccess)
       : !!projects?.some(p => p.isMember && p.hasAccess);
 
-  if (hasProjectAccess || loadingProjects) {
+  if (hasProjectAccess || !projectsLoaded) {
     return <Fragment>{children}</Fragment>;
   }
 
@@ -129,4 +127,4 @@ const Actions = styled(ButtonBar)`
   width: fit-content;
 `;
 
-export default withProjects(NoProjectMessage);
+export default NoProjectMessage;

+ 0 - 2
tests/js/spec/views/projectsDashboard/noProjectMessage.spec.jsx

@@ -123,7 +123,6 @@ describe('NoProjectMessage', function () {
     // verify MockComponent is mounted once
     expect(mount).toHaveBeenCalledTimes(1);
     expect(wrapper.find('NoProjectMessage')).toHaveLength(1);
-    expect(wrapper.find('NoProjectMessage').prop('loadingProjects')).toEqual(true);
     act(() => ProjectsStore.loadInitialData([project1, project2]));
     // await for trigger from projects store to resolve
     await tick();
@@ -133,6 +132,5 @@ describe('NoProjectMessage', function () {
     expect(unmount).toHaveBeenCalledTimes(0);
     expect(mount).toHaveBeenCalledTimes(1);
     expect(wrapper.find('NoProjectMessage')).toHaveLength(1);
-    expect(wrapper.find('NoProjectMessage').prop('loadingProjects')).toEqual(false);
   });
 });