From db0808467dcc9a8403d20bf7e918da51e22f72b0 Mon Sep 17 00:00:00 2001 From: Sergey Elpashev Date: Tue, 7 Jan 2025 21:29:45 +0300 Subject: [PATCH] Feat: tier level component --- src/App.tsx | 29 +++++++++++++++++++++++++++ src/components/Tier.tsx | 43 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 72 insertions(+) diff --git a/src/App.tsx b/src/App.tsx index f8be86c..b6685fe 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,6 +1,25 @@ import { useEffect, useRef, useState } from 'react'; import './App.css'; import { TierImage } from './components/Image'; +import { Tier, TierProps } from './components/Tier'; + +const default_tier_levels: TierProps[] = [ + { + name: 'S', + color: 'green', + textColor: 'black', + }, + { + name: 'A', + color: 'yellow', + textColor: 'black', + }, + { + name: 'B', + color: 'red', + textColor: 'black', + }, +]; function App() { const [images, setImages] = useState([]); @@ -15,6 +34,16 @@ function App() { return ( <> +
+ {default_tier_levels.map(tier_level => ( + + ))} +
{images.map((image, index) => ( diff --git a/src/components/Tier.tsx b/src/components/Tier.tsx index e69de29..ba1689e 100644 --- a/src/components/Tier.tsx +++ b/src/components/Tier.tsx @@ -0,0 +1,43 @@ +export interface TierProps { + color: 'red' | 'yellow' | 'green'; + name: string; + textColor: 'white' | 'black'; +} +export const Tier = ({ color, name, textColor }: TierProps) => { + let color_code = ''; + let text_color_code = ''; + switch (color) { + case 'green': + color_code = '#00b894'; + break; + case 'red': + color_code = '#ff7675'; + break; + case 'yellow': + color_code = '#ffeaa7'; + break; + default: + color_code = '#6c5ce7'; + } + switch (textColor) { + case 'white': + text_color_code = '#dfe6e9'; + break; + default: + text_color_code = '#2d3436'; + } + return ( +
+
+

{name}

+
+
+
+ ); +};