Files
supabase/apps/studio/components
Ali Waseem bd537706f9 chore: add feature flag to pretty explain (#47052)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Put Pretty Explain behind a feature flag for experimentation purposes 

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* SQL Editor now supports optional feature controls to conditionally
disable “Explain” functionality. When disabled via configuration, the
“Explain” tab and its entry points are hidden, the EXPLAIN ANALYZE
keyboard shortcut (Ctrl/Cmd+Shift+Enter) is disabled, and any automatic
post-run switch to the Explain tab for EXPLAIN-like queries is
prevented. This also reduces unnecessary mounting of Explain UI content
when turned off.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-06-18 07:11:29 -06:00
..
2026-06-18 15:34:56 +08:00

Writing components

Where to create your components

  • For components that declare the general structure and layout of a page:
    • /components/layouts/xxx
  • For components that are tightly coupled to a specific interface:
    • /components/interfaces/xxx
  • For components that are meant to be reusable across multiple pages:
    • /components/ui/xxx
  • Note: We're gradually moving files out of the to-be-cleaned folder into the respective folders as we refactor

Component structure

  • If a component has constants and utility methods that are tightly coupled to itself, keep them close to the component and enclose them in a folder with an index.tsx as an entry point
  • Otherwise it can just be a file on its own
  • For example:
    • components/ui
      - SampleComponentA
        - SampleComponentA.tsx
        - SampleComponentA.constants.ts
        - SampleComponentA.utils.ts
        - SampleComponentA.types.ts
        - index.ts
      - SampleComponentB.tsx
      

Template for building components


// Declare the prop types of your component
interface ComponentAProps {
  sampleProp: string
}

// Name your component accordingly
const ComponentA = ({ sampleProp }: ComponentAProps) => {
  return <div>ComponentA: {sampleProp}</div>
}

export default ComponentA