import { useState } from 'react' import { Alert } from 'ui/src/components/shadcn/ui/alert' import { Button } from 'ui/src/components/shadcn/ui/button' import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from 'ui/src/components/shadcn/ui/dialog' import { Input } from '../DataInputs/Input' export type BaseUrlDialogProps = { defaultValue?: string onChange?: (value: string) => void open?: boolean onOpenChange?: (open: boolean) => void } export function BaseUrlDialog({ open, onOpenChange, defaultValue, onChange }: BaseUrlDialogProps) { const [value, setValue] = useState(defaultValue ?? '') const [error, setError] = useState() return ( { onOpenChange?.(open) }} > Change base URL Change the base URL shown in the generated snippets.
{ e.preventDefault() try { const baseUrl = new URL(value) const newValue = (baseUrl.origin + baseUrl.pathname).replace(/\/+$/, '') setValue(newValue) onChange?.(newValue) onOpenChange?.(false) setError(undefined) } catch (err) { setError(new Error('Invalid URL')) } }} >
{ setValue(e.target.value) }} /> {error && {error.message}}
) }