Skip to content

Commit

Permalink
WJ-117 - New: FIlmography animation;
Browse files Browse the repository at this point in the history
  • Loading branch information
Lucas Teixeira committed Nov 15, 2020
1 parent 1fa231b commit 7aa4b9f
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 47 deletions.
2 changes: 1 addition & 1 deletion src/components/Modal/index.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useCallback, useEffect } from 'react';
import { useLocation } from 'react-router-dom';
import { motion, AnimatePresence } from 'framer-motion';
import { AnimatePresence } from 'framer-motion';

import { useModal } from 'components/Modal/hooks';
import StyleProps from 'components/Modal/types/StyleProps';
Expand Down
93 changes: 48 additions & 45 deletions src/containers/Filmography/index.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import React, { useCallback, useEffect, useState } from 'react';
import { useHistory } from 'react-router-dom';
import { AnimatePresence } from 'framer-motion';

import { getEntityRoute } from 'shared/helpers';
import { Color } from 'shared/enums';
Expand Down Expand Up @@ -51,55 +52,57 @@ const Filmography: React.FC<Props> = ({
}, [data]);

return (
<Wrapper theme={theme} background={background} color={color}>
<Container>
{title && (
<Title theme={theme} color={color}>
{title}
</Title>
)}
<AnimatePresence>
<Wrapper theme={theme} background={background} color={color}>
<Container>
{title && (
<Title theme={theme} color={color}>
{title}
</Title>
)}

{isLoading && <FilmographyLoading />}
{isLoading && <FilmographyLoading />}

{!isLoading && data.length > 0 && (
<>
<ListContainer>
{parsedData.map((entity: any) => (
<ItemContainer
key={entity.id}
onClick={() => handleRedirect(entity)}
>
<YearLabel>{entity.year} - </YearLabel>
<MovieName>{entity.title || entity.name}</MovieName>
<CharacterName>
{entity.character && ` como ${entity.character}`}
</CharacterName>
{entity.episodeCount && (
<EpisodeCount>
{entity.episodeCount > 1
? ` (${entity.episodeCount} episódios)`
: ` (${entity.episodeCount} episódio)`}
</EpisodeCount>
)}
</ItemContainer>
))}
</ListContainer>
{!isLoading && data.length > 0 && (
<>
<ListContainer>
{parsedData.map((entity: any) => (
<ItemContainer
key={entity.id}
onClick={() => handleRedirect(entity)}
>
<YearLabel>{entity.year} - </YearLabel>
<MovieName>{entity.title || entity.name}</MovieName>
<CharacterName>
{entity.character && ` como ${entity.character}`}
</CharacterName>
{entity.episodeCount && (
<EpisodeCount>
{entity.episodeCount > 1
? ` (${entity.episodeCount} episódios)`
: ` (${entity.episodeCount} episódio)`}
</EpisodeCount>
)}
</ItemContainer>
))}
</ListContainer>

{parsedData?.length < data?.length && (
<More onClick={handleMore}>
<Button theme="light" background={Color.Transparent}>
Ver Mais
</Button>
</More>
)}
</>
)}
{parsedData?.length < data?.length && (
<More onClick={handleMore}>
<Button theme="light" background={Color.Transparent}>
Ver Mais
</Button>
</More>
)}
</>
)}

{!isLoading && data.length === 0 && (
<MessageContainer>{message}</MessageContainer>
)}
</Container>
</Wrapper>
{!isLoading && data.length === 0 && (
<MessageContainer>{message}</MessageContainer>
)}
</Container>
</Wrapper>
</AnimatePresence>
);
};

Expand Down
7 changes: 6 additions & 1 deletion src/containers/Filmography/styles.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import styled from 'styled-components';
import { motion } from 'framer-motion';

import DefaultProps from 'shared/types';
import { Container as DefaultContainer } from 'components/Layout';
Expand Down Expand Up @@ -43,7 +44,11 @@ export const ListContainer = styled.div`
transition: 0.3s height;
`;

export const ItemContainer = styled.div`
export const ItemContainer = styled(motion.div).attrs(() => ({
initial: { opacity: 0 },
animate: { opacity: 1 },
exit: { opacity: 0 },
}))`
font-size: ${Size.Default};
color: ${Color.Text};
padding: ${Size.Medium} 0;
Expand Down

0 comments on commit 7aa4b9f

Please sign in to comment.