Помогите разобраться с наложением элементов в react приложении

Всем привет. На данный момент я занимаюсь своим учебным проектом - небольшая соц. сеть. И, на главное странице я хочу сделать ленту новостей в 2 столбца. У меня это в целом, получилось. Но потом начали возникать вопросы с тем, как сделать посты с большим количеством текста красиво разворачивающимися при нажатии на кнопку. В целом, это я тоже сделал. Но проблема в том, что когда элемент разворачивается, то он оказывается ниже(в плане слоя), чем последующие(видно на картинке). С этим я тоже придумал что делать. Я просто передаю в стили(делаю при помощи material ui) переменную, от которой и зависит zIndex элемента. Но, дело в том, что когда я нажимаю на кнопку второй раз, чтобы свернуть все назад, переменная меняется мгновенно и, получается, что анимация сворачивания происходит уже под другими элементами. И, вопрос состоит в том, можно ли как-то сделать так, чтобы элементы, которые находятся первыми в массиве postList и вставляются, как бы первыми, были над теми, которые находятся после них. Сейчас ситуация обратная. Ну или, мб, вы предложите другое решение. Когда нажал первый раз

Когда нажал второй раз(начало анимации)

Когда элемента.

const useStyles = makeStyles(theme => ({
wrapper: {
    position: 'relative',
    minHeight: theme.spacing(64),
},
card: expanded => ({
    position: 'absolute',
// Вот здесь применяются стили для zIndex
    zIndex: expanded && 1,
}),}))

const PostItem = ({postItem}) => {
    // При нажатии на кнопку меняется значение переменной expanded и передается в useStyles
    const [expanded, setExpanded] = useState(false);
    const styles = useStyles(expanded);

const handleExpandClick = () => {
    setExpanded(e => !e);
}

return (
    <div className={styles.wrapper}>
        <Card className={styles.card}>
            <CardHeader
                avatar={
                    <Avatar aria-label="recipe">
                        D
                    </Avatar>
                }
                title={postItem.author.name}
                subheader={postItem.date}
            />
            <CardMedia
                style={{height: 0, paddingTop: '56.25%'}}
                image={postItem.url}
            />
            <CardContent>
                <Collapse in={expanded} timeout="auto" collapsedHeight={90} className={styles.moreText}>
                    <CardContent>
                        <Typography>
                            {postItem.text}
                        </Typography>
                    </CardContent>
                </Collapse>
            </CardContent>
            <CardActions disableSpacing>
                <IconButton aria-label="add to favorites">
                    <FavoriteIcon/>
                </IconButton>
                <IconButton aria-label="share">
                    <ShareIcon/>
                </IconButton>
                <IconButton
                    onClick={handleExpandClick}
                    aria-expanded={expanded}
                    aria-label="show more"
                >
                    <ExpandMoreIcon/>
                </IconButton>
            </CardActions>
        </Card>
    </div>
);};

Компонент, куда вставляются все эти PostItem элементы.

const Home = ({posts}) => {
const postList = posts.map(postItem => <Grid item lg={6} md={6} sm={9} xs={12}>
    <PostItem postItem={postItem}/>
</Grid>)

return (
    <Grid justify={"center"} container spacing={2}>
        {postList}
    </Grid>
);};

Ответы (0 шт):