@@ -10,6 +10,13 @@ import {
1010 CardTitle ,
1111} from "@/components/ui/card" ;
1212import { Textarea } from "@/components/ui/textarea" ;
13+ import {
14+ Select ,
15+ SelectContent ,
16+ SelectItem ,
17+ SelectTrigger ,
18+ SelectValue ,
19+ } from "@/components/ui/select" ;
1320import { Label } from "@/components/ui/label" ;
1421import ProgressChart from "@/components/ProgressChart" ;
1522import { logRelapse } from "../utils/firebase" ;
@@ -20,7 +27,6 @@ import { toast } from "sonner";
2027import { useEffect } from "react" ;
2128import { db } from "../utils/firebase" ;
2229import { collection , doc , getDoc } from "firebase/firestore" ;
23- import { MultiSelect } from "@/components/ui/multi-select" ;
2430
2531const mockStreakData = [
2632 { date : "Jan 1" , streak : 1 } ,
@@ -59,21 +65,12 @@ const mockMoodData = [
5965const Analytics : React . FC = ( ) => {
6066 const { currentUser, userProfile } = useAuth ( ) ;
6167 const [ notes , setNotes ] = useState ( "" ) ;
62- const [ selectedTriggers , setSelectedTriggers ] = useState < string [ ] > ( [ ] ) ;
68+ const [ selectedTrigger , setSelectedTrigger ] = useState ( "" ) ;
6369 const [ isSubmitting , setIsSubmitting ] = useState ( false ) ;
6470 const [ triggers , setTriggers ] = useState < { name : string ; count : number } [ ] > (
6571 [ ]
6672 ) ;
6773
68- const triggerOptions = [
69- { value : "stress" , label : "Stress" } ,
70- { value : "boredom" , label : "Boredom" } ,
71- { value : "loneliness" , label : "Loneliness" } ,
72- { value : "fatigue" , label : "Fatigue" } ,
73- { value : "social-media" , label : "Social Media" } ,
74- { value : "other" , label : "Other" }
75- ] ;
76-
7774 const useTriggers = ( uid : string | undefined ) => {
7875 useEffect ( ( ) => {
7976 if ( ! uid ) return ;
@@ -120,15 +117,15 @@ const Analytics: React.FC = () => {
120117 setIsSubmitting ( true ) ;
121118
122119 try {
123- const result = await logRelapse ( currentUser . uid , selectedTriggers , notes ) ;
120+ const result = await logRelapse ( currentUser . uid , selectedTrigger , notes ) ;
124121 if ( result . success ) {
125122 toast . success ( "Progress reset" , {
126123 description :
127124 "Remember that every moment is a new opportunity to begin again." ,
128125 } ) ;
129126
130127 setNotes ( "" ) ;
131- setSelectedTriggers ( [ ] ) ;
128+ setSelectedTrigger ( "" ) ;
132129 } else {
133130 toast . error ( "Failed to log relapse" , {
134131 description : result . message ,
@@ -392,14 +389,23 @@ const Analytics: React.FC = () => {
392389
393390 < CardContent className = "space-y-4" >
394391 < div className = "space-y-2" >
395- < Label htmlFor = "trigger" > What triggered this relapse? (Select up to 3)</ Label >
396- < MultiSelect
397- options = { triggerOptions }
398- selected = { selectedTriggers }
399- onChange = { setSelectedTriggers }
400- placeholder = "Select triggers"
401- className = "w-full"
402- />
392+ < Label htmlFor = "trigger" > What triggered this relapse?</ Label >
393+ < Select
394+ value = { selectedTrigger }
395+ onValueChange = { setSelectedTrigger }
396+ >
397+ < SelectTrigger id = "trigger" >
398+ < SelectValue placeholder = "Select a trigger" />
399+ </ SelectTrigger >
400+ < SelectContent >
401+ < SelectItem value = "stress" > Stress</ SelectItem >
402+ < SelectItem value = "boredom" > Boredom</ SelectItem >
403+ < SelectItem value = "loneliness" > Loneliness</ SelectItem >
404+ < SelectItem value = "fatigue" > Fatigue</ SelectItem >
405+ < SelectItem value = "social-media" > Social Media</ SelectItem >
406+ < SelectItem value = "other" > Other</ SelectItem >
407+ </ SelectContent >
408+ </ Select >
403409 </ div >
404410
405411 < div className = "space-y-2" >
@@ -418,7 +424,7 @@ const Analytics: React.FC = () => {
418424 variant = "destructive"
419425 className = "w-full"
420426 onClick = { handleRelapseSubmit }
421- disabled = { isSubmitting || selectedTriggers . length === 0 }
427+ disabled = { isSubmitting || ! selectedTrigger }
422428 >
423429 { isSubmitting
424430 ? "Submitting..."
0 commit comments