Home / Function/ handlePresetOption() — ui Function Reference

handlePresetOption() — ui Function Reference

Architecture documentation for the handlePresetOption() function in create.ts from the ui codebase.

Entity Profile

Dependency Diagram

graph TD
  af1661e5_df1f_24d5_26b4_f2ff90ba860a["handlePresetOption()"]
  9461b7e1_0062_183b_052f_41abc70dee91["create.ts"]
  af1661e5_df1f_24d5_26b4_f2ff90ba860a -->|defined in| 9461b7e1_0062_183b_052f_41abc70dee91
  d6e73ad2_74c9_dd43_c275_b68a987b6b66["create()"]
  d6e73ad2_74c9_dd43_c275_b68a987b6b66 -->|calls| af1661e5_df1f_24d5_26b4_f2ff90ba860a
  d69893c4_0340_d5fe_65ed_220523fe9df0["getShadcnCreateUrl()"]
  af1661e5_df1f_24d5_26b4_f2ff90ba860a -->|calls| d69893c4_0340_d5fe_65ed_220523fe9df0
  style af1661e5_df1f_24d5_26b4_f2ff90ba860a fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

packages/shadcn/src/commands/create.ts lines 266–326

async function handlePresetOption(presetArg: string | boolean, rtl: boolean) {
  // If --preset is used without a name, show interactive list.
  if (presetArg === true) {
    const presets = await getPresets()

    const { selectedPreset } = await prompts({
      type: "select",
      name: "selectedPreset",
      message: `Which ${highlighter.info("preset")} would you like to use?`,
      choices: [
        ...presets.map((preset) => ({
          title: preset.title,
          description: preset.description,
          value: preset.name,
        })),
        {
          title: "Custom",
          description: "Build your own on https://ui.shadcn.com",
          value: "custom",
        },
      ],
    })

    if (!selectedPreset) {
      return null
    }

    if (selectedPreset === "custom") {
      const url = getShadcnCreateUrl(rtl ? { rtl: "true" } : undefined)
      logger.info(`\nOpening ${highlighter.info(url)} in your browser...\n`)
      await open(url)
      return null
    }

    return presets.find((p) => p.name === selectedPreset) ?? null
  }

  // If --preset NAME or URL is provided.
  if (typeof presetArg === "string") {
    // Check if it's a URL.
    if (isUrl(presetArg)) {
      return { _isUrl: true, url: presetArg } as const
    }

    // Otherwise, fetch that preset by name.
    const preset = await getPreset(presetArg)

    if (!preset) {
      const presets = await getPresets()
      const presetNames = presets.map((p) => p.name).join(", ")
      logger.error(
        `Preset "${presetArg}" not found. Available presets: ${presetNames}`
      )
      process.exit(1)
    }

    return preset
  }

  return null
}

Subdomains

Called By

Frequently Asked Questions

What does handlePresetOption() do?
handlePresetOption() is a function in the ui codebase, defined in packages/shadcn/src/commands/create.ts.
Where is handlePresetOption() defined?
handlePresetOption() is defined in packages/shadcn/src/commands/create.ts at line 266.
What does handlePresetOption() call?
handlePresetOption() calls 1 function(s): getShadcnCreateUrl.
What calls handlePresetOption()?
handlePresetOption() is called by 1 function(s): create.

Analyze Your Own Codebase

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

Try Supermodel Free