ReactProfileWrapper.tsx 1.0 KB

12345678910111213141516171819202122232425262728293031
  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 { config } from '@grafana/runtime';
  7. import { LoadingPlaceholder } from '@grafana/ui';
  8. export const ReactProfileWrapper = () => (
  9. <UserProvider userId={config.bootData.user.id}>
  10. {(api, states, teams, user) => {
  11. return (
  12. <>
  13. {states.loadUser ? (
  14. <LoadingPlaceholder text="Loading user profile..." />
  15. ) : (
  16. <UserProfileEditForm
  17. updateProfile={api.updateUserProfile}
  18. isSavingUser={states.updateUserProfile}
  19. user={user}
  20. />
  21. )}
  22. <SharedPreferences resourceUri="user" />
  23. <UserTeams isLoading={states.loadTeams} loadTeams={api.loadTeams} teams={teams} />
  24. </>
  25. );
  26. }}
  27. </UserProvider>
  28. );
  29. export default ReactProfileWrapper;