diff options
Diffstat (limited to 'src/components/Guess')
| -rw-r--r-- | src/components/Guess/index.styled.ts | 39 | ||||
| -rw-r--r-- | src/components/Guess/index.tsx | 32 |
2 files changed, 71 insertions, 0 deletions
diff --git a/src/components/Guess/index.styled.ts b/src/components/Guess/index.styled.ts new file mode 100644 index 0000000..5118b70 --- /dev/null +++ b/src/components/Guess/index.styled.ts @@ -0,0 +1,39 @@ +import styled from "styled-components"; + +export const Container = styled.div<{ + active: boolean; + isCorrect: boolean | undefined; +}>` + width: 100%; + height: 45px; + + margin: 5px auto; + + display: flex; + align-items: center; + + border-color: ${({ theme, active, isCorrect }) => { + if (active) { + return theme.border; + } else if (isCorrect === false) { + return theme.red; + } else { + return theme.border100; + } + }}; + border-width: 1px; + border-radius: 5px; + border-style: solid; + + color: ${({ theme }) => theme.text}; +`; + +export const Text = styled.p` + width: 100%; + height: max-content; + + padding: 0px 10px; + + font-size: 1rem; + color: ${({ theme }) => theme.text}; +`; diff --git a/src/components/Guess/index.tsx b/src/components/Guess/index.tsx new file mode 100644 index 0000000..2afd35c --- /dev/null +++ b/src/components/Guess/index.tsx @@ -0,0 +1,32 @@ +import React from "react"; + +import { GuessType } from "../../types/guess"; + +import * as Styled from "./index.styled"; + +interface Props { + guess: GuessType; + isCorrect: boolean | undefined; + active: boolean; +} + +export function Guess({ guess, isCorrect, active }: Props) { + const { song, skipped } = guess; + const [text, setText] = React.useState<string>(""); + + React.useEffect(() => { + if (song) { + setText(`${song.artist} - ${song.name}`); + } else if (skipped) { + setText("Skipped"); + } else { + setText(""); + } + }, [guess]); + + return ( + <Styled.Container active={active} isCorrect={isCorrect}> + <Styled.Text>{text}</Styled.Text> + </Styled.Container> + ); +} |
