Home / Function/ useNewQuery() — supabase Function Reference

useNewQuery() — supabase Function Reference

Architecture documentation for the useNewQuery() function in hooks.ts from the supabase codebase.

Entity Profile

Dependency Diagram

graph TD
  c62f2dd1_b3a8_dbc9_3b49_d55e5532ec9c["useNewQuery()"]
  2bdac7e5_a25b_6415_051d_1503de098a7f["createSqlSnippetSkeletonV2()"]
  c62f2dd1_b3a8_dbc9_3b49_d55e5532ec9c -->|calls| 2bdac7e5_a25b_6415_051d_1503de098a7f
  style c62f2dd1_b3a8_dbc9_3b49_d55e5532ec9c fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

apps/studio/components/interfaces/SQLEditor/hooks.ts lines 19–67

export const useNewQuery = () => {
  const router = useRouter()
  const { ref } = useParams()
  const { profile } = useProfile()
  const { data: project } = useSelectedProjectQuery()
  const snapV2 = useSqlEditorV2StateSnapshot()

  const { can: canCreateSQLSnippet } = useAsyncCheckPermissions(
    PermissionAction.CREATE,
    'user_content',
    {
      resource: { type: 'sql', owner_id: profile?.id },
      subject: { id: profile?.id },
    }
  )

  const newQuery = async (sql: string, name: string, shouldRedirect: boolean = true) => {
    if (!ref) return console.error('Project ref is required')
    if (!project) return console.error('Project is required')
    if (!profile) return console.error('Profile is required')

    if (!canCreateSQLSnippet) {
      toast('Your queries will not be saved as you do not have sufficient permissions')
      return undefined
    }

    try {
      const snippet = createSqlSnippetSkeletonV2({
        name,
        sql,
        owner_id: profile?.id,
        project_id: project?.id,
      })
      snapV2.addSnippet({ projectRef: ref, snippet })
      snapV2.addNeedsSaving(snippet.id)
      if (shouldRedirect) {
        router.push(`/project/${ref}/sql/${snippet.id}`)
        return undefined
      } else {
        return snippet.id
      }
    } catch (error: any) {
      toast.error(`Failed to create new query: ${error.message}`)
      return undefined
    }
  }

  return { newQuery }
}

Subdomains

Frequently Asked Questions

What does useNewQuery() do?
useNewQuery() is a function in the supabase codebase.
What does useNewQuery() call?
useNewQuery() calls 1 function(s): createSqlSnippetSkeletonV2.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free