diff --git a/apps/remix/app/components/dialogs/branding-preferences-reset-dialog.tsx b/apps/remix/app/components/dialogs/branding-preferences-reset-dialog.tsx index 067e4df01..a07ec9060 100644 --- a/apps/remix/app/components/dialogs/branding-preferences-reset-dialog.tsx +++ b/apps/remix/app/components/dialogs/branding-preferences-reset-dialog.tsx @@ -14,6 +14,7 @@ import { Trans } from '@lingui/react/macro'; import { useState } from 'react'; export type BrandingPreferencesResetDialogProps = { + disabled?: boolean; hasAdvancedBranding: boolean; isSubmitting: boolean; onReset: () => Promise; @@ -21,6 +22,7 @@ export type BrandingPreferencesResetDialogProps = { }; export const BrandingPreferencesResetDialog = ({ + disabled = false, hasAdvancedBranding, isSubmitting, onReset, @@ -43,10 +45,10 @@ export const BrandingPreferencesResetDialog = ({ }; return ( - !isLoading && setOpen(value)}> + !isLoading && !disabled && setOpen(value)}> {trigger ?? ( - )} diff --git a/apps/remix/app/components/forms/branding-preferences-form.tsx b/apps/remix/app/components/forms/branding-preferences-form.tsx index c97b39922..4d2ec96e5 100644 --- a/apps/remix/app/components/forms/branding-preferences-form.tsx +++ b/apps/remix/app/components/forms/branding-preferences-form.tsx @@ -2,6 +2,7 @@ import { useCurrentOrganisation } from '@documenso/lib/client-only/providers/org import { NEXT_PUBLIC_WEBAPP_URL } from '@documenso/lib/constants/app'; import { DEFAULT_BRAND_COLORS, DEFAULT_BRAND_RADIUS } from '@documenso/lib/constants/theme'; import { ZCssVarsSchema } from '@documenso/lib/types/css-vars'; +import { normalizeBrandingColors } from '@documenso/lib/utils/normalize-branding-colors'; import { cn } from '@documenso/ui/lib/utils'; import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '@documenso/ui/primitives/accordion'; import { Button } from '@documenso/ui/primitives/button'; @@ -87,6 +88,20 @@ export function BrandingPreferencesForm({ const isBrandingEnabled = form.watch('brandingEnabled'); + const hasResetBrandingColors = + settings.brandingColors === null || + settings.brandingColors === undefined || + (parsedColors.success && normalizeBrandingColors(parsedColors.data) === null); + + const isResetDisabled = + !form.formState.isDirty && + settings.brandingEnabled === (canInherit ? null : false) && + !settings.brandingLogo && + !settings.brandingUrl && + !settings.brandingCompanyDetails && + !settings.brandingCss && + hasResetBrandingColors; + const handleResetToDefaults = async () => { const data: TBrandingPreferencesFormSchema = { brandingEnabled: canInherit ? null : false, @@ -572,6 +587,7 @@ export function BrandingPreferencesForm({ Update