title.tsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import EditableText from 'app/components/editableText';
  2. import {t} from 'app/locale';
  3. import {Organization} from 'app/types';
  4. import withOrganization from 'app/utils/withOrganization';
  5. import {DashboardDetails} from './types';
  6. type Props = {
  7. dashboard: DashboardDetails | null;
  8. isEditing: boolean;
  9. organization: Organization;
  10. onUpdate: (dashboard: DashboardDetails) => void;
  11. };
  12. function DashboardTitle({dashboard, isEditing, organization, onUpdate}: Props) {
  13. return (
  14. <div>
  15. {!dashboard ? (
  16. t('Dashboards')
  17. ) : (
  18. <EditableText
  19. isDisabled={!isEditing}
  20. value={
  21. organization.features.includes('dashboards-edit') &&
  22. dashboard.id === 'default-overview'
  23. ? 'Default Dashboard'
  24. : dashboard.title
  25. }
  26. onChange={newTitle => onUpdate({...dashboard, title: newTitle})}
  27. errorMessage={t('Please set a title for this dashboard')}
  28. successMessage={t('Dashboard title updated successfully')}
  29. />
  30. )}
  31. </div>
  32. );
  33. }
  34. export default withOrganization(DashboardTitle);