mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 09:25:06 +03:00
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Ivan Vasilov <vasilov.ivan@gmail.com>
64 lines
2.3 KiB
TypeScript
64 lines
2.3 KiB
TypeScript
import { LOCAL_STORAGE_KEYS } from 'common'
|
|
import { useParams } from 'common/hooks'
|
|
import Link from 'next/link'
|
|
import React from 'react'
|
|
import { Badge, Button } from 'ui'
|
|
|
|
import { BannerCard } from '../BannerCard'
|
|
import { useBannerStack } from '../BannerStackProvider'
|
|
import { LOG_DRAIN_TYPES } from '@/components/interfaces/LogDrains/LogDrains.constants'
|
|
import { useLocalStorageQuery } from '@/hooks/misc/useLocalStorage'
|
|
import { DOCS_URL } from '@/lib/constants'
|
|
import { useTrack } from '@/lib/telemetry/track'
|
|
|
|
export const BannerMetricsAPI = () => {
|
|
const { ref } = useParams()
|
|
const track = useTrack()
|
|
const { dismissBanner } = useBannerStack()
|
|
const [, setIsDismissed] = useLocalStorageQuery(
|
|
LOCAL_STORAGE_KEYS.OBSERVABILITY_BANNER_DISMISSED(ref ?? ''),
|
|
false
|
|
)
|
|
return (
|
|
<BannerCard
|
|
onDismiss={() => {
|
|
setIsDismissed(true)
|
|
dismissBanner('metrics-api-banner')
|
|
track('metrics_api_banner_dismiss_button_clicked')
|
|
}}
|
|
>
|
|
<div className="flex flex-col gap-y-4">
|
|
<div className="flex flex-col gap-y-2 items-start">
|
|
<Badge variant="success" className="-ml-0.5 uppercase inline-flex items-center mb-2">
|
|
Beta
|
|
</Badge>
|
|
<div className="flex items-center gap-4">
|
|
{LOG_DRAIN_TYPES.filter((type) => type.value !== 'sentry').map((type) => (
|
|
<React.Fragment key={type.value}>
|
|
{React.cloneElement(type.icon, { height: 20, width: 20 })}
|
|
</React.Fragment>
|
|
))}
|
|
</div>
|
|
</div>
|
|
<div className="flex flex-col gap-y-1 mb-2">
|
|
<p className="text-sm font-medium">Export Metrics to your dashboards</p>
|
|
<p className="text-xs text-foreground-lighter text-balance">
|
|
Visualize over 200 database performance and health metrics with our Metrics API.
|
|
</p>
|
|
</div>
|
|
<div className="flex gap-2">
|
|
<Button type="default" size="tiny" asChild>
|
|
<Link
|
|
href={`${DOCS_URL}/guides/telemetry/metrics`}
|
|
target="_blank"
|
|
onClick={() => track('metrics_api_banner_cta_button_clicked')}
|
|
>
|
|
Get started for free
|
|
</Link>
|
|
</Button>
|
|
</div>
|
|
</div>
|
|
</BannerCard>
|
|
)
|
|
}
|