diff --git a/apps/studio/components/interfaces/Database/Triggers/TriggersList/TriggerList.tsx b/apps/studio/components/interfaces/Database/Triggers/TriggersList/TriggerList.tsx index 3d745a7b792..8ca577424c5 100644 --- a/apps/studio/components/interfaces/Database/Triggers/TriggersList/TriggerList.tsx +++ b/apps/studio/components/interfaces/Database/Triggers/TriggersList/TriggerList.tsx @@ -17,7 +17,11 @@ import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectConte import Table from 'components/to-be-cleaned/Table' import { useDatabaseTriggersQuery } from 'data/database-triggers/database-triggers-query' import { useCheckPermissions } from 'hooks/misc/useCheckPermissions' -import { Check, X, MoreVertical, Edit3, Trash } from 'lucide-react' +import { Check, X, MoreVertical, Edit3, Trash, Edit, Edit2 } from 'lucide-react' +import { useAppStateSnapshot } from 'state/app-state' +import { useIsAssistantV2Enabled } from 'components/interfaces/App/FeaturePreview/FeaturePreviewContext' +import { cn } from 'ui' +import { generateTriggerCreateSQL } from './TriggerList.utils' interface TriggerListProps { schema: string @@ -35,6 +39,8 @@ const TriggerList = ({ deleteTrigger, }: TriggerListProps) => { const { project } = useProjectContext() + const { setAiAssistantPanel } = useAppStateSnapshot() + const isAssistantV2Enabled = useIsAssistantV2Enabled() const { data: triggers } = useDatabaseTriggersQuery({ projectRef: project?.ref, @@ -135,13 +141,42 @@ const TriggerList = ({ - - {!canCreateTriggers && ( - - - -
- - You need additional permissions to create triggers - -
-
-
+ className="px-1 pointer-events-auto" + icon={ + + } + onClick={() => + setAiAssistantPanel({ + open: true, + initialInput: `Create a new trigger for the schema ${selectedSchema} that does ...`, + suggestions: { + title: + 'I can help you create a new trigger, here are a few example prompts to get you started:', + prompts: [ + 'Create a trigger that logs changes to the users table', + 'Create a trigger that updates updated_at timestamp', + 'Create a trigger that validates email format before insert', + ], + }, + }) + } + tooltip={{ + content: { + side: 'bottom', + text: !canCreateTriggers + ? 'You need additional permissions to create triggers' + : 'Create with Supabase Assistant', + }, + }} + /> )} - + )} diff --git a/apps/studio/components/layouts/ProjectLayout/ProjectLayout.tsx b/apps/studio/components/layouts/ProjectLayout/ProjectLayout.tsx index 204958a3349..acfd0705ee7 100644 --- a/apps/studio/components/layouts/ProjectLayout/ProjectLayout.tsx +++ b/apps/studio/components/layouts/ProjectLayout/ProjectLayout.tsx @@ -198,7 +198,11 @@ const ProjectLayout = forwardRef diff --git a/apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx b/apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx index 74c2d00d301..050323869e2 100644 --- a/apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx +++ b/apps/studio/components/ui/AIAssistantPanel/AIAssistant.tsx @@ -394,8 +394,9 @@ export const AIAssistant = ({ {suggestions.title &&

{suggestions.title}

}
- {suggestions?.prompts?.map((prompt) => ( + {suggestions?.prompts?.map((prompt, idx) => (