+ {requirements
+ .filter(
+ (req) => `${req.type.name}-${req.type.type}` === activeTab,
+ )
+ .map((req) => (
+
+
+
+
+ {req.type.name.charAt(0).toUpperCase() +
+ req.type.name.slice(1)}{' '}
+ Requirements
+
+
+
+ -
+
+ OS:
+ {' '}
+ {req.so}
+
+ -
+ CPU:{' '}
+ {req.cpu}
+
+ -
+ RAM:{' '}
+ {req.ram}
+
+ -
+ GPU:{' '}
+ {req.gpu}
+
+ -
+
+ DirectX:
+ {' '}
+ {req.dx}
+
+ -
+
+ Storage:
+ {' '}
+ {req.rom}
+
+ -
+
+ Bits:
+ {' '}
+ {req.bits}-bit
+
+ {req.obs && (
+ -
+
+ Notes:
+ {' '}
+ {req.obs}
+
+ )}
+
+
+ ))}
+
+ >
+ )
+}
+
+export default Requirements
diff --git a/src/pages/Game/modules/ReviewCard.tsx b/src/pages/Game/modules/ReviewCard.tsx
new file mode 100644
index 0000000..b9ffb20
--- /dev/null
+++ b/src/pages/Game/modules/ReviewCard.tsx
@@ -0,0 +1,64 @@
+import { Box, Typography } from '@mui/material'
+
+import { Review } from '@/types'
+
+interface ReviewCardProps {
+ review: Review
+}
+
+function ReviewCard(props: ReviewCardProps) {
+ const { review } = props
+
+ const rateColor = () => {
+ if (review.rate < 5) return 'text-theme-red-900'
+ else if (review.rate === 5) return 'text-yellow-500'
+
+ return 'text-green-500'
+ }
+
+ return (
+