Rev 639 | Rev 656 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React from "react";
import styled from "styled-components";
import { device } from "../../styles/MediaQueries";
import { Avatar } from "@mui/material";
import { Link } from "react-router-dom";
const LayoutContainer = styled.div`
background-color: var(--bg-color);
box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.08);
height: fit-content;
width: -moz-available;
width: -webkit-fill-available;
width: fill-available;
overflow: hidden;
position: relative;
span {
font-size: 0.9rem;
}
p {
color: var(--font-color);
font-size: 14px;
text-align: justify;
margin-bottom: 0.5rem;
}
h2 {
font-size: 1rem;
}
@media ${device.tablet} {
border-radius: var(--border-radius);
}
`;
const LayoutHeader = styled.div`
display: flex;
gap: 0.5rem;
padding: 10px 1rem;
align-items: center;
justify-content: space-between;
position: relative;
`;
const LayoutBody = styled.div`
padding: 10px 1rem;
display: flex;
flex-direction: column;
`;
const HeaderInfo = styled.div`
align-items: center;
display: inline-flex;
gap: 0.5rem;
width: fit-content;
`;
const LayoutActions = styled.div`
display: flex;
justify-content: space-around;
border-top: 1px solid rgb(211, 211, 211);
padding: 5px;
& > button {
align-items: center;
border-radius: var(--border-radius);
cursor: pointer;
display: inline-flex;
flex-direction: column;
font-size: 0.9rem;
padding: 5px;
position: relative;
&:hover {
background-color: whitesmoke;
}
@media ${device.tablet} {
flex-direction: row;
gap: 0.5rem;
font-size: 1rem;
}
}
`;
const StyledContainer = ({ children, ...rest }) => {
return <LayoutContainer {...rest}>{children}</LayoutContainer>;
};
const Actions = ({ children, ...rest }) => {
return <LayoutActions {...rest}>{children}</LayoutActions>;
};
const Body = ({ children, ...rest }) => {
return <LayoutBody {...rest}>{children}</LayoutBody>;
};
const Header = ({ image = "", title = "", url = "", children, ...rest }) => {
return (
<LayoutHeader {...rest}>
<HeaderInfo>
{image && (
<Avatar
src={image}
alt={`${title} profile image`}
sx={{ width: "50px", height: "50px" }}
/>
)}
{url ? (
<Link to={url}>
<h2>{title}</h2>
</Link>
) : (
<h2>{title}</h2>
)}
</HeaderInfo>
{children}
</LayoutHeader>
);
};
StyledContainer.Actions = Actions;
StyledContainer.Header = Header;
StyledContainer.Body = Body;
export default StyledContainer;