From f450a2871b6ccf9fb15a83e90ab80d8bfc6a4530 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carl-Gerhard=20Lindesva=CC=88rd?= Date: Thu, 3 Oct 2024 20:48:37 +0200 Subject: [PATCH] fix(dashboard,api): minor improvement for integrations and notifications --- .../forms/discord-integration.tsx | 1 + .../integrations/forms/slack-integration.tsx | 1 + .../forms/webhook-integration.tsx | 1 + .../components/integrations/integrations.tsx | 2 +- .../notifications/notification-rules.tsx | 36 ++++++++++++------- .../components/notifications/table/index.tsx | 11 +++--- .../db/src/services/notification.service.ts | 22 ++++++------ packages/trpc/src/routers/integration.ts | 3 ++ 8 files changed, 47 insertions(+), 30 deletions(-) diff --git a/apps/dashboard/src/components/integrations/forms/discord-integration.tsx b/apps/dashboard/src/components/integrations/forms/discord-integration.tsx index 27628f04..ecb46ce9 100644 --- a/apps/dashboard/src/components/integrations/forms/discord-integration.tsx +++ b/apps/dashboard/src/components/integrations/forms/discord-integration.tsx @@ -70,6 +70,7 @@ export function DiscordIntegrationForm({ > diff --git a/apps/dashboard/src/components/integrations/forms/slack-integration.tsx b/apps/dashboard/src/components/integrations/forms/slack-integration.tsx index aef05480..76f06417 100644 --- a/apps/dashboard/src/components/integrations/forms/slack-integration.tsx +++ b/apps/dashboard/src/components/integrations/forms/slack-integration.tsx @@ -54,6 +54,7 @@ export function SlackIntegrationForm({ > diff --git a/apps/dashboard/src/components/integrations/forms/webhook-integration.tsx b/apps/dashboard/src/components/integrations/forms/webhook-integration.tsx index 6a52d6ce..2941527e 100644 --- a/apps/dashboard/src/components/integrations/forms/webhook-integration.tsx +++ b/apps/dashboard/src/components/integrations/forms/webhook-integration.tsx @@ -59,6 +59,7 @@ export function WebhookIntegrationForm({ > diff --git a/apps/dashboard/src/components/integrations/integrations.tsx b/apps/dashboard/src/components/integrations/integrations.tsx index 6c005e57..2edd9421 100644 --- a/apps/dashboard/src/components/integrations/integrations.tsx +++ b/apps/dashboard/src/components/integrations/integrations.tsx @@ -1,4 +1,4 @@ -import type { IIntegrationConfig } from '@openpanel/db'; +import type { IIntegrationConfig } from '@openpanel/validation'; import { WebhookIcon } from 'lucide-react'; import { IntegrationCardLogo, diff --git a/apps/dashboard/src/components/notifications/notification-rules.tsx b/apps/dashboard/src/components/notifications/notification-rules.tsx index a32884ef..1bb76fcc 100644 --- a/apps/dashboard/src/components/notifications/notification-rules.tsx +++ b/apps/dashboard/src/components/notifications/notification-rules.tsx @@ -4,8 +4,9 @@ import { useAppParams } from '@/hooks/useAppParams'; import { pushModal } from '@/modals'; import { api } from '@/trpc/client'; import { AnimatePresence, motion } from 'framer-motion'; -import { BoxSelectIcon, PlusIcon } from 'lucide-react'; +import { BoxSelectIcon, PencilRulerIcon, PlusIcon } from 'lucide-react'; import { useMemo } from 'react'; +import { FullPageEmptyState } from '../full-page-empty-state'; import { IntegrationCard, IntegrationCardLogo, @@ -25,6 +26,28 @@ export function NotificationRules() { const isLoading = query.isLoading; + if (!isLoading && data.length === 0) { + return ( + +

+ You have not created any rules yet. Create a rule to start getting + notifications. +

+ +
+ ); + } + return (
@@ -48,17 +71,6 @@ export function NotificationRules() { )} - {!isLoading && data.length === 0 && ( - - - - } - name="No integrations yet" - description="Integrations allow you to connect your systems to OpenPanel. You can add them in the available integrations section." - /> - )} {data.map((item) => { return ( diff --git a/apps/dashboard/src/components/notifications/table/index.tsx b/apps/dashboard/src/components/notifications/table/index.tsx index 6881543d..1c44f8b5 100644 --- a/apps/dashboard/src/components/notifications/table/index.tsx +++ b/apps/dashboard/src/components/notifications/table/index.tsx @@ -7,16 +7,15 @@ import type { UseQueryResult } from '@tanstack/react-query'; import { GanttChartIcon } from 'lucide-react'; import type { Dispatch, SetStateAction } from 'react'; -import type { Notification } from '@openpanel/db'; - +import type { RouterOutputs } from '@/trpc/client'; import { useColumns } from './columns'; type Props = | { - query: UseQueryResult; + query: UseQueryResult; } | { - query: UseQueryResult; + query: UseQueryResult; cursor: number; setCursor: Dispatch>; }; @@ -31,8 +30,8 @@ export const NotificationsTable = ({ query, ...props }: Props) => { if (data?.length === 0) { return ( - -

Could not find any events

+ +

Could not find any notifications

{'cursor' in props && props.cursor !== 0 && (