Files
supabase/apps/studio/components/interfaces/QuerySources/useLogsCustomRange.ts
T

36 lines
1.2 KiB
TypeScript

import { useState } from 'react'
import { customDateRangeToLogTimeRange } from './LogTimeRange.utils'
import { maybeShowUpgradePromptIfNotEntitled } from '@/components/interfaces/Settings/Logs/Logs.utils'
import type { LogTimeRange } from '@/data/query-sources/query-source-registry'
import { useCheckEntitlements } from '@/hooks/misc/useCheckEntitlements'
export function useLogsCustomRange({
onRangeChange,
}: {
onRangeChange: (range: LogTimeRange) => void
}) {
const [isCustomRangeOpen, setIsCustomRangeOpen] = useState(false)
const [showUpgradePrompt, setShowUpgradePrompt] = useState(false)
const { getEntitlementNumericValue } = useCheckEntitlements('log.retention_days')
const entitledToLogDays = getEntitlementNumericValue()
const handleApplyCustomRange = ({ from, to }: { from: Date; to: Date }) => {
const range = customDateRangeToLogTimeRange({ from, to })
if (maybeShowUpgradePromptIfNotEntitled(range.from, entitledToLogDays)) {
setShowUpgradePrompt(true)
return
}
onRangeChange(range)
}
return {
isCustomRangeOpen,
setIsCustomRangeOpen,
showUpgradePrompt,
setShowUpgradePrompt,
handleApplyCustomRange,
}
}