From 02d7454ac9140047ebf3174b961b6d2c9471473d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cemal=20K=C4=B1l=C4=B1=C3=A7?= Date: Thu, 21 May 2026 18:47:44 +0200 Subject: [PATCH 1/6] fix: allow email rate limit editing when send email hook is enabled (#46104) ## I have read the [CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md) file. YES ## What kind of change does this PR introduce? bug fix: allow email rate limit editing when send email hook is enabled ## What is the current behavior? when send email hook is enabled, users can't customize the send email rate limit. ## What is the new behavior? when send email hook is enabled, users _can_ customize the send email rate limit. ## Additional context backend changes are already in place. ## Summary by CodeRabbit * **Improvements** * Expanded email rate limit configuration to support Send Email hooks in addition to SMTP providers. * Enhanced user guidance with updated messaging and navigation options for configuring email delivery methods. [![Review Change Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46104?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) --- .../interfaces/Auth/RateLimits/RateLimits.tsx | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/apps/studio/components/interfaces/Auth/RateLimits/RateLimits.tsx b/apps/studio/components/interfaces/Auth/RateLimits/RateLimits.tsx index 43bb41cb0d27b..3888dcf5e7870 100644 --- a/apps/studio/components/interfaces/Auth/RateLimits/RateLimits.tsx +++ b/apps/studio/components/interfaces/Auth/RateLimits/RateLimits.tsx @@ -70,7 +70,9 @@ export const RateLimits = () => { }, }) - const canUpdateEmailLimit = authConfig?.EXTERNAL_EMAIL_ENABLED && isSmtpEnabled(authConfig) + const canUpdateEmailLimit = + authConfig?.EXTERNAL_EMAIL_ENABLED && + (isSmtpEnabled(authConfig) || authConfig?.HOOK_SEND_EMAIL_ENABLED) const canUpdateSMSRateLimit = authConfig?.EXTERNAL_PHONE_ENABLED const canUpdateAnonymousUsersRateLimit = authConfig?.EXTERNAL_ANONYMOUS_USERS_ENABLED const canUpdateWeb3RateLimit = authConfig?.EXTERNAL_WEB3_SOLANA_ENABLED @@ -271,19 +273,25 @@ export const RateLimits = () => { ) : ( <>

- Custom SMTP provider is required to update this configuration + Custom SMTP or Send Email hook is required to update this + configuration

- The built-in email service has a fixed rate limit. You will need - to set up your own custom SMTP provider to update your email - rate limit + The built-in email service has a fixed rate limit. Set up a + custom SMTP provider or enable the Send Email hook to update + your email rate limit

-
+
+
)} From 90dd19b41b2a8db0c59899e3008df53d784a9a8f Mon Sep 17 00:00:00 2001 From: Gildas Garcia <1122076+djhi@users.noreply.github.com> Date: Thu, 21 May 2026 20:55:40 +0200 Subject: [PATCH 2/6] chore: migrate Logs settings `Modal` to `Dialog` (#46229) ## Problem Logs settings still uses the deprecated `Modal` for: - saving queries - prompt to upgrade ## Solution - use `Dialog` instead ## Summary by CodeRabbit * **Refactor** * Modernized internal UI component structure for improved maintainability and consistency. [![Review Change Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/supabase/supabase/pull/46229?utm_source=github_walkthrough&utm_medium=github&utm_campaign=change_stack) --- .../Logs/Logs.UpdateSavedQueryModal.tsx | 108 +++++++++++------- .../Settings/Logs/UpgradePrompt.tsx | 100 ++++++++-------- 2 files changed, 121 insertions(+), 87 deletions(-) diff --git a/apps/studio/components/interfaces/Settings/Logs/Logs.UpdateSavedQueryModal.tsx b/apps/studio/components/interfaces/Settings/Logs/Logs.UpdateSavedQueryModal.tsx index fecd04e41a287..42f067006a7c0 100644 --- a/apps/studio/components/interfaces/Settings/Logs/Logs.UpdateSavedQueryModal.tsx +++ b/apps/studio/components/interfaces/Settings/Logs/Logs.UpdateSavedQueryModal.tsx @@ -1,7 +1,21 @@ import { zodResolver } from '@hookform/resolvers/zod' import { useEffect } from 'react' import { SubmitHandler, useForm } from 'react-hook-form' -import { Button, Form, FormControl, FormField, Input, Modal, Textarea } from 'ui' +import { + Button, + Dialog, + DialogContent, + DialogFooter, + DialogHeader, + DialogSection, + DialogSectionSeparator, + DialogTitle, + Form, + FormControl, + FormField, + Input, + Textarea, +} from 'ui' import { FormItemLayout } from 'ui-patterns/form/FormItemLayout/FormItemLayout' import * as z from 'zod' @@ -45,46 +59,56 @@ export const UpdateSavedQueryModal = ({ } return ( - -
- - - ( - - - - - - )} - /> - - - ( - - -