page-container.tsx 744 B

12345678910111213141516171819202122232425262728293031323334353637
  1. import React, { ReactNode } from 'react'
  2. import { View } from '@tarojs/components'
  3. import { cn } from '../utils/cn'
  4. export interface PageContainerProps {
  5. children: ReactNode
  6. className?: string
  7. padding?: boolean
  8. background?: string
  9. safeArea?: boolean
  10. }
  11. export const PageContainer: React.FC<PageContainerProps> = ({
  12. children,
  13. className,
  14. padding = true,
  15. background = 'bg-gray-50',
  16. safeArea = true,
  17. }) => {
  18. return (
  19. <View className={cn(
  20. 'min-h-screen w-full',
  21. background,
  22. safeArea && 'pb-safe',
  23. className
  24. )}>
  25. <View className={cn(
  26. padding && 'px-4 py-4',
  27. 'max-w-screen-md mx-auto'
  28. )}>
  29. {children}
  30. </View>
  31. </View>
  32. )
  33. }
  34. export default PageContainer