mirror of
https://github.com/supabase/supabase.git
synced 2026-07-05 20:14:30 +08:00
* refactor: refactor support form Refactor support form to make it easier to maintain: - Split up large components into smaller components and hooks - Lift state up so we don't have to do complex child/parent state-syncing via useEffect - Use nuqs parsing for consistent serialization/deserialization of support form prefilled fields * test: support form Add comprehensive tests for support form * fix(support form): project and org empty state * Nit clean up * More clean up * cleannnn * fix(support form): allow case-insensitive category in url * clean(support form tests): remove unused param * fix(support form): incorrect logic for sending affected services in payload * clean(support form): use NO_ORG_MARKER and NO_PROJECT_MARKER instead of strings * fix(support form): don't show upgrade cta if already on enterprise --------- Co-authored-by: Joshen Lim <joshenlimek@gmail.com>
39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
import { Mail } from 'lucide-react'
|
|
import type { MouseEventHandler } from 'react'
|
|
// End of third-party imports
|
|
|
|
import { Button } from 'ui'
|
|
|
|
interface SubmitButtonProps {
|
|
isSubmitting: boolean
|
|
userEmail: string
|
|
onClick?: MouseEventHandler<HTMLButtonElement>
|
|
}
|
|
|
|
export function SubmitButton({ isSubmitting, userEmail, onClick }: SubmitButtonProps) {
|
|
return (
|
|
<div className={'flex flex-col items-end gap-3'}>
|
|
<Button
|
|
htmlType="submit"
|
|
size="large"
|
|
block
|
|
icon={<Mail />}
|
|
disabled={isSubmitting}
|
|
loading={isSubmitting}
|
|
onClick={onClick}
|
|
>
|
|
Send support request
|
|
</Button>
|
|
<div className="flex flex-col items-end gap-1">
|
|
<div className="space-x-1 text-xs">
|
|
<span className="text-foreground-light">We will contact you at</span>
|
|
<span className="text-foreground font-medium">{userEmail}</span>
|
|
</div>
|
|
<span className="text-foreground-light text-xs">
|
|
Please ensure emails from supabase.com are allowed
|
|
</span>
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|