| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- // End of third-party imports
- import { SupportCategories } from '@supabase/shared-types/out/constants'
- import { ChevronRight } from 'lucide-react'
- import Link from 'next/link'
- import type { UseFormReturn } from 'react-hook-form'
- import { Badge, Collapsible, CollapsibleContent, CollapsibleTrigger, FormField, Switch } from 'ui'
- import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout'
- import type { ExtendedSupportCategories } from './Support.constants'
- import type { SupportFormValues } from './SupportForm.schema'
- export const DISABLE_SUPPORT_ACCESS_CATEGORIES: ExtendedSupportCategories[] = [
- SupportCategories.ACCOUNT_DELETION,
- SupportCategories.SALES_ENQUIRY,
- SupportCategories.REFUND,
- ]
- interface SupportAccessToggleProps {
- form: UseFormReturn<SupportFormValues>
- align?: 'left' | 'right'
- className?: string
- }
- export function SupportAccessToggle({ form, align = 'left', className }: SupportAccessToggleProps) {
- return (
- <FormField
- name="allowSupportAccess"
- control={form.control}
- render={({ field }) => {
- return (
- <FormItemLayout
- hideMessage
- name="allowSupportAccess"
- className={className}
- layout="flex"
- align={align}
- label={
- <div className="flex items-center gap-x-2">
- <span className="text-foreground">Allow support access to your project</span>
- <Badge>Recommended</Badge>
- </div>
- }
- description={
- <div className="flex flex-col">
- <span className="text-foreground-light">
- Human support and AI diagnostic access.
- </span>
- <Collapsible className="mt-2">
- <CollapsibleTrigger
- className={
- 'group flex items-center gap-x-1 group-data-open:text-foreground hover:text-foreground transition'
- }
- >
- <ChevronRight
- size={14}
- className="transition-all group-data-open:rotate-90 text-foreground-muted -ml-1"
- />
- <span className="text-sm">More information</span>
- </CollapsibleTrigger>
- <CollapsibleContent className="text-sm text-foreground-light mt-2 space-y-2">
- <p>
- By enabling this, you grant permission for our support team to access your
- project temporarily and, if applicable, to use AI tools to assist in
- diagnosing and resolving issues. This access may involve analyzing database
- configurations, query performance, and other relevant data to expedite
- troubleshooting and enhance support accuracy.
- </p>
- <p>
- We are committed to maintaining strict data privacy and security standards in
- all support activities.{' '}
- <Link
- href="https://supabase.com/privacy"
- target="_blank"
- rel="noreferrer"
- className="text-foreground-light underline hover:text-foreground transition"
- >
- Privacy Policy
- </Link>
- </p>
- </CollapsibleContent>
- </Collapsible>
- </div>
- }
- >
- <Switch
- size="large"
- id="allowSupportAccess"
- checked={field.value}
- onCheckedChange={field.onChange}
- />
- </FormItemLayout>
- )
- }}
- />
- )
- }
|