File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import { describe , it , expect } from 'vitest' ;
2+ import { getIntensityColor } from './heatmapUtils' ;
3+
4+ describe ( 'getIntensityColor' , ( ) => {
5+ it ( 'returns correct color for intensity 0' , ( ) => {
6+ expect ( getIntensityColor ( 0 ) ) . toBe ( 'bg-gray-200 dark:bg-[#161616]' ) ;
7+ } ) ;
8+
9+ it ( 'returns correct color for intensity 1' , ( ) => {
10+ expect ( getIntensityColor ( 1 ) ) . toBe ( 'bg-gray-400 dark:bg-zinc-700' ) ;
11+ } ) ;
12+
13+ it ( 'returns correct color for intensity 2' , ( ) => {
14+ expect ( getIntensityColor ( 2 ) ) . toBe ( 'bg-gray-500 dark:bg-zinc-500' ) ;
15+ } ) ;
16+
17+ it ( 'returns correct color for intensity 3' , ( ) => {
18+ expect ( getIntensityColor ( 3 ) ) . toBe ( 'bg-gray-700 dark:bg-zinc-300' ) ;
19+ } ) ;
20+
21+ it ( 'returns correct color for intensity 4' , ( ) => {
22+ expect ( getIntensityColor ( 4 ) ) . toBe ( 'bg-black dark:bg-white' ) ;
23+ } ) ;
24+
25+ it ( 'returns default color for out-of-range intensity' , ( ) => {
26+ expect ( getIntensityColor ( 999 ) ) . toBe ( 'bg-gray-200 dark:bg-[#161616]' ) ;
27+ } ) ;
28+ } ) ;
Original file line number Diff line number Diff line change 33import { useEffect , useRef , useState } from 'react' ;
44import { motion , AnimatePresence } from 'framer-motion' ;
55import { ActivityData } from '@/types/dashboard' ;
6+ import { getIntensityColor } from './heatmapUtils' ;
67
78const CELL = 14 ;
89const GAP = 3 ;
@@ -37,23 +38,6 @@ export default function Heatmap({ data }: { data: ActivityData[] }) {
3738 return ( ) => observer . disconnect ( ) ;
3839 } , [ naturalWidth ] ) ;
3940
40- const getIntensityColor = ( intensity : number ) => {
41- switch ( intensity ) {
42- case 0 :
43- return 'bg-gray-200 dark:bg-[#161616]' ;
44- case 1 :
45- return 'bg-gray-400 dark:bg-zinc-700' ;
46- case 2 :
47- return 'bg-gray-500 dark:bg-zinc-500' ;
48- case 3 :
49- return 'bg-gray-700 dark:bg-zinc-300' ;
50- case 4 :
51- return 'bg-black dark:bg-white' ;
52- default :
53- return 'bg-gray-200 dark:bg-[#161616]' ;
54- }
55- } ;
56-
5741 const handleMouseEnter = ( e : React . MouseEvent < HTMLDivElement > , day : ActivityData ) => {
5842 const rect = e . currentTarget . getBoundingClientRect ( ) ;
5943 setTooltip ( {
Original file line number Diff line number Diff line change 1+ export const getIntensityColor = ( intensity : number ) : string => {
2+ switch ( intensity ) {
3+ case 0 :
4+ return 'bg-gray-200 dark:bg-[#161616]' ;
5+ case 1 :
6+ return 'bg-gray-400 dark:bg-zinc-700' ;
7+ case 2 :
8+ return 'bg-gray-500 dark:bg-zinc-500' ;
9+ case 3 :
10+ return 'bg-gray-700 dark:bg-zinc-300' ;
11+ case 4 :
12+ return 'bg-black dark:bg-white' ;
13+ default :
14+ return 'bg-gray-200 dark:bg-[#161616]' ;
15+ }
16+ } ;
You can’t perform that action at this time.
0 commit comments