layout.tsx 769 B

12345678910111213141516171819202122232425
  1. import { Row, Alert } from 'react-bootstrap'
  2. import Icon from '../../../../../shared/components/icon'
  3. import { UseAsyncReturnType } from '../../../../../shared/hooks/use-async'
  4. import { getUserFacingMessage } from '../../../../../infrastructure/fetch-json'
  5. type LayoutProps = {
  6. children: React.ReactNode
  7. isError: UseAsyncReturnType['isError']
  8. error: UseAsyncReturnType['error']
  9. }
  10. function Layout({ isError, error, children }: LayoutProps) {
  11. return (
  12. <div className="affiliations-table-row--highlighted">
  13. <Row>{children}</Row>
  14. {isError && (
  15. <Alert bsStyle="danger" className="text-center">
  16. <Icon type="exclamation-triangle" fw /> {getUserFacingMessage(error)}
  17. </Alert>
  18. )}
  19. </div>
  20. )
  21. }
  22. export default Layout