feat: Make Novu settings public

This commit is contained in:
gpt-engineer-app[bot]
2025-10-01 14:52:03 +00:00
parent b52d326f7b
commit ac543e82e9
4 changed files with 50 additions and 7 deletions

View File

@@ -1,11 +1,10 @@
import { useAuth } from '@/hooks/useAuth';
import { useAdminSettings } from '@/hooks/useAdminSettings';
import { usePublicNovuSettings } from '@/hooks/usePublicNovuSettings';
export function useNovuNotifications() {
const { user } = useAuth();
const { getSettingValue } = useAdminSettings();
const { applicationIdentifier, isLoading } = usePublicNovuSettings();
const applicationIdentifier = getSettingValue('novu.application_identifier', '');
const subscriberId = user?.id;
const isEnabled = !!applicationIdentifier && !!subscriberId;
@@ -13,5 +12,6 @@ export function useNovuNotifications() {
applicationIdentifier,
subscriberId,
isEnabled,
isLoading,
};
}

View File

@@ -0,0 +1,30 @@
import { useQuery } from '@tanstack/react-query';
import { supabase } from '@/integrations/supabase/client';
/**
* Hook to fetch public Novu settings accessible to all authenticated users
*/
export function usePublicNovuSettings() {
const { data: settings, isLoading, error } = useQuery({
queryKey: ['public-novu-settings'],
queryFn: async () => {
const { data, error } = await supabase
.from('admin_settings')
.select('setting_key, setting_value')
.eq('setting_key', 'novu.application_identifier')
.maybeSingle();
if (error) throw error;
return data;
},
});
const applicationIdentifier = settings?.setting_value as string || '';
return {
applicationIdentifier,
isLoading,
error,
isEnabled: !!applicationIdentifier,
};
}