ReactProfileWrapper.tsx 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. import React from 'react';
  2. import { UserProvider } from 'app/core/utils/UserProvider';
  3. import { UserProfileEditForm } from './UserProfileEditForm';
  4. import { SharedPreferences } from 'app/core/components/SharedPreferences/SharedPreferences';
  5. import { UserTeams } from './UserTeams';
  6. import { UserOrganizations } from './UserOrganizations';
  7. import { config } from '@grafana/runtime';
  8. import { LoadingPlaceholder } from '@grafana/ui';
  9. export const ReactProfileWrapper = () => (
  10. <UserProvider userId={config.bootData.user.id}>
  11. {(api, states, teams, orgs, user) => {
  12. return (
  13. <>
  14. {states.loadUser ? (
  15. <LoadingPlaceholder text="Loading user profile..." />
  16. ) : (
  17. <UserProfileEditForm
  18. updateProfile={api.updateUserProfile}
  19. isSavingUser={states.updateUserProfile}
  20. user={user}
  21. />
  22. )}
  23. <SharedPreferences resourceUri="user" />
  24. <UserTeams isLoading={states.loadTeams} loadTeams={api.loadTeams} teams={teams} />
  25. <UserOrganizations
  26. isLoading={states.loadOrgs}
  27. setUserOrg={api.setUserOrg}
  28. loadOrgs={api.loadOrgs}
  29. orgs={orgs}
  30. user={user}
  31. />
  32. </>
  33. );
  34. }}
  35. </UserProvider>
  36. );
  37. export default ReactProfileWrapper;