From 772a5c6bee6b02df7296941c678c9e01bdbb080b Mon Sep 17 00:00:00 2001
From: dragoni7 <sdgibson18@outlook.com>
Date: Sun, 22 Sep 2024 11:54:29 -0700
Subject: [PATCH] Tweak subclass modification screen

---
 src/components/BoldTitle.tsx                  |  8 +++++
 .../components/ModCustomization.tsx           | 10 ++----
 .../components/AbilitiesModification.tsx      | 32 +++++++++++++------
 .../SubclassCustomizationWrapper.css          | 10 ------
 .../SubclassCustomizationWrapper.tsx          | 15 +++++++--
 5 files changed, 46 insertions(+), 29 deletions(-)
 create mode 100644 src/components/BoldTitle.tsx
 delete mode 100644 src/features/subclass/components/SubclassCustomizationWrapper.css

diff --git a/src/components/BoldTitle.tsx b/src/components/BoldTitle.tsx
new file mode 100644
index 0000000..da98f0c
--- /dev/null
+++ b/src/components/BoldTitle.tsx
@@ -0,0 +1,8 @@
+import { styled, Typography } from '@mui/material';
+
+export const BoldTitle = styled(Typography)(({ theme }) => ({
+  paddingBottom: theme.spacing(1),
+  marginBottom: theme.spacing(1),
+  fontSize: '30px',
+  fontWeight: 'bold',
+}));
diff --git a/src/features/armor-mods/components/ModCustomization.tsx b/src/features/armor-mods/components/ModCustomization.tsx
index 649bca8..d2fcd9a 100644
--- a/src/features/armor-mods/components/ModCustomization.tsx
+++ b/src/features/armor-mods/components/ModCustomization.tsx
@@ -6,13 +6,7 @@ import useStatMods from '../../../hooks/use-stat-mods';
 import RequiredMod from './RequiredMod';
 import { useSelector } from 'react-redux';
 import { ManifestArmorMod, ManifestArmorStatMod } from '../../../types/manifest-types';
-
-const StyledTitle = styled(Typography)(({ theme }) => ({
-  paddingBottom: theme.spacing(1),
-  marginBottom: theme.spacing(2),
-  fontSize: '28px',
-  fontWeight: 'bold',
-}));
+import { BoldTitle } from '@/components/BoldTitle';
 
 const StyledSubTitle = styled(Typography)(({ theme }) => ({
   opacity: 0.7,
@@ -33,7 +27,7 @@ const ModCustomization: React.FC = () => {
   return (
     <Grid container>
       <Grid item md={12} marginBottom={5} marginX={{ md: 5, lg: 8 }}>
-        <StyledTitle>MOD CUSTOMIZATION</StyledTitle>
+        <BoldTitle>MOD CUSTOMIZATION</BoldTitle>
       </Grid>
       {requiredMods.length !== 0 ? (
         <>
diff --git a/src/features/subclass/components/AbilitiesModification.tsx b/src/features/subclass/components/AbilitiesModification.tsx
index 121a6ed..2f29764 100644
--- a/src/features/subclass/components/AbilitiesModification.tsx
+++ b/src/features/subclass/components/AbilitiesModification.tsx
@@ -1,6 +1,6 @@
 import React, { useCallback, useEffect, useState } from 'react';
 import { useSelector, useDispatch } from 'react-redux';
-import { Paper, Button, Typography, styled, CircularProgress } from '@mui/material';
+import { Paper, Button, Typography, styled, CircularProgress, Stack } from '@mui/material';
 import { Box, Container } from '@mui/system';
 import { PLUG_CATEGORY_HASH } from '../../../lib/bungie_api/subclass-constants';
 import { RootState } from '../../../store';
@@ -10,6 +10,7 @@ import { ManifestPlug, ManifestAspect, ManifestStatPlug } from '../../../types/m
 import { DamageType, SubclassConfig } from '../../../types/d2l-types';
 import { EMPTY_ASPECT, EMPTY_FRAGMENT } from '../../../lib/bungie_api/constants';
 import HoverCard from '../../../components/HoverCard';
+import { BoldTitle } from '@/components/BoldTitle';
 
 interface AbilitiesModificationProps {
   subclass: SubclassConfig;
@@ -98,12 +99,11 @@ const SuperModSlot = styled('div')(({ theme }) => ({
   },
 }));
 
-const StyledTitle = styled(Typography)(({ theme }) => ({
+const SectionSubtitle = styled(Typography)(({ theme }) => ({
   opacity: 0.7,
   borderBottom: '2px solid rgba(255, 255, 255, 0.5)',
   paddingBottom: theme.spacing(1),
   marginBottom: theme.spacing(2),
-  width: '40%',
 }));
 
 const fetchMods = async (subclass: SubclassConfig) => {
@@ -431,16 +431,26 @@ const AbilitiesModification: React.FC<AbilitiesModificationProps> = ({ subclass
 
   return (
     <Container maxWidth="md">
-      <Box marginBottom={4}>
-        <StyledTitle variant="h4">{subclass.subclass.name}</StyledTitle>
-      </Box>
+      <Stack
+        direction="row"
+        marginBottom={4}
+        textAlign="start"
+        alignItems="center"
+        justifyContent="flex-start"
+        columnGap={1}
+      >
+        <img src={subclass.subclass.icon} width="8%" height="auto" />
+        <BoldTitle variant="h4">{subclass.subclass.name.toLocaleUpperCase()}</BoldTitle>
+      </Stack>
       <Box display="flex" flexDirection="row" gap={10}>
         <Box flex={1} display="flex" justifyContent="center" alignItems="flex-start" marginTop={15}>
           {renderModCategory('SUPERS', loadout.super)}
         </Box>
         <Box flex={3}>
           <Box marginBottom={2}>
-            <StyledTitle variant="h6">ABILITIES</StyledTitle>
+            <SectionSubtitle variant="h6" width="71%">
+              ABILITIES
+            </SectionSubtitle>
             <Box display="flex" flexWrap="wrap" gap={2}>
               {renderModCategory('CLASS_ABILITIES', loadout.classAbility)}
               {renderModCategory('MOVEMENT_ABILITIES', loadout.movementAbility)}
@@ -449,7 +459,9 @@ const AbilitiesModification: React.FC<AbilitiesModificationProps> = ({ subclass
             </Box>
           </Box>
           <Box marginBottom={2}>
-            <StyledTitle variant="h6">ASPECTS</StyledTitle>
+            <SectionSubtitle variant="h6" width="34%">
+              ASPECTS
+            </SectionSubtitle>
             <Box display="flex" flexWrap="wrap" gap={2}>
               {loadout.aspects.map((aspect, index) => (
                 <React.Fragment key={index}>
@@ -459,7 +471,9 @@ const AbilitiesModification: React.FC<AbilitiesModificationProps> = ({ subclass
             </Box>
           </Box>
           <Box marginBottom={2}>
-            <StyledTitle variant="h6">FRAGMENTS</StyledTitle>
+            <SectionSubtitle variant="h6" width="89%">
+              FRAGMENTS
+            </SectionSubtitle>
             <Box display="flex" flexWrap="wrap" gap={2}>
               {Array.from({ length: 5 }).map((_, index) => (
                 <React.Fragment key={index}>
diff --git a/src/features/subclass/components/SubclassCustomizationWrapper.css b/src/features/subclass/components/SubclassCustomizationWrapper.css
deleted file mode 100644
index 4797676..0000000
--- a/src/features/subclass/components/SubclassCustomizationWrapper.css
+++ /dev/null
@@ -1,10 +0,0 @@
-.subclass-customization-wrapper {
-    position: fixed;
-    top: 0;
-    left: 0;
-    width: 100vw;
-    height: 100vh;
-    background-size: cover;
-    background-position: center;
-    overflow: auto;
-  }
\ No newline at end of file
diff --git a/src/features/subclass/components/SubclassCustomizationWrapper.tsx b/src/features/subclass/components/SubclassCustomizationWrapper.tsx
index 09c4a0b..b1db726 100644
--- a/src/features/subclass/components/SubclassCustomizationWrapper.tsx
+++ b/src/features/subclass/components/SubclassCustomizationWrapper.tsx
@@ -1,6 +1,5 @@
 import React from 'react';
 import AbilitiesModification from './AbilitiesModification';
-import './SubclassCustomizationWrapper.css';
 import { Box } from '@mui/material';
 import { SubclassConfig } from '../../../types/d2l-types';
 import { BackButton } from '../../../components/BackButton';
@@ -18,7 +17,19 @@ const SubclassCustomizationWrapper: React.FC<SubclassCustomizationWrapperProps>
   screenshot,
 }) => {
   return (
-    <Box className="subclass-customization-wrapper" sx={{ backgroundImage: `url(${screenshot})` }}>
+    <Box
+      sx={{
+        backgroundImage: `url(${screenshot})`,
+        position: 'fixed',
+        top: 0,
+        left: 0,
+        width: '100vw',
+        height: '100vh',
+        backgroundSize: 'cover',
+        backgroundPosition: 'center',
+        overflow: 'auto',
+      }}
+    >
       <Box position="absolute" top={16} left={16} zIndex={1000}>
         <BackButton onClick={onBackClick} startIcon={<span style={{ fontSize: '1.2em' }}>←</span>}>
           Back