Skip to content

Commit

Permalink
Fixed Styling
Browse files Browse the repository at this point in the history
-Made it where you can see what buttons are clicked on
-Fixed Dropdown in Family Delete
  • Loading branch information
AmazingBrandonL committed Apr 10, 2024
1 parent a6f1bc5 commit 270b61a
Show file tree
Hide file tree
Showing 14 changed files with 200 additions and 160 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
"react": "^18.2.0",
"react-bootstrap": "^2.10.1",
"react-dom": "^18.2.0",
"react-router-dom": "^6.22.2",
"react-router-dom": "^6.22.3",
"styled-components": "^6.1.8"
},
"devDependencies": {
Expand Down
26 changes: 10 additions & 16 deletions src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,17 @@ import SpeciesPage from './webPages/species';
import ReactionsPage from './webPages/reactions';

function App() {

return (
<div>

<Routes>
<Route path="/" element={<LogIn />} />
<Route path="/LoggedIn" element={<LoggedIn />} />
<Route path="/FamilyPage" element={<FamilyPage />} />
<Route path="/FamilyMechanismPage" element={<FamilyMechanismPage />} />
<Route path="/SpeciesPage" element={<SpeciesPage />} />
<Route path="/ReactionsPage" element={<ReactionsPage />} />
<Route path="/Settings" element={<Settings />} />
<Route path="/Mechanisms" element={<Mechanisms />} />
</Routes>


</div>
<Routes>
<Route path="/" element={<LogIn />} />
<Route path="/LoggedIn" element={<LoggedIn />} />
<Route path="/FamilyPage" element={<FamilyPage />} />
<Route path="/Mechanisms" element={<Mechanisms />} />
<Route path="/FamilyMechanismPage" element={<FamilyMechanismPage />} />
<Route path="/SpeciesPage" element={<SpeciesPage />} />
<Route path="/ReactionsPage" element={<ReactionsPage />} />
<Route path="/Settings" element={<Settings />} />
</Routes>
);
}

Expand Down
21 changes: 21 additions & 0 deletions src/buttonSystem/ButtonSystemGrid.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
.button-system-grid-container {
overflow-y: auto;
}

.button-system-grid-container::-webkit-scrollbar {
width: 8px;
}

.button-system-grid-container::-webkit-scrollbar-thumb {
background-color: rgba(0, 0, 0, 0.2);
border-radius: 4px;
}

.button-system-grid-container::-webkit-scrollbar-thumb:hover {
background-color: rgba(0, 0, 0, 0.3);
}

.button-system-grid-container::-webkit-scrollbar-track {
background-color: rgba(0, 0, 0, 0.1);
}

8 changes: 5 additions & 3 deletions src/buttonSystem/ButtonSystemGrid.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,18 @@
import React, { useEffect, useState } from 'react';
import { Container, Row, Col } from 'react-bootstrap';
import { renderButton, ButtonData } from './RenderButtons';
import './ButtonSystemGrid.css';

interface ButtonSystemGridProps {
buttonArray: Promise<ButtonData[]>[];
uuid: string;
category: string;
handleClick: (uuid: string, reactant_list_uuid?: string, product_list_uuid?: string) => void;
cols: number;
height: string;
}

const ButtonSystemGrid: React.FC<ButtonSystemGridProps> = ({ buttonArray, category, handleClick, cols, height }) => {
const ButtonSystemGrid: React.FC<ButtonSystemGridProps> = ({ buttonArray, uuid, category, handleClick, cols, height }) => {
const [resolvedButtons, setResolvedButtons] = useState<ButtonData[]>([]);

useEffect(() => {
Expand All @@ -34,11 +36,11 @@ const ButtonSystemGrid: React.FC<ButtonSystemGridProps> = ({ buttonArray, catego
}

return (
<Container fluid style={{ maxHeight: height, overflowY: 'auto' }}>
<Container fluid className="button-system-grid-container" style={{ maxHeight: height }}>
<Row>
{resolvedButtons.map((button, index) => (
<Col key={index} xs={columnWidth}>
{renderButton(button, category, handleClick)}
{renderButton(button, category, handleClick, uuid)}
</Col>
))}
</Row>
Expand Down
42 changes: 21 additions & 21 deletions src/buttonSystem/GlobalVariables.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ export const useFamilyUuid = () => {
setFamilyUuid(uuid);
};

return { familyUuid, handleFamilyClick };
return { familyUuid, setFamilyUuid, handleFamilyClick };
};


Expand All @@ -43,7 +43,26 @@ export const useMechanismUuid = () => {
navigate('/FamilyMechanismPage');
};

return { mechanismUuid, handleMechanismsClick, handleFamilyMechanismClick };
return { mechanismUuid, setMechanismUuid, handleMechanismsClick, handleFamilyMechanismClick };
};

export const useTagMechanismUuid = () => {

const [tagMechanismUuid, setTagMechanismUuid] = useState<string | null>(null);

useEffect(() => {
const storedTagMechanismUuid = localStorage.getItem('tag_mechanism_uuid');
if (storedTagMechanismUuid) {
setTagMechanismUuid(storedTagMechanismUuid);
}
}, []);

const handleTagMechanismClick = (uuid: string) => {
localStorage.setItem('tag_mechanism_uuid', uuid);
setTagMechanismUuid(uuid);
};

return { tagMechanismUuid, handleTagMechanismClick };
};

export const useReactionUuid = () => {
Expand Down Expand Up @@ -94,23 +113,4 @@ export const useSpeciesUuid = () => {
};

return { speciesUuid, setSpeciesUuid, handleSpeciesClick };
};

export const useTagMechanismUuid = () => {

const [tagMechanismUuid, setTagMechanismUuid] = useState<string | null>(null);

useEffect(() => {
const storedTagMechanismUuid = localStorage.getItem('tag_mechanism_uuid');
if (storedTagMechanismUuid) {
setTagMechanismUuid(storedTagMechanismUuid);
}
}, []);

const handleTagMechanismClick = (uuid: string) => {
localStorage.setItem('tag_mechanism_uuid', uuid);
setTagMechanismUuid(uuid);
};

return { tagMechanismUuid, handleTagMechanismClick };
};
43 changes: 23 additions & 20 deletions src/buttonSystem/RenderButtons.tsx
Original file line number Diff line number Diff line change
@@ -1,62 +1,65 @@
import { Family, Mechanism, Reaction, Species, TagMechanism } from '../API/API_Interfaces';
import 'bootstrap/dist/css/bootstrap.css';
import { StyledFamilyButton, StyledMechanismsFromFamilyButton, StyledTagMechanismsFromMechanismButton, StyledSpeciesFromTagMechanismButton, StyledReactionsFromTagMechanismButton, StyledMechanismsButton } from './RenderButtonsStyling';
import 'bootstrap/dist/css/bootstrap.css';

export type ButtonData = Family | Mechanism | Reaction | Species | TagMechanism;

export const renderButton = (button: ButtonData, category: string, handleClick: (uuid: string, reactant_list_uuid?: string, product_list_uuid?: string) => void) => {
export const renderButton = (button: ButtonData, category: string, handleClick: (uuid: string) => void, uuid: string) => {
switch (category) {
case 'Families':
return familiesButton(button as Family, handleClick);
return familiesButton(button as Family, handleClick, uuid);
case 'Mechanisms':
return mechanismsButton(button as Mechanism, handleClick);
return mechanismsButton(button as Mechanism, handleClick, uuid);
case 'MechanismsFromFamily':
return mechanismsFromFamilyButton(button as Mechanism, handleClick);
return mechanismsFromFamilyButton(button as Mechanism, handleClick, uuid);
case 'TagMechanismsFromMechanism':
return tagMechanismsFromMechanismButton(button as TagMechanism, handleClick);
return tagMechanismsFromMechanismButton(button as TagMechanism, handleClick, uuid);
case 'SpeciesFromTagMechanism':
return speciesFromTagMechanismButton(button as Species, handleClick);
return speciesFromTagMechanismButton(button as Species, handleClick, uuid);
case 'ReactionsFromTagMechanism':
return reactionsFromTagMechanismButton(button as Reaction, handleClick);
return reactionsFromTagMechanismButton(button as Reaction, handleClick, uuid);
default:
return null;
}
};

const familiesButton = ({ uuid, name}: Family, handleClick: (uuid: string) => void) => (
<StyledFamilyButton onClick={() => handleClick(uuid)} style={{ width: '100%' }} {...{ uuid}}>

const familiesButton = ({ uuid, name}: Family, handleClick: (uuid: string) => void, familyUuid: string) => (
<StyledFamilyButton active={familyUuid === uuid ? 'true' : 'false'}onClick={() => handleClick(uuid)} style={{ width: '100%' }}>
{name}
</StyledFamilyButton>
);

const mechanismsButton = ({ uuid, name}: Mechanism, handleClick: (uuid: string) => void) => (
<StyledMechanismsButton onClick={() => handleClick(uuid)} style={{ width: '100%' }} {...{ uuid}}>
const mechanismsButton = ({ uuid, name}: Mechanism, handleClick: (uuid: string) => void, mechanismUuid: string) => (
<StyledMechanismsButton active={mechanismUuid === uuid ? 'true' : 'false'} onClick={() => handleClick(uuid)} style={{ width: '100%' }}>
{name}
</StyledMechanismsButton>
);

const mechanismsFromFamilyButton = ({ uuid, name}: Mechanism, handleClick: (uuid: string) => void) => (
<StyledMechanismsFromFamilyButton onClick={() => handleClick(uuid)} style={{ width: '100%' }} {...{ uuid}}>
const mechanismsFromFamilyButton = ({ uuid, name}: Mechanism, handleClick: (uuid: string) => void, mechanismUuid: string) => (
<StyledMechanismsFromFamilyButton active={mechanismUuid === uuid ? 'true' : 'false'} onClick={() => handleClick(uuid)} style={{ width: '100%' }}>
{name}
</StyledMechanismsFromFamilyButton>
);

const tagMechanismsFromMechanismButton = ({ uuid, tag}: TagMechanism, handleClick: (uuid: string) => void) => (
<StyledTagMechanismsFromMechanismButton onClick={() => handleClick(uuid)} style={{ width: '100%' }} {...{ uuid}}>
const tagMechanismsFromMechanismButton = ({ uuid, tag}: TagMechanism, handleClick: (uuid: string) => void, tagMechanismUuid: string) => (
<StyledTagMechanismsFromMechanismButton active={tagMechanismUuid === uuid ? 'true' : 'false'} onClick={() => handleClick(uuid)} style={{ width: '100%' }}>
{tag}
</StyledTagMechanismsFromMechanismButton>
);

const speciesFromTagMechanismButton = ({ uuid, type}: Species, handleClick: (uuid: string) => void) => (
<StyledSpeciesFromTagMechanismButton onClick={() => handleClick(uuid)} style={{ width: '100%' }} {...{ uuid}}>
const speciesFromTagMechanismButton = ({ uuid, type}: Species, handleClick: (uuid: string) => void, speciesUuid: string) => (
<StyledSpeciesFromTagMechanismButton active={speciesUuid === uuid ? 'true' : 'false'} onClick={() => handleClick(uuid)} style={{ width: '100%' }}>
{type}
</StyledSpeciesFromTagMechanismButton>
);

const reactionsFromTagMechanismButton = ({ uuid, type, reactant_list_uuid, product_list_uuid}: Reaction, handleClick: (uuid: string, reactant_list_uuid?: string, product_list_uuid?: string) => void) => (
<StyledReactionsFromTagMechanismButton onClick={() => handleClick(uuid, reactant_list_uuid, product_list_uuid)} style={{ width: '100%' }} {...{ uuid, reactant_list_uuid, product_list_uuid}}>
const reactionsFromTagMechanismButton = ({ uuid, type, reactant_list_uuid, product_list_uuid}: Reaction, handleClick: (uuid: string, reactant_list_uuid?: string, product_list_uuid?: string) => void, reactionUuid: string) => (
<StyledReactionsFromTagMechanismButton active={reactionUuid === uuid ? 'true' : 'false'} onClick={() => handleClick(uuid, reactant_list_uuid, product_list_uuid)} style={{ width: '100%' }}>
{type}
</StyledReactionsFromTagMechanismButton>
);



export default renderButton;
124 changes: 61 additions & 63 deletions src/buttonSystem/RenderButtonsStyling.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,84 +2,82 @@ import 'bootstrap/dist/css/bootstrap.css';
import styled from 'styled-components';

export const StyledHeader = styled.header`
padding: 20px;
text-align: left;
border-bottom: 10px solid #53565A;
padding: 20px;
text-align: left;
border-bottom: 10px solid #53565A;
`;

export const StyledActionBar = styled.nav`
display: flex;
overflow: hidden;
background-color: #53565A;
width: 100%;
height: 40%;
border-radius: 5px;
grid-column: 1 / span 2;
grid-row: 1;
display: flex;
overflow: hidden;
background-color: #53565A;
width: 100%;
height: 40%;
border-radius: 5px;
grid-column: 1 / span 2;
grid-row: 1;
`;

export const StyledActionBarButton = styled.a`
float: left;
display: block;
height: 100%;
flex-grow: 1;
color: #f2f2f2;
text-align: center;
text-decoration: none;
border-style: solid;
border-color: #012169;
float: left;
display: block;
height: 100%;
flex-grow: 1;
color: #f2f2f2;
text-align: center;
text-decoration: none;
border-style: solid;
border-color: #012169;
`;

export const StyledDetailBox = styled.section`
display: block;
width: 100%;
height: 100%;
background-color: #C3D7EE;
border-style: solid;
border-width: 5px;
border-radius: 50px;
position: relative;
grid-column: 2 / span 2;
grid-row: 2 / span 2;
overflow: auto;
display: block;
width: 100%;
height: 60vh;
background-color: #C3D7EE;
border-style: solid;
border-width: 5px;
border-radius: 50px;
position: relative;
grid-column: 2 / span 2;
grid-row: 2 / span 2;
overflow: auto;
`;

export const StyledButton = styled.button`
display: block;
padding: 10px;
width: 100%;
height: 100%;
background-color: #1A658F;
border-style: solid;
border-width: 2px;
border-radius: 10px;
position: relative;
grid-column: 1;
grid-row: 2 / span 2;
interface StyledButtonProps {
active: string | undefined;
}

export const StyledButton = styled.button<StyledButtonProps>`
display: block;
padding: 10px;
width: 100%;
height: 100%;
background-color: ${({ active }) => active === 'true' ? '#00797C' : '#1A658F'};
border-style: solid;
border-width: 2px;
border-radius: 10px;
position: relative;
grid-column: 1;
grid-row: 2 / span 2;
&:hover {
background-color: ${({ active }) => active === 'true' ? '#0f476d' : '#0f476d'};
}
&:active {
background-color: #0a3350;
}
`;

export const StyledFamilyButton = styled(StyledButton)`
export const StyledFamilyButton = styled(StyledButton)``;

`;

export const StyledMechanismsButton = styled(StyledButton)`
`;

export const StyledMechanismsFromFamilyButton = styled(StyledButton)`
`;
export const StyledMechanismsButton = styled(StyledButton)``;

export const StyledTagMechanismsFromMechanismButton = styled(StyledButton)`
export const StyledMechanismsFromFamilyButton = styled(StyledButton)``;

`;

export const StyledSpeciesFromTagMechanismButton = styled(StyledButton)`
`;

export const StyledReactionsFromTagMechanismButton = styled(StyledButton)`
`;
export const StyledTagMechanismsFromMechanismButton = styled(StyledButton)``;

export const StyledSpeciesFromTagMechanismButton = styled(StyledButton)``;

export const StyledReactionsFromTagMechanismButton = styled(StyledButton)``;
Loading

0 comments on commit 270b61a

Please sign in to comment.