1- import React , { useState } from 'react' ;
1+ import React , { useState , useEffect } from 'react' ;
22import RoadmapCard from './RoadmapCard' ;
33import { getOnlyBgStatusColor , statusTextColor } from '../../utils/roadmapHelpers' ;
4- import { EyeIcon , EyeSlashIcon } from '@phosphor-icons/react' ; // Import eye icons
4+ import { EyeIcon , EyeSlashIcon } from '@phosphor-icons/react' ;
5+ import { useAchievements } from '../../context/AchievementContext' ;
56
67const RoadmapView = ( { issuesData = [ ] } ) => {
7- const [ hiddenColumns , setHiddenColumns ] = useState ( [ ] ) ; // State to track hidden columns
8+ const [ hiddenColumns , setHiddenColumns ] = useState ( [ ] ) ;
9+ const { unlockAchievement } = useAchievements ( ) ;
10+
11+ const statusOrder = [ 'Planned' , 'In Progress' , 'Completed' , 'On Hold' ] ;
812
913 const toggleColumnVisibility = ( status ) => {
1014 if ( hiddenColumns . includes ( status ) ) {
@@ -14,7 +18,14 @@ const RoadmapView = ({ issuesData = [] }) => {
1418 }
1519 } ;
1620
17- const groupedApps = issuesData . reduce ( ( acc , app ) => {
21+ useEffect ( ( ) => {
22+ // Check if all status columns are hidden
23+ if ( hiddenColumns . length === statusOrder . length ) {
24+ unlockAchievement ( 'hide_and_seek_master' ) ;
25+ }
26+ } , [ hiddenColumns , statusOrder . length , unlockAchievement ] ) ;
27+
28+ const groupIssues = issuesData . reduce ( ( acc , app ) => {
1829 const status = app . status || 'Planned' ; // Default to Planned if not specified
1930 if ( ! acc [ status ] ) {
2031 acc [ status ] = [ ] ;
@@ -23,8 +34,6 @@ const RoadmapView = ({ issuesData = [] }) => {
2334 return acc ;
2435 } , { } ) ;
2536
26- const statusOrder = [ 'Planned' , 'In Progress' , 'Completed' , 'On Hold' ] ;
27-
2837 return (
2938 < div className = "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6" >
3039 { statusOrder . map ( ( status ) => {
@@ -38,7 +47,7 @@ const RoadmapView = ({ issuesData = [] }) => {
3847 < span
3948 className = { `w-3 h-3 rounded-full ${ getOnlyBgStatusColor ( status ) } ${ statusTextColor ( status ) } ` }
4049 > </ span >
41- { status } ({ groupedApps [ status ] ?. length || 0 } )
50+ { status } ({ groupIssues [ status ] ?. length || 0 } )
4251 </ span >
4352 < button
4453 onClick = { ( ) => toggleColumnVisibility ( status ) }
@@ -50,7 +59,7 @@ const RoadmapView = ({ issuesData = [] }) => {
5059 </ h3 >
5160 { ! isHidden && (
5261 < div className = "space-y-4" >
53- { groupedApps [ status ] ?. map ( ( app , appIndex ) => (
62+ { groupIssues [ status ] ?. map ( ( app , appIndex ) => (
5463 < RoadmapCard key = { app . id } app = { app } index = { appIndex } />
5564 ) ) }
5665 </ div >
0 commit comments