aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/Guess
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/Guess')
-rw-r--r--src/components/Guess/index.styled.ts39
-rw-r--r--src/components/Guess/index.tsx32
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>
+ );
+}
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage