From 8809fec6e0edd385003b13b3cbcf8529625bfc31 Mon Sep 17 00:00:00 2001 From: calli Date: Tue, 22 Apr 2025 12:08:10 +0300 Subject: [PATCH] Improve characters handling and add a collapse to account cards for easier sorting --- src/app/components/Account/AccountCard.tsx | 24 +++++++++--- .../components/Characters/CharacterDialog.tsx | 38 +++++++++++++------ src/app/components/MainGrid.tsx | 4 +- 3 files changed, 48 insertions(+), 18 deletions(-) diff --git a/src/app/components/Account/AccountCard.tsx b/src/app/components/Account/AccountCard.tsx index c614457..e8308de 100644 --- a/src/app/components/Account/AccountCard.tsx +++ b/src/app/components/Account/AccountCard.tsx @@ -1,15 +1,18 @@ import { AccessToken } from "@/types"; -import { Box, Stack, Typography, useTheme, Paper } from "@mui/material"; +import { Box, Stack, Typography, useTheme, Paper, IconButton } from "@mui/material"; import { CharacterRow } from "../Characters/CharacterRow"; import { PlanetaryInteractionRow } from "../PlanetaryInteraction/PlanetaryInteractionRow"; import { SessionContext } from "@/app/context/Context"; -import { useContext } from "react"; +import { useContext, useState } from "react"; import { PlanRow } from "./PlanRow"; +import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown'; +import KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp'; export const AccountCard = ({ characters }: { characters: AccessToken[] }) => { const theme = useTheme(); - + const [isCollapsed, setIsCollapsed] = useState(false); const { planMode } = useContext(SessionContext); + return ( { marginBottom: theme.spacing(2), display: 'flex', alignItems: 'center', + justifyContent: 'space-between', }} > { color: theme.palette.text.primary, }} > - {characters[0].account !== "-" + {characters.length > 0 && characters[0].account !== "-" ? `Account: ${characters[0].account}` : "No account name"} + setIsCollapsed(!isCollapsed)} + sx={{ + transform: isCollapsed ? 'rotate(-90deg)' : 'rotate(0deg)', + transition: 'transform 0.2s ease-in-out' + }} + > + {isCollapsed ? : } + - {characters.map((c) => ( + {!isCollapsed && characters.map((c) => ( ) => { if (event.key === "Enter") { closeDialog(); - character && updateCharacter(character, { account, comment }); + if (character) { + updateCharacter(character, { account, comment }); + } } }; @@ -44,16 +46,27 @@ export const CharacterDialog = ({ onClose={closeDialog} fullWidth={true} > - {character && character.character.name} - setAccount(event.target.value)} - onKeyDown={handleKeyDown} - /> + {character?.character?.name} + + setAccount(event.target.value)} + onKeyDown={handleKeyDown} + /> + +