import { Button, Dropdown, IconChevronDown, IconPlay, Badge, Popover, Alert } from 'ui' import * as Tooltip from '@radix-ui/react-tooltip' import { PermissionAction } from '@supabase/shared-types/out/constants' import { EXPLORER_DATEPICKER_HELPERS, LogsTableName, LogsWarning, LOGS_SOURCE_DESCRIPTION, LogTemplate, } from '.' import DatePickers from './Logs.DatePickers' import Link from 'next/link' import React from 'react' import { checkPermissions, useStore } from 'hooks' interface Props { templates?: LogTemplate[] onSelectTemplate: (template: LogTemplate) => void onSelectSource: (source: LogsTableName) => void onRun: (e: React.MouseEvent) => void onClear: () => void onSave?: () => void hasEditorValue: boolean isLoading: boolean onDateChange: React.ComponentProps['onChange'] defaultTo: string defaultFrom: string warnings: LogsWarning[] } const LogsQueryPanel: React.FC = ({ templates = [], onSelectTemplate, hasEditorValue, onRun, onClear, onSave, onSelectSource, isLoading, defaultFrom, defaultTo, onDateChange, warnings, }) => { const { ui } = useStore() const canCreateLogQuery = checkPermissions(PermissionAction.CREATE, 'user_content', { resource: { type: 'log_sql', owner_id: ui.profile?.id }, subject: { id: ui.profile?.id }, }) return (
a.localeCompare(b)) .map((source) => ( onSelectSource(source)}>
{source} {LOGS_SOURCE_DESCRIPTION[source]}
))} >
a.label!.localeCompare(b.label!)) .map((template: LogTemplate) => ( onSelectTemplate(template)}>

{template.label}

))} >
0 ? 'opacity-100' : 'invisible h-0 w-0 opacity-0' }`} >
{warnings.map((warning, index) => (

{warning.text}{' '} {warning.link && ( {warning.linkText || 'View'} )}

))}
} > {warnings.length} {warnings.length > 1 ? 'warnings' : 'warning'}
{onSave && ( {!canCreateLogQuery && (
You need additional permissions to save your query
)}
)}
) } export default LogsQueryPanel