@@ -18,6 +18,9 @@ import { useEffect, useState } from "react";
1818import type { Trigger } from "@/types/triggers" ;
1919import { toast } from "sonner" ;
2020import { groupUserRegisteredTriggersByProvider } from "@/lib/triggers" ;
21+ import Loading from "@/components/ui/loading" ;
22+ import { useFlags } from "launchdarkly-react-client-sdk" ;
23+ import { LaunchDarklyFeatureFlags } from "@/types/launch-darkly" ;
2124
2225export default function TriggersInterface ( ) {
2326 const [ triggersLoading , setTriggersLoading ] = useState ( true ) ;
@@ -27,8 +30,18 @@ export default function TriggersInterface() {
2730 > ( [ ] ) ;
2831 const auth = useAuthContext ( ) ;
2932 const { listTriggers, listUserTriggers } = useTriggers ( ) ;
33+ const { showTriggersTab } = useFlags < LaunchDarklyFeatureFlags > ( ) ;
3034
3135 useEffect ( ( ) => {
36+ if ( showTriggersTab === false ) {
37+ // Do not fetch when disabled
38+ setTriggersLoading ( false ) ;
39+ return ;
40+ }
41+ if ( showTriggersTab === undefined ) {
42+ setTriggersLoading ( false ) ;
43+ return ;
44+ }
3245 if ( ! auth . session ?. accessToken ) return ;
3346 setTriggersLoading ( true ) ;
3447 listTriggers ( auth . session ?. accessToken )
@@ -55,7 +68,7 @@ export default function TriggersInterface() {
5568 . finally ( ( ) => {
5669 setTriggersLoading ( false ) ;
5770 } ) ;
58- } , [ auth . session ?. accessToken ] ) ;
71+ } , [ auth . session ?. accessToken , showTriggersTab ] ) ;
5972
6073 if ( triggersLoading ) {
6174 return (
@@ -75,20 +88,45 @@ export default function TriggersInterface() {
7588 < Zap className = "h-5 w-5" />
7689 Loading Triggers
7790 </ CardTitle >
78- < CardDescription > Loading triggers... </ CardDescription >
91+ < CardDescription > Loading triggers… </ CardDescription >
7992 </ CardHeader >
8093 < CardContent >
81- < div className = "rounded-lg border border-dashed p-8 text-center" >
82- < Zap className = "text-muted-foreground mx-auto h-12 w-12" />
83- < h3 className = "mt-4 text-lg font-semibold" > Loading Triggers</ h3 >
84- < p className = "text-muted-foreground mt-2" > Loading triggers...</ p >
85- </ div >
94+ < Loading label = "Loading triggers" />
8695 </ CardContent >
8796 </ Card >
8897 </ div >
8998 ) ;
9099 }
91100
101+ // Feature disabled: show coming soon (tab still visible per UX)
102+ if ( showTriggersTab === false ) {
103+ return (
104+ < div className = "flex-1 space-y-4 p-4 pt-6 md:p-8" >
105+ < div className = "flex items-center justify-between space-y-2" >
106+ < div >
107+ < h2 className = "text-3xl font-bold tracking-tight" > Triggers</ h2 >
108+ < p className = "text-muted-foreground" >
109+ Set up triggers to automatically activate your agents
110+ </ p >
111+ </ div >
112+ </ div >
113+
114+ < Card >
115+ < CardHeader >
116+ < CardTitle className = "flex items-center gap-2" >
117+ < Zap className = "h-5 w-5" />
118+ Coming soon
119+ </ CardTitle >
120+ < CardDescription >
121+ This feature is under development and will be released soon. Stay
122+ tuned!
123+ </ CardDescription >
124+ </ CardHeader >
125+ </ Card >
126+ </ div >
127+ ) ;
128+ }
129+
92130 if ( triggers . length === 0 ) {
93131 return (
94132 < div className = "flex-1 space-y-4 p-4 pt-6 md:p-8" >
0 commit comments