layout.tsx 861 B

1234567891011121314151617181920212223242526
  1. import { 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. import RowWrapper from '@/features/ui/components/bootstrap-5/wrappers/row-wrapper'
  6. type LayoutProps = {
  7. children: React.ReactNode
  8. isError: UseAsyncReturnType['isError']
  9. error: UseAsyncReturnType['error']
  10. }
  11. function Layout({ isError, error, children }: LayoutProps) {
  12. return (
  13. <div className="affiliations-table-row--highlighted">
  14. <RowWrapper>{children}</RowWrapper>
  15. {isError && (
  16. <Alert bsStyle="danger" className="text-center">
  17. <Icon type="exclamation-triangle" fw /> {getUserFacingMessage(error)}
  18. </Alert>
  19. )}
  20. </div>
  21. )
  22. }
  23. export default Layout