mirror of
https://github.com/hatchet-dev/hatchet.git
synced 2025-12-21 08:40:10 -06:00
chore: format
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
import * as React from 'react';
|
|
||||||
|
|
||||||
import type { ToastActionElement, ToastProps } from '@/components/v1/ui/toast';
|
import type { ToastActionElement, ToastProps } from '@/components/v1/ui/toast';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const TOAST_LIMIT = 1;
|
const TOAST_LIMIT = 1;
|
||||||
const TOAST_REMOVE_DELAY = 1000000;
|
const TOAST_REMOVE_DELAY = 1000000;
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { Button, ButtonProps } from '@/components/v1/ui/button';
|
import { Button, ButtonProps } from '@/components/v1/ui/button';
|
||||||
import { Spinner } from '@/components/v1/ui/loading.tsx';
|
|
||||||
import {
|
import {
|
||||||
Dialog,
|
Dialog,
|
||||||
DialogContent,
|
DialogContent,
|
||||||
DialogHeader,
|
DialogHeader,
|
||||||
DialogTitle,
|
DialogTitle,
|
||||||
} from '@/components/v1/ui/dialog';
|
} from '@/components/v1/ui/dialog';
|
||||||
|
import { Spinner } from '@/components/v1/ui/loading.tsx';
|
||||||
|
|
||||||
interface ConfirmDialogProps {
|
interface ConfirmDialogProps {
|
||||||
title: string;
|
title: string;
|
||||||
|
|||||||
@@ -1,4 +1,15 @@
|
|||||||
import React from 'react';
|
import hatchet from '@/assets/hatchet_logo.png';
|
||||||
|
import hatchetDark from '@/assets/hatchet_logo_dark.png';
|
||||||
|
import { useSidebar } from '@/components/sidebar-provider';
|
||||||
|
import { useTheme } from '@/components/theme-provider';
|
||||||
|
import {
|
||||||
|
Breadcrumb,
|
||||||
|
BreadcrumbItem,
|
||||||
|
BreadcrumbLink,
|
||||||
|
BreadcrumbList,
|
||||||
|
BreadcrumbPage,
|
||||||
|
BreadcrumbSeparator,
|
||||||
|
} from '@/components/v1/ui/breadcrumb';
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import {
|
import {
|
||||||
DropdownMenu,
|
DropdownMenu,
|
||||||
@@ -9,14 +20,17 @@ import {
|
|||||||
DropdownMenuShortcut,
|
DropdownMenuShortcut,
|
||||||
DropdownMenuTrigger,
|
DropdownMenuTrigger,
|
||||||
} from '@/components/v1/ui/dropdown-menu';
|
} from '@/components/v1/ui/dropdown-menu';
|
||||||
|
import { useBreadcrumbs } from '@/hooks/use-breadcrumbs';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { usePendingInvites } from '@/hooks/use-pending-invites';
|
||||||
|
import { useTenantDetails } from '@/hooks/use-tenant';
|
||||||
import api, { TenantMember, User } from '@/lib/api';
|
import api, { TenantMember, User } from '@/lib/api';
|
||||||
import { useApiError } from '@/lib/hooks';
|
import { useApiError } from '@/lib/hooks';
|
||||||
|
import useApiMeta from '@/pages/auth/hooks/use-api-meta';
|
||||||
|
import { VersionInfo } from '@/pages/main/info/components/version-info';
|
||||||
import { useMutation } from '@tanstack/react-query';
|
import { useMutation } from '@tanstack/react-query';
|
||||||
import hatchet from '@/assets/hatchet_logo.png';
|
import { Menu } from 'lucide-react';
|
||||||
import hatchetDark from '@/assets/hatchet_logo_dark.png';
|
import React from 'react';
|
||||||
import { useSidebar } from '@/components/sidebar-provider';
|
import { useMemo } from 'react';
|
||||||
import {
|
import {
|
||||||
BiBook,
|
BiBook,
|
||||||
BiCalendar,
|
BiCalendar,
|
||||||
@@ -27,22 +41,7 @@ import {
|
|||||||
BiUserCircle,
|
BiUserCircle,
|
||||||
BiEnvelope,
|
BiEnvelope,
|
||||||
} from 'react-icons/bi';
|
} from 'react-icons/bi';
|
||||||
import { Menu } from 'lucide-react';
|
import { useNavigate } from 'react-router-dom';
|
||||||
import { useTheme } from '@/components/theme-provider';
|
|
||||||
import { useMemo } from 'react';
|
|
||||||
import useApiMeta from '@/pages/auth/hooks/use-api-meta';
|
|
||||||
import { VersionInfo } from '@/pages/main/info/components/version-info';
|
|
||||||
import {
|
|
||||||
Breadcrumb,
|
|
||||||
BreadcrumbItem,
|
|
||||||
BreadcrumbLink,
|
|
||||||
BreadcrumbList,
|
|
||||||
BreadcrumbPage,
|
|
||||||
BreadcrumbSeparator,
|
|
||||||
} from '@/components/v1/ui/breadcrumb';
|
|
||||||
import { useBreadcrumbs } from '@/hooks/use-breadcrumbs';
|
|
||||||
import { usePendingInvites } from '@/hooks/use-pending-invites';
|
|
||||||
import { useTenantDetails } from '@/hooks/use-tenant';
|
|
||||||
|
|
||||||
function HelpDropdown() {
|
function HelpDropdown() {
|
||||||
const meta = useApiMeta();
|
const meta = useApiMeta();
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
import { useMemo } from 'react';
|
import { Button } from './v1/ui/button';
|
||||||
import {
|
import {
|
||||||
Select,
|
Select,
|
||||||
SelectContent,
|
SelectContent,
|
||||||
@@ -6,10 +6,10 @@ import {
|
|||||||
SelectTrigger,
|
SelectTrigger,
|
||||||
SelectValue,
|
SelectValue,
|
||||||
} from '@/components/v1/ui/select';
|
} from '@/components/v1/ui/select';
|
||||||
|
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
||||||
import { RefetchInterval, RefetchIntervalOption } from '@/lib/api/api';
|
import { RefetchInterval, RefetchIntervalOption } from '@/lib/api/api';
|
||||||
import { RefreshCw } from 'lucide-react';
|
import { RefreshCw } from 'lucide-react';
|
||||||
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
import { useMemo } from 'react';
|
||||||
import { Button } from './v1/ui/button';
|
|
||||||
|
|
||||||
type RefetchIntervalDropdownProps = {
|
type RefetchIntervalDropdownProps = {
|
||||||
isRefetching: boolean;
|
isRefetching: boolean;
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { useSidePanel } from '@/hooks/use-side-panel';
|
import { Button } from './v1/ui/button';
|
||||||
import { useLocalStorageState } from '@/hooks/use-local-storage-state';
|
import { useLocalStorageState } from '@/hooks/use-local-storage-state';
|
||||||
|
import { useSidePanel } from '@/hooks/use-side-panel';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
import {
|
import {
|
||||||
Cross2Icon,
|
Cross2Icon,
|
||||||
ChevronLeftIcon,
|
ChevronLeftIcon,
|
||||||
ChevronRightIcon,
|
ChevronRightIcon,
|
||||||
} from '@radix-ui/react-icons';
|
} from '@radix-ui/react-icons';
|
||||||
import { Button } from './v1/ui/button';
|
|
||||||
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
import React, { useCallback, useEffect, useRef, useState } from 'react';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
|
|
||||||
const DEFAULT_PANEL_WIDTH = 650;
|
const DEFAULT_PANEL_WIDTH = 650;
|
||||||
const MIN_PANEL_WIDTH = 350;
|
const MIN_PANEL_WIDTH = 350;
|
||||||
|
|||||||
@@ -1,4 +1,10 @@
|
|||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
|
import { Spinner } from '@/components/v1/ui/loading';
|
||||||
|
import { useCurrentTenantId } from '@/hooks/use-tenant';
|
||||||
|
import { cloudApi } from '@/lib/api/api';
|
||||||
|
import { TenantPaymentMethod } from '@/lib/api/generated/cloud/data-contracts';
|
||||||
|
import { useApiError } from '@/lib/hooks';
|
||||||
|
import { useState } from 'react';
|
||||||
import {
|
import {
|
||||||
FaCcAmex,
|
FaCcAmex,
|
||||||
FaCcDiscover,
|
FaCcDiscover,
|
||||||
@@ -8,16 +14,8 @@ import {
|
|||||||
FaCcDinersClub,
|
FaCcDinersClub,
|
||||||
FaCcJcb,
|
FaCcJcb,
|
||||||
} from 'react-icons/fa';
|
} from 'react-icons/fa';
|
||||||
|
|
||||||
import { LuBanknote } from 'react-icons/lu';
|
|
||||||
|
|
||||||
import { IconType } from 'react-icons/lib';
|
import { IconType } from 'react-icons/lib';
|
||||||
import { useApiError } from '@/lib/hooks';
|
import { LuBanknote } from 'react-icons/lu';
|
||||||
import { useState } from 'react';
|
|
||||||
import { Spinner } from '@/components/v1/ui/loading';
|
|
||||||
import { TenantPaymentMethod } from '@/lib/api/generated/cloud/data-contracts';
|
|
||||||
import { cloudApi } from '@/lib/api/api';
|
|
||||||
import { useCurrentTenantId } from '@/hooks/use-tenant';
|
|
||||||
|
|
||||||
const ccIcons: Record<string, IconType> = {
|
const ccIcons: Record<string, IconType> = {
|
||||||
visa: FaCcVisa,
|
visa: FaCcVisa,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import React, { useEffect, useRef, useState } from 'react';
|
|
||||||
import AnsiToHtml from 'ansi-to-html';
|
import AnsiToHtml from 'ansi-to-html';
|
||||||
import DOMPurify from 'dompurify';
|
import DOMPurify from 'dompurify';
|
||||||
|
import React, { useEffect, useRef, useState } from 'react';
|
||||||
|
|
||||||
const convert = new AnsiToHtml({
|
const convert = new AnsiToHtml({
|
||||||
newline: true,
|
newline: true,
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import * as React from 'react';
|
|
||||||
|
|
||||||
import type { ToastActionElement, ToastProps } from '@/components/v1/ui/toast';
|
import type { ToastActionElement, ToastProps } from '@/components/v1/ui/toast';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const TOAST_LIMIT = 1;
|
const TOAST_LIMIT = 1;
|
||||||
const TOAST_REMOVE_DELAY = 1000000;
|
const TOAST_REMOVE_DELAY = 1000000;
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
import {
|
||||||
|
ChartConfig,
|
||||||
|
ChartContainer,
|
||||||
|
ChartTooltip,
|
||||||
|
ChartTooltipContent,
|
||||||
|
} from '@/components/v1/ui/chart';
|
||||||
|
import { capitalize, cn } from '@/lib/utils';
|
||||||
import { useState, useMemo, useRef } from 'react';
|
import { useState, useMemo, useRef } from 'react';
|
||||||
import {
|
import {
|
||||||
CartesianGrid,
|
CartesianGrid,
|
||||||
@@ -12,13 +19,6 @@ import {
|
|||||||
Area,
|
Area,
|
||||||
AreaChart,
|
AreaChart,
|
||||||
} from 'recharts';
|
} from 'recharts';
|
||||||
import {
|
|
||||||
ChartConfig,
|
|
||||||
ChartContainer,
|
|
||||||
ChartTooltip,
|
|
||||||
ChartTooltipContent,
|
|
||||||
} from '@/components/v1/ui/chart';
|
|
||||||
import { capitalize, cn } from '@/lib/utils';
|
|
||||||
|
|
||||||
export type DataPoint<T extends string> = Record<T, number> & {
|
export type DataPoint<T extends string> = Record<T, number> & {
|
||||||
date: string;
|
date: string;
|
||||||
|
|||||||
@@ -1,7 +1,4 @@
|
|||||||
import * as React from 'react';
|
import { ToolbarType } from '../data-table/data-table-toolbar';
|
||||||
import { CheckIcon, PlusCircledIcon } from '@radix-ui/react-icons';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import { Badge } from '@/components/v1/ui/badge';
|
import { Badge } from '@/components/v1/ui/badge';
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import {
|
import {
|
||||||
@@ -13,18 +10,20 @@ import {
|
|||||||
CommandList,
|
CommandList,
|
||||||
CommandSeparator,
|
CommandSeparator,
|
||||||
} from '@/components/v1/ui/command';
|
} from '@/components/v1/ui/command';
|
||||||
|
import { Input } from '@/components/v1/ui/input';
|
||||||
import {
|
import {
|
||||||
Popover,
|
Popover,
|
||||||
PopoverContent,
|
PopoverContent,
|
||||||
PopoverTrigger,
|
PopoverTrigger,
|
||||||
} from '@/components/v1/ui/popover';
|
} from '@/components/v1/ui/popover';
|
||||||
import { Separator } from '@/components/v1/ui/separator';
|
import { Separator } from '@/components/v1/ui/separator';
|
||||||
import { ToolbarType } from '../data-table/data-table-toolbar';
|
import { cn } from '@/lib/utils';
|
||||||
import { Input } from '@/components/v1/ui/input';
|
|
||||||
import { BiX } from 'react-icons/bi';
|
|
||||||
import { useForm } from 'react-hook-form';
|
|
||||||
import { z } from 'zod';
|
|
||||||
import { zodResolver } from '@hookform/resolvers/zod';
|
import { zodResolver } from '@hookform/resolvers/zod';
|
||||||
|
import { CheckIcon, PlusCircledIcon } from '@radix-ui/react-icons';
|
||||||
|
import * as React from 'react';
|
||||||
|
import { useForm } from 'react-hook-form';
|
||||||
|
import { BiX } from 'react-icons/bi';
|
||||||
|
import { z } from 'zod';
|
||||||
|
|
||||||
const keyValuePairSchema = z.object({
|
const keyValuePairSchema = z.object({
|
||||||
key: z.string().min(1, 'Key is required'),
|
key: z.string().min(1, 'Key is required'),
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { Button, ButtonProps } from '@/components/v1/ui/button';
|
import { Button, ButtonProps } from '@/components/v1/ui/button';
|
||||||
import { Spinner } from '@/components/v1/ui/loading.tsx';
|
|
||||||
import {
|
import {
|
||||||
Dialog,
|
Dialog,
|
||||||
DialogContent,
|
DialogContent,
|
||||||
DialogHeader,
|
DialogHeader,
|
||||||
DialogTitle,
|
DialogTitle,
|
||||||
} from '@/components/v1/ui/dialog';
|
} from '@/components/v1/ui/dialog';
|
||||||
|
import { Spinner } from '@/components/v1/ui/loading.tsx';
|
||||||
|
|
||||||
interface ConfirmDialogProps {
|
interface ConfirmDialogProps {
|
||||||
title: string;
|
title: string;
|
||||||
|
|||||||
@@ -1,12 +1,3 @@
|
|||||||
import {
|
|
||||||
ArrowDownIcon,
|
|
||||||
ArrowUpIcon,
|
|
||||||
CaretSortIcon,
|
|
||||||
EyeNoneIcon,
|
|
||||||
} from '@radix-ui/react-icons';
|
|
||||||
import { Column } from '@tanstack/react-table';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import {
|
import {
|
||||||
DropdownMenu,
|
DropdownMenu,
|
||||||
@@ -15,6 +6,14 @@ import {
|
|||||||
DropdownMenuSeparator,
|
DropdownMenuSeparator,
|
||||||
DropdownMenuTrigger,
|
DropdownMenuTrigger,
|
||||||
} from '@/components/v1/ui/dropdown-menu';
|
} from '@/components/v1/ui/dropdown-menu';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
|
import {
|
||||||
|
ArrowDownIcon,
|
||||||
|
ArrowUpIcon,
|
||||||
|
CaretSortIcon,
|
||||||
|
EyeNoneIcon,
|
||||||
|
} from '@radix-ui/react-icons';
|
||||||
|
import { Column } from '@tanstack/react-table';
|
||||||
|
|
||||||
interface DataTableColumnHeaderProps<TData, TValue>
|
interface DataTableColumnHeaderProps<TData, TValue>
|
||||||
extends React.HTMLAttributes<HTMLDivElement> {
|
extends React.HTMLAttributes<HTMLDivElement> {
|
||||||
|
|||||||
@@ -1,30 +1,20 @@
|
|||||||
import * as React from 'react';
|
import { Tabs, TabsContent, TabsList, TabsTrigger } from '../../ui/tabs';
|
||||||
import { Cross2Icon, MixerHorizontalIcon } from '@radix-ui/react-icons';
|
|
||||||
import { ColumnFiltersState, Table } from '@tanstack/react-table';
|
|
||||||
import { Button } from '@/components/v1/ui/button';
|
|
||||||
import {
|
|
||||||
DropdownMenu,
|
|
||||||
DropdownMenuContent,
|
|
||||||
DropdownMenuTrigger,
|
|
||||||
} from '@/components/v1/ui/dropdown-menu';
|
|
||||||
import { Badge } from '@/components/v1/ui/badge';
|
|
||||||
import { ChevronDownIcon } from '@radix-ui/react-icons';
|
|
||||||
import {
|
|
||||||
flattenDAGsKey,
|
|
||||||
createdAfterKey,
|
|
||||||
finishedBeforeKey,
|
|
||||||
statusKey,
|
|
||||||
isCustomTimeRangeKey,
|
|
||||||
timeWindowKey,
|
|
||||||
} from '@/pages/main/v1/workflow-runs-v1/components/v1/task-runs-columns';
|
|
||||||
import { ToolbarFilters } from './data-table-toolbar';
|
import { ToolbarFilters } from './data-table-toolbar';
|
||||||
import {
|
import {
|
||||||
ToolbarType,
|
ToolbarType,
|
||||||
FilterOption,
|
FilterOption,
|
||||||
TimeRangeConfig,
|
TimeRangeConfig,
|
||||||
} from './data-table-toolbar';
|
} from './data-table-toolbar';
|
||||||
import { Input } from '@/components/v1/ui/input';
|
import { DateTimePicker } from '@/components/v1/molecules/time-picker/date-time-picker';
|
||||||
|
import { Badge } from '@/components/v1/ui/badge';
|
||||||
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import { Checkbox } from '@/components/v1/ui/checkbox';
|
import { Checkbox } from '@/components/v1/ui/checkbox';
|
||||||
|
import {
|
||||||
|
DropdownMenu,
|
||||||
|
DropdownMenuContent,
|
||||||
|
DropdownMenuTrigger,
|
||||||
|
} from '@/components/v1/ui/dropdown-menu';
|
||||||
|
import { Input } from '@/components/v1/ui/input';
|
||||||
import { Label } from '@/components/v1/ui/label';
|
import { Label } from '@/components/v1/ui/label';
|
||||||
import {
|
import {
|
||||||
Select,
|
Select,
|
||||||
@@ -33,11 +23,21 @@ import {
|
|||||||
SelectTrigger,
|
SelectTrigger,
|
||||||
SelectValue,
|
SelectValue,
|
||||||
} from '@/components/v1/ui/select';
|
} from '@/components/v1/ui/select';
|
||||||
import { DateTimePicker } from '@/components/v1/molecules/time-picker/date-time-picker';
|
|
||||||
import { XCircleIcon } from '@heroicons/react/24/outline';
|
|
||||||
import { Column } from '@tanstack/react-table';
|
|
||||||
import { V1TaskStatus } from '@/lib/api';
|
import { V1TaskStatus } from '@/lib/api';
|
||||||
import { Tabs, TabsContent, TabsList, TabsTrigger } from '../../ui/tabs';
|
import {
|
||||||
|
flattenDAGsKey,
|
||||||
|
createdAfterKey,
|
||||||
|
finishedBeforeKey,
|
||||||
|
statusKey,
|
||||||
|
isCustomTimeRangeKey,
|
||||||
|
timeWindowKey,
|
||||||
|
} from '@/pages/main/v1/workflow-runs-v1/components/v1/task-runs-columns';
|
||||||
|
import { XCircleIcon } from '@heroicons/react/24/outline';
|
||||||
|
import { Cross2Icon, MixerHorizontalIcon } from '@radix-ui/react-icons';
|
||||||
|
import { ChevronDownIcon } from '@radix-ui/react-icons';
|
||||||
|
import { ColumnFiltersState, Table } from '@tanstack/react-table';
|
||||||
|
import { Column } from '@tanstack/react-table';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
interface FilterControlProps<TData> {
|
interface FilterControlProps<TData> {
|
||||||
column?: Column<TData, any>;
|
column?: Column<TData, any>;
|
||||||
|
|||||||
@@ -1,11 +1,3 @@
|
|||||||
import {
|
|
||||||
ChevronLeftIcon,
|
|
||||||
ChevronRightIcon,
|
|
||||||
DoubleArrowLeftIcon,
|
|
||||||
DoubleArrowRightIcon,
|
|
||||||
} from '@radix-ui/react-icons';
|
|
||||||
import { Table } from '@tanstack/react-table';
|
|
||||||
|
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import {
|
import {
|
||||||
Select,
|
Select,
|
||||||
@@ -14,7 +6,14 @@ import {
|
|||||||
SelectTrigger,
|
SelectTrigger,
|
||||||
SelectValue,
|
SelectValue,
|
||||||
} from '@/components/v1/ui/select';
|
} from '@/components/v1/ui/select';
|
||||||
|
import {
|
||||||
|
ChevronLeftIcon,
|
||||||
|
ChevronRightIcon,
|
||||||
|
DoubleArrowLeftIcon,
|
||||||
|
DoubleArrowRightIcon,
|
||||||
|
} from '@radix-ui/react-icons';
|
||||||
import { Label } from '@radix-ui/react-label';
|
import { Label } from '@radix-ui/react-label';
|
||||||
|
import { Table } from '@tanstack/react-table';
|
||||||
|
|
||||||
interface DataTablePaginationProps<TData> {
|
interface DataTablePaginationProps<TData> {
|
||||||
table: Table<TData>;
|
table: Table<TData>;
|
||||||
|
|||||||
@@ -1,6 +1,4 @@
|
|||||||
import { DotsVerticalIcon } from '@radix-ui/react-icons';
|
import { IDGetter } from './data-table';
|
||||||
import { Row } from '@tanstack/react-table';
|
|
||||||
|
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import {
|
import {
|
||||||
DropdownMenu,
|
DropdownMenu,
|
||||||
@@ -8,14 +6,14 @@ import {
|
|||||||
DropdownMenuItem,
|
DropdownMenuItem,
|
||||||
DropdownMenuTrigger,
|
DropdownMenuTrigger,
|
||||||
} from '@/components/v1/ui/dropdown-menu';
|
} from '@/components/v1/ui/dropdown-menu';
|
||||||
|
|
||||||
import { IDGetter } from './data-table';
|
|
||||||
import {
|
import {
|
||||||
Tooltip,
|
Tooltip,
|
||||||
TooltipProvider,
|
TooltipProvider,
|
||||||
TooltipTrigger,
|
TooltipTrigger,
|
||||||
TooltipContent,
|
TooltipContent,
|
||||||
} from '@/components/v1/ui/tooltip';
|
} from '@/components/v1/ui/tooltip';
|
||||||
|
import { DotsVerticalIcon } from '@radix-ui/react-icons';
|
||||||
|
import { Row } from '@tanstack/react-table';
|
||||||
|
|
||||||
interface DataTableRowActionsProps<TData extends IDGetter<TData>> {
|
interface DataTableRowActionsProps<TData extends IDGetter<TData>> {
|
||||||
row: Row<TData>;
|
row: Row<TData>;
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import { Table } from '@tanstack/react-table';
|
|
||||||
import { DataTableOptions } from './data-table-options';
|
import { DataTableOptions } from './data-table-options';
|
||||||
import { Spinner } from '@/components/v1/ui/loading';
|
|
||||||
import { RefetchIntervalDropdown } from '@/components/refetch-interval-dropdown';
|
import { RefetchIntervalDropdown } from '@/components/refetch-interval-dropdown';
|
||||||
import { TableActions } from '@/pages/main/v1/workflow-runs-v1/components/task-runs-table/table-actions';
|
import { Spinner } from '@/components/v1/ui/loading';
|
||||||
import {
|
import {
|
||||||
ActionType,
|
ActionType,
|
||||||
BaseTaskRunActionParams,
|
BaseTaskRunActionParams,
|
||||||
} from '@/pages/main/v1/task-runs-v1/actions';
|
} from '@/pages/main/v1/task-runs-v1/actions';
|
||||||
|
import { TableActions } from '@/pages/main/v1/workflow-runs-v1/components/task-runs-table/table-actions';
|
||||||
|
import { Table } from '@tanstack/react-table';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
export interface FilterOption {
|
export interface FilterOption {
|
||||||
label: string;
|
label: string;
|
||||||
|
|||||||
@@ -1,4 +1,21 @@
|
|||||||
import * as React from 'react';
|
import { DataTablePagination } from './data-table-pagination';
|
||||||
|
import {
|
||||||
|
DataTableToolbar,
|
||||||
|
ShowTableActionsProps,
|
||||||
|
ToolbarFilters,
|
||||||
|
} from './data-table-toolbar';
|
||||||
|
import { Skeleton } from '@/components/v1/ui/skeleton';
|
||||||
|
import {
|
||||||
|
Table,
|
||||||
|
TableBody,
|
||||||
|
TableCell,
|
||||||
|
TableHead,
|
||||||
|
TableHeader,
|
||||||
|
TableRow,
|
||||||
|
} from '@/components/v1/ui/table';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
|
import { ConfirmActionModal } from '@/pages/main/v1/task-runs-v1/actions';
|
||||||
|
import { flattenDAGsKey } from '@/pages/main/v1/workflow-runs-v1/components/v1/task-runs-columns';
|
||||||
import {
|
import {
|
||||||
ColumnDef,
|
ColumnDef,
|
||||||
ColumnFiltersState,
|
ColumnFiltersState,
|
||||||
@@ -18,26 +35,7 @@ import {
|
|||||||
getSortedRowModel,
|
getSortedRowModel,
|
||||||
useReactTable,
|
useReactTable,
|
||||||
} from '@tanstack/react-table';
|
} from '@tanstack/react-table';
|
||||||
|
import * as React from 'react';
|
||||||
import {
|
|
||||||
Table,
|
|
||||||
TableBody,
|
|
||||||
TableCell,
|
|
||||||
TableHead,
|
|
||||||
TableHeader,
|
|
||||||
TableRow,
|
|
||||||
} from '@/components/v1/ui/table';
|
|
||||||
|
|
||||||
import { DataTablePagination } from './data-table-pagination';
|
|
||||||
import {
|
|
||||||
DataTableToolbar,
|
|
||||||
ShowTableActionsProps,
|
|
||||||
ToolbarFilters,
|
|
||||||
} from './data-table-toolbar';
|
|
||||||
import { Skeleton } from '@/components/v1/ui/skeleton';
|
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import { ConfirmActionModal } from '@/pages/main/v1/task-runs-v1/actions';
|
|
||||||
import { flattenDAGsKey } from '@/pages/main/v1/workflow-runs-v1/components/v1/task-runs-columns';
|
|
||||||
|
|
||||||
export interface IDGetter<T> {
|
export interface IDGetter<T> {
|
||||||
metadata: {
|
metadata: {
|
||||||
|
|||||||
@@ -1,13 +1,4 @@
|
|||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import {
|
|
||||||
BuildingOffice2Icon,
|
|
||||||
Cog6ToothIcon,
|
|
||||||
PlusIcon,
|
|
||||||
CheckIcon,
|
|
||||||
ChevronDownIcon,
|
|
||||||
ChevronRightIcon,
|
|
||||||
} from '@heroicons/react/24/outline';
|
|
||||||
import {
|
import {
|
||||||
Command,
|
Command,
|
||||||
CommandEmpty,
|
CommandEmpty,
|
||||||
@@ -15,14 +6,6 @@ import {
|
|||||||
CommandItem,
|
CommandItem,
|
||||||
CommandList,
|
CommandList,
|
||||||
} from '@/components/v1/ui/command';
|
} from '@/components/v1/ui/command';
|
||||||
import { Tenant, TenantMember } from '@/lib/api';
|
|
||||||
import { OrganizationForUser } from '@/lib/api/generated/cloud/data-contracts';
|
|
||||||
import { CaretSortIcon } from '@radix-ui/react-icons';
|
|
||||||
import {
|
|
||||||
PopoverTrigger,
|
|
||||||
Popover,
|
|
||||||
PopoverContent,
|
|
||||||
} from '@radix-ui/react-popover';
|
|
||||||
import {
|
import {
|
||||||
Dialog,
|
Dialog,
|
||||||
DialogContent,
|
DialogContent,
|
||||||
@@ -32,10 +15,27 @@ import {
|
|||||||
} from '@/components/v1/ui/dialog';
|
} from '@/components/v1/ui/dialog';
|
||||||
import { Input } from '@/components/v1/ui/input';
|
import { Input } from '@/components/v1/ui/input';
|
||||||
import { TooltipProvider } from '@/components/v1/ui/tooltip';
|
import { TooltipProvider } from '@/components/v1/ui/tooltip';
|
||||||
|
import { useOrganizations } from '@/hooks/use-organizations';
|
||||||
|
import { useTenantDetails } from '@/hooks/use-tenant';
|
||||||
|
import { Tenant, TenantMember } from '@/lib/api';
|
||||||
|
import { OrganizationForUser } from '@/lib/api/generated/cloud/data-contracts';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
|
import {
|
||||||
|
BuildingOffice2Icon,
|
||||||
|
Cog6ToothIcon,
|
||||||
|
PlusIcon,
|
||||||
|
CheckIcon,
|
||||||
|
ChevronDownIcon,
|
||||||
|
ChevronRightIcon,
|
||||||
|
} from '@heroicons/react/24/outline';
|
||||||
|
import { CaretSortIcon } from '@radix-ui/react-icons';
|
||||||
|
import {
|
||||||
|
PopoverTrigger,
|
||||||
|
Popover,
|
||||||
|
PopoverContent,
|
||||||
|
} from '@radix-ui/react-popover';
|
||||||
import { useState, useMemo } from 'react';
|
import { useState, useMemo } from 'react';
|
||||||
import { useNavigate } from 'react-router-dom';
|
import { useNavigate } from 'react-router-dom';
|
||||||
import { useTenantDetails } from '@/hooks/use-tenant';
|
|
||||||
import { useOrganizations } from '@/hooks/use-organizations';
|
|
||||||
import invariant from 'tiny-invariant';
|
import invariant from 'tiny-invariant';
|
||||||
|
|
||||||
interface OrganizationGroupProps {
|
interface OrganizationGroupProps {
|
||||||
|
|||||||
@@ -1,11 +1,4 @@
|
|||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import {
|
|
||||||
BuildingOffice2Icon,
|
|
||||||
// ChartBarSquareIcon,
|
|
||||||
CheckIcon,
|
|
||||||
} from '@heroicons/react/24/outline';
|
|
||||||
import invariant from 'tiny-invariant';
|
|
||||||
import {
|
import {
|
||||||
Command,
|
Command,
|
||||||
CommandEmpty,
|
CommandEmpty,
|
||||||
@@ -13,8 +6,17 @@ import {
|
|||||||
CommandList,
|
CommandList,
|
||||||
CommandSeparator,
|
CommandSeparator,
|
||||||
} from '@/components/v1/ui/command';
|
} from '@/components/v1/ui/command';
|
||||||
import { Link } from 'react-router-dom';
|
import { Spinner } from '@/components/v1/ui/loading.tsx';
|
||||||
|
import { useOrganizations } from '@/hooks/use-organizations';
|
||||||
|
import { useTenantDetails } from '@/hooks/use-tenant';
|
||||||
import { TenantMember } from '@/lib/api';
|
import { TenantMember } from '@/lib/api';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
|
import useApiMeta from '@/pages/auth/hooks/use-api-meta';
|
||||||
|
import {
|
||||||
|
BuildingOffice2Icon,
|
||||||
|
// ChartBarSquareIcon,
|
||||||
|
CheckIcon,
|
||||||
|
} from '@heroicons/react/24/outline';
|
||||||
import { CaretSortIcon, PlusCircledIcon } from '@radix-ui/react-icons';
|
import { CaretSortIcon, PlusCircledIcon } from '@radix-ui/react-icons';
|
||||||
import {
|
import {
|
||||||
PopoverTrigger,
|
PopoverTrigger,
|
||||||
@@ -22,10 +24,8 @@ import {
|
|||||||
PopoverContent,
|
PopoverContent,
|
||||||
} from '@radix-ui/react-popover';
|
} from '@radix-ui/react-popover';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Spinner } from '@/components/v1/ui/loading.tsx';
|
import { Link } from 'react-router-dom';
|
||||||
import useApiMeta from '@/pages/auth/hooks/use-api-meta';
|
import invariant from 'tiny-invariant';
|
||||||
import { useTenantDetails } from '@/hooks/use-tenant';
|
|
||||||
import { useOrganizations } from '@/hooks/use-organizations';
|
|
||||||
|
|
||||||
interface TenantSwitcherProps {
|
interface TenantSwitcherProps {
|
||||||
className?: string;
|
className?: string;
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
import React, { useEffect, useMemo, useState } from 'react';
|
|
||||||
import TimeAgo from 'timeago-react';
|
|
||||||
import {
|
import {
|
||||||
PortalTooltip,
|
PortalTooltip,
|
||||||
PortalTooltipTrigger,
|
PortalTooltipTrigger,
|
||||||
@@ -7,6 +5,8 @@ import {
|
|||||||
PortalTooltipProvider,
|
PortalTooltipProvider,
|
||||||
} from '@/components/v1/ui/portal-tooltip';
|
} from '@/components/v1/ui/portal-tooltip';
|
||||||
import { format, parseISO } from 'date-fns';
|
import { format, parseISO } from 'date-fns';
|
||||||
|
import React, { useEffect, useMemo, useState } from 'react';
|
||||||
|
import TimeAgo from 'timeago-react';
|
||||||
|
|
||||||
interface RelativeDateProps {
|
interface RelativeDateProps {
|
||||||
date?: Date | string;
|
date?: Date | string;
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import { add, format } from 'date-fns';
|
import { TimePicker } from './time-picker';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import { Calendar } from '@/components/v1/ui/calendar';
|
import { Calendar } from '@/components/v1/ui/calendar';
|
||||||
import {
|
import {
|
||||||
@@ -7,8 +6,9 @@ import {
|
|||||||
PopoverContent,
|
PopoverContent,
|
||||||
PopoverTrigger,
|
PopoverTrigger,
|
||||||
} from '@/components/v1/ui/popover';
|
} from '@/components/v1/ui/popover';
|
||||||
import { TimePicker } from './time-picker';
|
import { cn } from '@/lib/utils';
|
||||||
import { CalendarIcon } from '@radix-ui/react-icons';
|
import { CalendarIcon } from '@radix-ui/react-icons';
|
||||||
|
import { add, format } from 'date-fns';
|
||||||
|
|
||||||
type DateTimePickerProps = {
|
type DateTimePickerProps = {
|
||||||
date: Date | undefined;
|
date: Date | undefined;
|
||||||
|
|||||||
@@ -1,7 +1,3 @@
|
|||||||
import { Input } from '@/components/v1/ui/input';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import React from 'react';
|
|
||||||
import {
|
import {
|
||||||
Period,
|
Period,
|
||||||
TimePickerType,
|
TimePickerType,
|
||||||
@@ -9,6 +5,9 @@ import {
|
|||||||
getDateByType,
|
getDateByType,
|
||||||
setDateByType,
|
setDateByType,
|
||||||
} from './time-picker-utils';
|
} from './time-picker-utils';
|
||||||
|
import { Input } from '@/components/v1/ui/input';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
interface TimePickerInputProps
|
interface TimePickerInputProps
|
||||||
extends React.InputHTMLAttributes<HTMLInputElement> {
|
extends React.InputHTMLAttributes<HTMLInputElement> {
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import { Label } from '@/components/v1/ui/label';
|
|
||||||
import { TimePickerInput } from './time-picker-input';
|
import { TimePickerInput } from './time-picker-input';
|
||||||
|
import { Label } from '@/components/v1/ui/label';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
interface TimePickerProps {
|
interface TimePickerProps {
|
||||||
date: Date | undefined;
|
date: Date | undefined;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useState } from 'react';
|
|
||||||
import { Button } from '../ui/button';
|
import { Button } from '../ui/button';
|
||||||
import { CheckIcon, CopyIcon } from 'lucide-react';
|
import { CheckIcon, CopyIcon } from 'lucide-react';
|
||||||
|
import { useState } from 'react';
|
||||||
|
|
||||||
export function CopyWorkflowConfigButton({
|
export function CopyWorkflowConfigButton({
|
||||||
workflowConfig,
|
workflowConfig,
|
||||||
|
|||||||
@@ -1,8 +1,3 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import { cva, type VariantProps } from 'class-variance-authority';
|
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import { intervalToDuration } from 'date-fns';
|
|
||||||
import { Clock } from 'lucide-react';
|
|
||||||
import {
|
import {
|
||||||
PortalTooltip,
|
PortalTooltip,
|
||||||
PortalTooltipTrigger,
|
PortalTooltipTrigger,
|
||||||
@@ -10,7 +5,12 @@ import {
|
|||||||
PortalTooltipProvider,
|
PortalTooltipProvider,
|
||||||
} from '@/components/v1/ui/portal-tooltip';
|
} from '@/components/v1/ui/portal-tooltip';
|
||||||
import { V1TaskStatus } from '@/lib/api';
|
import { V1TaskStatus } from '@/lib/api';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
|
import { cva, type VariantProps } from 'class-variance-authority';
|
||||||
|
import { intervalToDuration } from 'date-fns';
|
||||||
import { Duration as DateFnsDuration } from 'date-fns';
|
import { Duration as DateFnsDuration } from 'date-fns';
|
||||||
|
import { Clock } from 'lucide-react';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
function formatDuration(duration: DateFnsDuration, rawTimeMs: number): string {
|
function formatDuration(duration: DateFnsDuration, rawTimeMs: number): string {
|
||||||
const parts = [];
|
const parts = [];
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
import * as React from 'react';
|
import { cn } from '@/lib/utils';
|
||||||
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
||||||
import { ChevronDownIcon } from '@radix-ui/react-icons';
|
import { ChevronDownIcon } from '@radix-ui/react-icons';
|
||||||
|
import * as React from 'react';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
|
|
||||||
const Accordion = AccordionPrimitive.Root;
|
const Accordion = AccordionPrimitive.Root;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import { cva, type VariantProps } from 'class-variance-authority';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import { cva, type VariantProps } from 'class-variance-authority';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const alertVariants = cva(
|
const alertVariants = cva(
|
||||||
'relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7',
|
'relative w-full rounded-lg border px-4 py-3 text-sm [&>svg+div]:translate-y-[-3px] [&>svg]:absolute [&>svg]:left-4 [&>svg]:top-4 [&>svg]:text-foreground [&>svg~*]:pl-7',
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const Avatar = React.forwardRef<
|
const Avatar = React.forwardRef<
|
||||||
React.ElementRef<typeof AvatarPrimitive.Root>,
|
React.ElementRef<typeof AvatarPrimitive.Root>,
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import { cva, type VariantProps } from 'class-variance-authority';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import { cva, type VariantProps } from 'class-variance-authority';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const badgeVariants = cva(
|
const badgeVariants = cva(
|
||||||
'inline-flex items-center rounded-md border px-3 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',
|
'inline-flex items-center rounded-md border px-3 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
import * as React from 'react';
|
import { cn } from '@/lib/utils';
|
||||||
import { ChevronRightIcon, DotsHorizontalIcon } from '@radix-ui/react-icons';
|
import { ChevronRightIcon, DotsHorizontalIcon } from '@radix-ui/react-icons';
|
||||||
import { Slot } from '@radix-ui/react-slot';
|
import { Slot } from '@radix-ui/react-slot';
|
||||||
|
import * as React from 'react';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
|
|
||||||
const Breadcrumb = React.forwardRef<
|
const Breadcrumb = React.forwardRef<
|
||||||
HTMLElement,
|
HTMLElement,
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import { Slot } from '@radix-ui/react-slot';
|
|
||||||
import { cva, type VariantProps } from 'class-variance-authority';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import {
|
import {
|
||||||
Tooltip,
|
Tooltip,
|
||||||
TooltipContent,
|
TooltipContent,
|
||||||
TooltipProvider,
|
TooltipProvider,
|
||||||
TooltipTrigger,
|
TooltipTrigger,
|
||||||
} from './tooltip';
|
} from './tooltip';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
|
import { Slot } from '@radix-ui/react-slot';
|
||||||
|
import { cva, type VariantProps } from 'class-variance-authority';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const buttonVariants = cva(
|
const buttonVariants = cva(
|
||||||
'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',
|
'inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none disabled:pointer-events-none disabled:opacity-50',
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import { ChevronLeftIcon, ChevronRightIcon } from '@radix-ui/react-icons';
|
|
||||||
import { DayPicker } from 'react-day-picker';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import { buttonVariants } from '@/components/v1/ui/button';
|
import { buttonVariants } from '@/components/v1/ui/button';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
|
import { ChevronLeftIcon, ChevronRightIcon } from '@radix-ui/react-icons';
|
||||||
|
import * as React from 'react';
|
||||||
|
import { DayPicker } from 'react-day-picker';
|
||||||
|
|
||||||
type CalendarProps = React.ComponentProps<typeof DayPicker>;
|
type CalendarProps = React.ComponentProps<typeof DayPicker>;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import * as React from 'react';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const Card = React.forwardRef<
|
const Card = React.forwardRef<
|
||||||
HTMLDivElement,
|
HTMLDivElement,
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
|
import { cn } from '@/lib/utils';
|
||||||
import * as React from 'react';
|
import * as React from 'react';
|
||||||
import * as RechartsPrimitive from 'recharts';
|
import * as RechartsPrimitive from 'recharts';
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
|
|
||||||
// Format: { THEME_NAME: CSS_SELECTOR }
|
// Format: { THEME_NAME: CSS_SELECTOR }
|
||||||
const THEMES = { light: '', dark: '.dark' } as const;
|
const THEMES = { light: '', dark: '.dark' } as const;
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
import * as React from 'react';
|
import { cn } from '@/lib/utils';
|
||||||
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
import * as CheckboxPrimitive from '@radix-ui/react-checkbox';
|
||||||
import { CheckIcon } from '@radix-ui/react-icons';
|
import { CheckIcon } from '@radix-ui/react-icons';
|
||||||
|
import * as React from 'react';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
|
|
||||||
const Checkbox = React.forwardRef<
|
const Checkbox = React.forwardRef<
|
||||||
React.ElementRef<typeof CheckboxPrimitive.Root>,
|
React.ElementRef<typeof CheckboxPrimitive.Root>,
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import CopyToClipboard from './copy-to-clipboard';
|
import CopyToClipboard from './copy-to-clipboard';
|
||||||
|
import { useTheme } from '@/components/theme-provider';
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
import Editor, { Monaco } from '@monaco-editor/react';
|
import Editor, { Monaco } from '@monaco-editor/react';
|
||||||
import 'monaco-themes/themes/Pastels on Dark.json';
|
import 'monaco-themes/themes/Pastels on Dark.json';
|
||||||
import { useTheme } from '@/components/theme-provider';
|
|
||||||
|
|
||||||
interface CodeEditorProps {
|
interface CodeEditorProps {
|
||||||
code?: string;
|
code?: string;
|
||||||
|
|||||||
@@ -1,16 +1,14 @@
|
|||||||
|
import CopyToClipboard from './copy-to-clipboard';
|
||||||
|
import { useTheme } from '@/components/theme-provider';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
import { Light as SyntaxHighlighter } from 'react-syntax-highlighter';
|
import { Light as SyntaxHighlighter } from 'react-syntax-highlighter';
|
||||||
|
import json from 'react-syntax-highlighter/dist/esm/languages/hljs/json';
|
||||||
import typescript from 'react-syntax-highlighter/dist/esm/languages/hljs/typescript';
|
import typescript from 'react-syntax-highlighter/dist/esm/languages/hljs/typescript';
|
||||||
import yaml from 'react-syntax-highlighter/dist/esm/languages/hljs/yaml';
|
import yaml from 'react-syntax-highlighter/dist/esm/languages/hljs/yaml';
|
||||||
import json from 'react-syntax-highlighter/dist/esm/languages/hljs/json';
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
anOldHope,
|
anOldHope,
|
||||||
atomOneLight,
|
atomOneLight,
|
||||||
} from 'react-syntax-highlighter/dist/esm/styles/hljs';
|
} from 'react-syntax-highlighter/dist/esm/styles/hljs';
|
||||||
import CopyToClipboard from './copy-to-clipboard';
|
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import { useTheme } from '@/components/theme-provider';
|
|
||||||
|
|
||||||
SyntaxHighlighter.registerLanguage('typescript', typescript);
|
SyntaxHighlighter.registerLanguage('typescript', typescript);
|
||||||
SyntaxHighlighter.registerLanguage('yaml', yaml);
|
SyntaxHighlighter.registerLanguage('yaml', yaml);
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
import * as React from 'react';
|
import { Dialog, DialogContent } from '@/components/v1/ui/dialog';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
import { type DialogProps } from '@radix-ui/react-dialog';
|
import { type DialogProps } from '@radix-ui/react-dialog';
|
||||||
import { MagnifyingGlassIcon } from '@radix-ui/react-icons';
|
import { MagnifyingGlassIcon } from '@radix-ui/react-icons';
|
||||||
import { Command as CommandPrimitive } from 'cmdk';
|
import { Command as CommandPrimitive } from 'cmdk';
|
||||||
|
import * as React from 'react';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import { Dialog, DialogContent } from '@/components/v1/ui/dialog';
|
|
||||||
|
|
||||||
const Command = React.forwardRef<
|
const Command = React.forwardRef<
|
||||||
React.ElementRef<typeof CommandPrimitive>,
|
React.ElementRef<typeof CommandPrimitive>,
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import React, { useState } from 'react';
|
|
||||||
import { Button } from './button';
|
import { Button } from './button';
|
||||||
import { CopyIcon } from '@radix-ui/react-icons';
|
|
||||||
import { CheckIcon } from '@heroicons/react/24/outline';
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import { CheckIcon } from '@heroicons/react/24/outline';
|
||||||
|
import { CopyIcon } from '@radix-ui/react-icons';
|
||||||
|
import React, { useState } from 'react';
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
text: string;
|
text: string;
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import * as DialogPrimitive from '@radix-ui/react-dialog';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const Dialog = DialogPrimitive.Root;
|
const Dialog = DialogPrimitive.Root;
|
||||||
|
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
import * as React from 'react';
|
import { cn } from '@/lib/utils';
|
||||||
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
|
||||||
import {
|
import {
|
||||||
CheckIcon,
|
CheckIcon,
|
||||||
ChevronRightIcon,
|
ChevronRightIcon,
|
||||||
DotFilledIcon,
|
DotFilledIcon,
|
||||||
} from '@radix-ui/react-icons';
|
} from '@radix-ui/react-icons';
|
||||||
|
import * as React from 'react';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
|
|
||||||
const DropdownMenu = DropdownMenuPrimitive.Root;
|
const DropdownMenu = DropdownMenuPrimitive.Root;
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import React, { useEffect } from 'react';
|
|
||||||
import { Input } from '@/components/v1/ui/input';
|
|
||||||
import { Textarea } from './textarea';
|
import { Textarea } from './textarea';
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
|
import { Input } from '@/components/v1/ui/input';
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
import { TrashIcon } from '@radix-ui/react-icons';
|
import { TrashIcon } from '@radix-ui/react-icons';
|
||||||
|
import React, { useEffect } from 'react';
|
||||||
|
|
||||||
export type KeyValueType = {
|
export type KeyValueType = {
|
||||||
key: string;
|
key: string;
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const HoverCard = HoverCardPrimitive.Root;
|
const HoverCard = HoverCardPrimitive.Root;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import * as React from 'react';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {}
|
interface InputProps extends React.InputHTMLAttributes<HTMLInputElement> {}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
import * as React from 'react';
|
import { cn } from '@/lib/utils';
|
||||||
import * as LabelPrimitive from '@radix-ui/react-label';
|
import * as LabelPrimitive from '@radix-ui/react-label';
|
||||||
import { cva, type VariantProps } from 'class-variance-authority';
|
import { cva, type VariantProps } from 'class-variance-authority';
|
||||||
|
import * as React from 'react';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
|
|
||||||
const labelVariants = cva(
|
const labelVariants = cva(
|
||||||
'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',
|
'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const Popover = PopoverPrimitive.Root;
|
const Popover = PopoverPrimitive.Root;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import React from 'react';
|
|
||||||
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
const PortalTooltipProvider = TooltipPrimitive.Provider;
|
const PortalTooltipProvider = TooltipPrimitive.Provider;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
import { DotFilledIcon } from '@radix-ui/react-icons';
|
import { DotFilledIcon } from '@radix-ui/react-icons';
|
||||||
|
import * as RadioGroupPrimitive from '@radix-ui/react-radio-group';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const RadioGroup = React.forwardRef<
|
const RadioGroup = React.forwardRef<
|
||||||
React.ElementRef<typeof RadioGroupPrimitive.Root>,
|
React.ElementRef<typeof RadioGroupPrimitive.Root>,
|
||||||
|
|||||||
@@ -1,23 +1,23 @@
|
|||||||
import { Light as SyntaxHighlighter } from 'react-syntax-highlighter';
|
import { Button } from './button';
|
||||||
import typescript from 'react-syntax-highlighter/dist/esm/languages/hljs/typescript';
|
|
||||||
import yaml from 'react-syntax-highlighter/dist/esm/languages/hljs/yaml';
|
|
||||||
import json from 'react-syntax-highlighter/dist/esm/languages/hljs/json';
|
|
||||||
import {
|
|
||||||
anOldHope,
|
|
||||||
atomOneLight,
|
|
||||||
} from 'react-syntax-highlighter/dist/esm/styles/hljs';
|
|
||||||
import CopyToClipboard from './copy-to-clipboard';
|
import CopyToClipboard from './copy-to-clipboard';
|
||||||
import { useRef, useState } from 'react';
|
import { useTheme } from '@/components/theme-provider';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import {
|
import {
|
||||||
DropdownMenu,
|
DropdownMenu,
|
||||||
DropdownMenuContent,
|
DropdownMenuContent,
|
||||||
DropdownMenuItem,
|
DropdownMenuItem,
|
||||||
DropdownMenuTrigger,
|
DropdownMenuTrigger,
|
||||||
} from '@/components/v1/ui/dropdown-menu';
|
} from '@/components/v1/ui/dropdown-menu';
|
||||||
import { Button } from './button';
|
import { cn } from '@/lib/utils';
|
||||||
import { CaretSortIcon } from '@radix-ui/react-icons';
|
import { CaretSortIcon } from '@radix-ui/react-icons';
|
||||||
import { useTheme } from '@/components/theme-provider';
|
import { useRef, useState } from 'react';
|
||||||
|
import { Light as SyntaxHighlighter } from 'react-syntax-highlighter';
|
||||||
|
import json from 'react-syntax-highlighter/dist/esm/languages/hljs/json';
|
||||||
|
import typescript from 'react-syntax-highlighter/dist/esm/languages/hljs/typescript';
|
||||||
|
import yaml from 'react-syntax-highlighter/dist/esm/languages/hljs/yaml';
|
||||||
|
import {
|
||||||
|
anOldHope,
|
||||||
|
atomOneLight,
|
||||||
|
} from 'react-syntax-highlighter/dist/esm/styles/hljs';
|
||||||
|
|
||||||
SyntaxHighlighter.registerLanguage('typescript', typescript);
|
SyntaxHighlighter.registerLanguage('typescript', typescript);
|
||||||
SyntaxHighlighter.registerLanguage('yaml', yaml);
|
SyntaxHighlighter.registerLanguage('yaml', yaml);
|
||||||
|
|||||||
@@ -1,12 +1,11 @@
|
|||||||
import * as React from 'react';
|
import { cn } from '@/lib/utils';
|
||||||
import {
|
import {
|
||||||
CheckIcon,
|
CheckIcon,
|
||||||
ChevronDownIcon,
|
ChevronDownIcon,
|
||||||
ChevronUpIcon,
|
ChevronUpIcon,
|
||||||
} from '@radix-ui/react-icons';
|
} from '@radix-ui/react-icons';
|
||||||
import * as SelectPrimitive from '@radix-ui/react-select';
|
import * as SelectPrimitive from '@radix-ui/react-select';
|
||||||
|
import * as React from 'react';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
|
|
||||||
const Select = SelectPrimitive.Root;
|
const Select = SelectPrimitive.Root;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const Separator = React.forwardRef<
|
const Separator = React.forwardRef<
|
||||||
React.ElementRef<typeof SeparatorPrimitive.Root>,
|
React.ElementRef<typeof SeparatorPrimitive.Root>,
|
||||||
|
|||||||
@@ -1,12 +1,12 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import { cva, type VariantProps } from 'class-variance-authority';
|
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import {
|
import {
|
||||||
Accordion,
|
Accordion,
|
||||||
AccordionContent,
|
AccordionContent,
|
||||||
AccordionItem,
|
AccordionItem,
|
||||||
AccordionTrigger,
|
AccordionTrigger,
|
||||||
} from './accordion';
|
} from './accordion';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
|
import { cva, type VariantProps } from 'class-variance-authority';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const stepsVariants = cva(
|
const stepsVariants = cva(
|
||||||
'ml-4 mb-12 border-l border-border pl-6 dark:border-border [counter-reset:step] flex flex-col gap-4',
|
'ml-4 mb-12 border-l border-border pl-6 dark:border-border [counter-reset:step] flex flex-col gap-4',
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import * as SwitchPrimitives from '@radix-ui/react-switch';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import * as SwitchPrimitives from '@radix-ui/react-switch';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const Switch = React.forwardRef<
|
const Switch = React.forwardRef<
|
||||||
React.ElementRef<typeof SwitchPrimitives.Root>,
|
React.ElementRef<typeof SwitchPrimitives.Root>,
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import * as React from 'react';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const Table = React.forwardRef<
|
const Table = React.forwardRef<
|
||||||
HTMLTableElement,
|
HTMLTableElement,
|
||||||
|
|||||||
@@ -1,8 +1,7 @@
|
|||||||
import * as React from 'react';
|
import { cn } from '@/lib/utils';
|
||||||
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
||||||
import { cva } from 'class-variance-authority';
|
import { cva } from 'class-variance-authority';
|
||||||
|
import * as React from 'react';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
|
|
||||||
const Tabs = TabsPrimitive.Root;
|
const Tabs = TabsPrimitive.Root;
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
import * as React from 'react';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
interface TextareaProps
|
interface TextareaProps
|
||||||
extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}
|
extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {}
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
import * as React from 'react';
|
import { cn } from '@/lib/utils';
|
||||||
import { Cross2Icon } from '@radix-ui/react-icons';
|
import { Cross2Icon } from '@radix-ui/react-icons';
|
||||||
import * as ToastPrimitives from '@radix-ui/react-toast';
|
import * as ToastPrimitives from '@radix-ui/react-toast';
|
||||||
import { cva, type VariantProps } from 'class-variance-authority';
|
import { cva, type VariantProps } from 'class-variance-authority';
|
||||||
|
import * as React from 'react';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
|
|
||||||
const ToastProvider = ToastPrimitives.Provider;
|
const ToastProvider = ToastPrimitives.Provider;
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import * as React from 'react';
|
|
||||||
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
||||||
|
|
||||||
import { cn } from '@/lib/utils';
|
import { cn } from '@/lib/utils';
|
||||||
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
||||||
|
import * as React from 'react';
|
||||||
|
|
||||||
const TooltipProvider = TooltipPrimitive.Provider;
|
const TooltipProvider = TooltipPrimitive.Provider;
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,9 @@
|
|||||||
|
import { useLocalStorageState } from '@/hooks/use-local-storage-state';
|
||||||
|
import {
|
||||||
|
RefetchInterval,
|
||||||
|
RefetchIntervalOption,
|
||||||
|
LabeledRefetchInterval,
|
||||||
|
} from '@/lib/api/api';
|
||||||
import {
|
import {
|
||||||
createContext,
|
createContext,
|
||||||
useCallback,
|
useCallback,
|
||||||
@@ -5,12 +11,6 @@ import {
|
|||||||
useMemo,
|
useMemo,
|
||||||
ReactNode,
|
ReactNode,
|
||||||
} from 'react';
|
} from 'react';
|
||||||
import {
|
|
||||||
RefetchInterval,
|
|
||||||
RefetchIntervalOption,
|
|
||||||
LabeledRefetchInterval,
|
|
||||||
} from '@/lib/api/api';
|
|
||||||
import { useLocalStorageState } from '@/hooks/use-local-storage-state';
|
|
||||||
|
|
||||||
interface RefetchIntervalContextType {
|
interface RefetchIntervalContextType {
|
||||||
isFrozen: boolean;
|
isFrozen: boolean;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { useCallback } from 'react';
|
|
||||||
import { usePostHog } from 'posthog-js/react';
|
|
||||||
import { useTenantDetails } from './use-tenant';
|
import { useTenantDetails } from './use-tenant';
|
||||||
|
import { usePostHog } from 'posthog-js/react';
|
||||||
|
import { useCallback } from 'react';
|
||||||
|
|
||||||
interface AnalyticsEvent {
|
interface AnalyticsEvent {
|
||||||
[key: string]: unknown;
|
[key: string]: unknown;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { useLocation, useParams } from 'react-router-dom';
|
|
||||||
import { generateBreadcrumbs, BreadcrumbItem } from '@/lib/breadcrumbs';
|
import { generateBreadcrumbs, BreadcrumbItem } from '@/lib/breadcrumbs';
|
||||||
|
import { useLocation, useParams } from 'react-router-dom';
|
||||||
|
|
||||||
export function useBreadcrumbs(): BreadcrumbItem[] {
|
export function useBreadcrumbs(): BreadcrumbItem[] {
|
||||||
const location = useLocation();
|
const location = useLocation();
|
||||||
|
|||||||
@@ -1,14 +1,14 @@
|
|||||||
import { useMemo, useCallback } from 'react';
|
|
||||||
import { useQuery, useMutation } from '@tanstack/react-query';
|
|
||||||
import { cloudApi } from '@/lib/api/api';
|
import { cloudApi } from '@/lib/api/api';
|
||||||
import useCloudApiMeta from '@/pages/auth/hooks/use-cloud-api-meta';
|
|
||||||
import { useApiError } from '@/lib/hooks';
|
|
||||||
import {
|
import {
|
||||||
CreateManagementTokenResponse,
|
CreateManagementTokenResponse,
|
||||||
ManagementTokenDuration,
|
ManagementTokenDuration,
|
||||||
OrganizationMember,
|
OrganizationMember,
|
||||||
TenantStatusType,
|
TenantStatusType,
|
||||||
} from '@/lib/api/generated/cloud/data-contracts';
|
} from '@/lib/api/generated/cloud/data-contracts';
|
||||||
|
import { useApiError } from '@/lib/hooks';
|
||||||
|
import useCloudApiMeta from '@/pages/auth/hooks/use-cloud-api-meta';
|
||||||
|
import { useQuery, useMutation } from '@tanstack/react-query';
|
||||||
|
import { useMemo, useCallback } from 'react';
|
||||||
|
|
||||||
export function useOrganizations() {
|
export function useOrganizations() {
|
||||||
const { isCloudEnabled } = useCloudApiMeta();
|
const { isCloudEnabled } = useCloudApiMeta();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { useQuery } from '@tanstack/react-query';
|
|
||||||
import api from '@/lib/api';
|
import api from '@/lib/api';
|
||||||
import { cloudApi } from '@/lib/api/api';
|
import { cloudApi } from '@/lib/api/api';
|
||||||
import useCloudApiMeta from '@/pages/auth/hooks/use-cloud-api-meta';
|
import useCloudApiMeta from '@/pages/auth/hooks/use-cloud-api-meta';
|
||||||
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
|
||||||
export const usePendingInvites = () => {
|
export const usePendingInvites = () => {
|
||||||
const { data: cloudMeta } = useCloudApiMeta();
|
const { data: cloudMeta } = useCloudApiMeta();
|
||||||
|
|||||||
@@ -1,3 +1,13 @@
|
|||||||
|
import { useTheme } from '@/components/theme-provider';
|
||||||
|
import { DocPage } from '@/components/v1/docs/docs-button';
|
||||||
|
import { V1Event, V1Filter, ScheduledWorkflows } from '@/lib/api';
|
||||||
|
import { ExpandedEventContent } from '@/pages/main/v1/events';
|
||||||
|
import { FilterDetailView } from '@/pages/main/v1/filters/components/filter-detail-view';
|
||||||
|
import { ExpandedScheduledRunContent } from '@/pages/main/v1/scheduled-runs/components/expanded-scheduled-run-content';
|
||||||
|
import {
|
||||||
|
TaskRunDetail,
|
||||||
|
TabOption,
|
||||||
|
} from '@/pages/main/v1/workflow-runs-v1/$run/v2components/step-run-detail/step-run-detail';
|
||||||
import {
|
import {
|
||||||
createContext,
|
createContext,
|
||||||
useCallback,
|
useCallback,
|
||||||
@@ -7,16 +17,6 @@ import {
|
|||||||
useState,
|
useState,
|
||||||
} from 'react';
|
} from 'react';
|
||||||
import { useLocation } from 'react-router-dom';
|
import { useLocation } from 'react-router-dom';
|
||||||
import {
|
|
||||||
TaskRunDetail,
|
|
||||||
TabOption,
|
|
||||||
} from '@/pages/main/v1/workflow-runs-v1/$run/v2components/step-run-detail/step-run-detail';
|
|
||||||
import { DocPage } from '@/components/v1/docs/docs-button';
|
|
||||||
import { V1Event, V1Filter, ScheduledWorkflows } from '@/lib/api';
|
|
||||||
import { FilterDetailView } from '@/pages/main/v1/filters/components/filter-detail-view';
|
|
||||||
import { ExpandedEventContent } from '@/pages/main/v1/events';
|
|
||||||
import { ExpandedScheduledRunContent } from '@/pages/main/v1/scheduled-runs/components/expanded-scheduled-run-content';
|
|
||||||
import { useTheme } from '@/components/theme-provider';
|
|
||||||
|
|
||||||
type SidePanelContent =
|
type SidePanelContent =
|
||||||
| {
|
| {
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
import { useCallback, useMemo, useState } from 'react';
|
|
||||||
import api, {
|
import api, {
|
||||||
UpdateTenantRequest,
|
UpdateTenantRequest,
|
||||||
Tenant,
|
Tenant,
|
||||||
CreateTenantRequest,
|
CreateTenantRequest,
|
||||||
queries,
|
queries,
|
||||||
} from '@/lib/api';
|
} from '@/lib/api';
|
||||||
import { useLocation, useNavigate, useParams } from 'react-router-dom';
|
|
||||||
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
|
|
||||||
import invariant from 'tiny-invariant';
|
|
||||||
import { BillingContext, lastTenantAtom } from '@/lib/atoms';
|
import { BillingContext, lastTenantAtom } from '@/lib/atoms';
|
||||||
import useCloudApiMeta from '@/pages/auth/hooks/use-cloud-api-meta';
|
|
||||||
import { Evaluate } from '@/lib/can/shared/permission.base';
|
import { Evaluate } from '@/lib/can/shared/permission.base';
|
||||||
|
import useCloudApiMeta from '@/pages/auth/hooks/use-cloud-api-meta';
|
||||||
|
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
|
||||||
import { useAtom } from 'jotai';
|
import { useAtom } from 'jotai';
|
||||||
|
import { useCallback, useMemo, useState } from 'react';
|
||||||
|
import { useLocation, useNavigate, useParams } from 'react-router-dom';
|
||||||
|
import invariant from 'tiny-invariant';
|
||||||
|
|
||||||
type Plan = 'free' | 'starter' | 'growth';
|
type Plan = 'free' | 'starter' | 'growth';
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { z } from 'zod';
|
|
||||||
import { useSearchParams } from 'react-router-dom';
|
|
||||||
import { useCallback, useMemo } from 'react';
|
|
||||||
import { ColumnFiltersState, Updater } from '@tanstack/react-table';
|
import { ColumnFiltersState, Updater } from '@tanstack/react-table';
|
||||||
|
import { useCallback, useMemo } from 'react';
|
||||||
|
import { useSearchParams } from 'react-router-dom';
|
||||||
|
import { z } from 'zod';
|
||||||
|
|
||||||
type FilterMapping<T> = {
|
type FilterMapping<T> = {
|
||||||
[K in keyof T]: string;
|
[K in keyof T]: string;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
import api from './api';
|
import api from './api';
|
||||||
|
|
||||||
export * from './generated/data-contracts';
|
export * from './generated/data-contracts';
|
||||||
export { queries } from './queries';
|
export { queries } from './queries';
|
||||||
export default api;
|
export default api;
|
||||||
|
|||||||
@@ -1,9 +1,8 @@
|
|||||||
import { createQueryKeyStore } from '@lukemorales/query-key-factory';
|
|
||||||
|
|
||||||
import api, { cloudApi } from './api';
|
|
||||||
import invariant from 'tiny-invariant';
|
|
||||||
import { WebhookWorkerCreateRequest } from '.';
|
import { WebhookWorkerCreateRequest } from '.';
|
||||||
|
import api, { cloudApi } from './api';
|
||||||
import { TemplateOptions } from './generated/cloud/data-contracts';
|
import { TemplateOptions } from './generated/cloud/data-contracts';
|
||||||
|
import { createQueryKeyStore } from '@lukemorales/query-key-factory';
|
||||||
|
import invariant from 'tiny-invariant';
|
||||||
|
|
||||||
type ListEventQuery = Parameters<typeof api.eventList>[1];
|
type ListEventQuery = Parameters<typeof api.eventList>[1];
|
||||||
type ListRateLimitsQuery = Parameters<typeof api.rateLimitList>[1];
|
type ListRateLimitsQuery = Parameters<typeof api.rateLimitList>[1];
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
import { atom } from 'jotai';
|
|
||||||
import { Tenant } from './api';
|
import { Tenant } from './api';
|
||||||
|
|
||||||
import { TenantBillingState } from './api/generated/cloud/data-contracts';
|
import { TenantBillingState } from './api/generated/cloud/data-contracts';
|
||||||
|
import { atom } from 'jotai';
|
||||||
|
|
||||||
const getInitialValue = <T>(key: string, defaultValue?: T): T | undefined => {
|
const getInitialValue = <T>(key: string, defaultValue?: T): T | undefined => {
|
||||||
const item = localStorage.getItem(key);
|
const item = localStorage.getItem(key);
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { useToast } from '@/components/hooks/use-toast';
|
|
||||||
import { AxiosError } from 'axios';
|
|
||||||
import { Dispatch, SetStateAction } from 'react';
|
|
||||||
import api, { APIErrors } from './api';
|
import api, { APIErrors } from './api';
|
||||||
import { getFieldErrors } from './utils';
|
import { getFieldErrors } from './utils';
|
||||||
|
import { useToast } from '@/components/hooks/use-toast';
|
||||||
import { useQuery } from '@tanstack/react-query';
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
import { AxiosError } from 'axios';
|
||||||
|
import { Dispatch, SetStateAction } from 'react';
|
||||||
|
|
||||||
export function useApiError(props: {
|
export function useApiError(props: {
|
||||||
setFieldErrors?: Dispatch<SetStateAction<Record<string, string>>>;
|
setFieldErrors?: Dispatch<SetStateAction<Record<string, string>>>;
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
import { useOutletContext } from 'react-router-dom';
|
|
||||||
import { TenantMember, User } from './api';
|
import { TenantMember, User } from './api';
|
||||||
|
import { useOutletContext } from 'react-router-dom';
|
||||||
|
|
||||||
export type UserContextType = { user: User };
|
export type UserContextType = { user: User };
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { type ClassValue, clsx } from 'clsx';
|
|
||||||
import { twMerge } from 'tailwind-merge';
|
|
||||||
import { APIErrors } from './api/generated/data-contracts';
|
import { APIErrors } from './api/generated/data-contracts';
|
||||||
|
import { type ClassValue, clsx } from 'clsx';
|
||||||
import CronPrettifier from 'cronstrue';
|
import CronPrettifier from 'cronstrue';
|
||||||
|
import { twMerge } from 'tailwind-merge';
|
||||||
|
|
||||||
export function cn(...inputs: ClassValue[]) {
|
export function cn(...inputs: ClassValue[]) {
|
||||||
return twMerge(clsx(inputs));
|
return twMerge(clsx(inputs));
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
import ReactDOM from 'react-dom/client';
|
|
||||||
import './index.css';
|
import './index.css';
|
||||||
import { QueryClientProvider } from '@tanstack/react-query';
|
|
||||||
import queryClient from './query-client.tsx';
|
import queryClient from './query-client.tsx';
|
||||||
import Router from './router.tsx';
|
import Router from './router.tsx';
|
||||||
import * as Sentry from '@sentry/react';
|
import * as Sentry from '@sentry/react';
|
||||||
|
import { QueryClientProvider } from '@tanstack/react-query';
|
||||||
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
|
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
|
||||||
|
import ReactDOM from 'react-dom/client';
|
||||||
|
|
||||||
if (import.meta.env.VITE_SENTRY_DSN) {
|
if (import.meta.env.VITE_SENTRY_DSN) {
|
||||||
Sentry.init({
|
Sentry.init({
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { cn } from '@/lib/utils';
|
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import { Input } from '@/components/v1/ui/input';
|
import { Input } from '@/components/v1/ui/input';
|
||||||
import { Label } from '@/components/v1/ui/label';
|
import { Label } from '@/components/v1/ui/label';
|
||||||
import { useForm } from 'react-hook-form';
|
|
||||||
import { zodResolver } from '@hookform/resolvers/zod';
|
|
||||||
import { z } from 'zod';
|
|
||||||
import { Spinner } from '@/components/v1/ui/loading.tsx';
|
import { Spinner } from '@/components/v1/ui/loading.tsx';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
|
import { zodResolver } from '@hookform/resolvers/zod';
|
||||||
|
import { useForm } from 'react-hook-form';
|
||||||
|
import { z } from 'zod';
|
||||||
|
|
||||||
const schema = z.object({
|
const schema = z.object({
|
||||||
email: z.string().email('Invalid email address'),
|
email: z.string().email('Invalid email address'),
|
||||||
|
|||||||
@@ -1,15 +1,15 @@
|
|||||||
import { Link, useNavigate } from 'react-router-dom';
|
import useApiMeta from '../hooks/use-api-meta';
|
||||||
|
import useErrorParam from '../hooks/use-error-param';
|
||||||
import { UserLoginForm } from './components/user-login-form';
|
import { UserLoginForm } from './components/user-login-form';
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import { useMutation } from '@tanstack/react-query';
|
|
||||||
import api, { UserLoginRequest } from '@/lib/api';
|
|
||||||
import { useState } from 'react';
|
|
||||||
import { useApiError } from '@/lib/hooks';
|
|
||||||
import useApiMeta from '../hooks/use-api-meta';
|
|
||||||
import { Loading } from '@/components/v1/ui/loading';
|
|
||||||
import { Icons } from '@/components/v1/ui/icons';
|
import { Icons } from '@/components/v1/ui/icons';
|
||||||
import useErrorParam from '../hooks/use-error-param';
|
import { Loading } from '@/components/v1/ui/loading';
|
||||||
|
import api, { UserLoginRequest } from '@/lib/api';
|
||||||
|
import { useApiError } from '@/lib/hooks';
|
||||||
|
import { useMutation } from '@tanstack/react-query';
|
||||||
|
import { useState } from 'react';
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
|
import { Link, useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
export default function Login() {
|
export default function Login() {
|
||||||
useErrorParam();
|
useErrorParam();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { redirect } from 'react-router-dom';
|
|
||||||
import api from '@/lib/api';
|
import api from '@/lib/api';
|
||||||
import queryClient from '@/query-client';
|
import queryClient from '@/query-client';
|
||||||
import { AxiosError, isAxiosError } from 'axios';
|
import { AxiosError, isAxiosError } from 'axios';
|
||||||
|
import { redirect } from 'react-router-dom';
|
||||||
|
|
||||||
const noAuthMiddleware = async () => {
|
const noAuthMiddleware = async () => {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
import { cn } from '@/lib/utils';
|
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import { Input } from '@/components/v1/ui/input';
|
import { Input } from '@/components/v1/ui/input';
|
||||||
import { Label } from '@/components/v1/ui/label';
|
import { Label } from '@/components/v1/ui/label';
|
||||||
import { useForm } from 'react-hook-form';
|
|
||||||
import { zodResolver } from '@hookform/resolvers/zod';
|
|
||||||
import { z } from 'zod';
|
|
||||||
import { Spinner } from '@/components/v1/ui/loading.tsx';
|
import { Spinner } from '@/components/v1/ui/loading.tsx';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
|
import { zodResolver } from '@hookform/resolvers/zod';
|
||||||
|
import { useForm } from 'react-hook-form';
|
||||||
|
import { z } from 'zod';
|
||||||
|
|
||||||
const schema = z.object({
|
const schema = z.object({
|
||||||
name: z.string().min(3, 'Name must be at least 3 characters long'),
|
name: z.string().min(3, 'Name must be at least 3 characters long'),
|
||||||
|
|||||||
@@ -1,18 +1,18 @@
|
|||||||
import { Link, useNavigate } from 'react-router-dom';
|
|
||||||
import { UserRegisterForm } from './components/user-register-form';
|
|
||||||
import { useMutation } from '@tanstack/react-query';
|
|
||||||
import api, { UserRegisterRequest } from '@/lib/api';
|
|
||||||
import { useEffect, useState } from 'react';
|
|
||||||
import { useApiError } from '@/lib/hooks';
|
|
||||||
import useApiMeta from '../hooks/use-api-meta';
|
import useApiMeta from '../hooks/use-api-meta';
|
||||||
import { Loading } from '@/components/v1/ui/loading';
|
|
||||||
import { GithubLogin, GoogleLogin, OrContinueWith } from '../login';
|
|
||||||
import useErrorParam from '../hooks/use-error-param';
|
import useErrorParam from '../hooks/use-error-param';
|
||||||
import React from 'react';
|
import { GithubLogin, GoogleLogin, OrContinueWith } from '../login';
|
||||||
|
import { UserRegisterForm } from './components/user-register-form';
|
||||||
|
import { Loading } from '@/components/v1/ui/loading';
|
||||||
import {
|
import {
|
||||||
POSTHOG_DISTINCT_ID_LOCAL_STORAGE_KEY,
|
POSTHOG_DISTINCT_ID_LOCAL_STORAGE_KEY,
|
||||||
POSTHOG_SESSION_ID_LOCAL_STORAGE_KEY,
|
POSTHOG_SESSION_ID_LOCAL_STORAGE_KEY,
|
||||||
} from '@/hooks/use-analytics';
|
} from '@/hooks/use-analytics';
|
||||||
|
import api, { UserRegisterRequest } from '@/lib/api';
|
||||||
|
import { useApiError } from '@/lib/hooks';
|
||||||
|
import { useMutation } from '@tanstack/react-query';
|
||||||
|
import { useEffect, useState } from 'react';
|
||||||
|
import React from 'react';
|
||||||
|
import { Link, useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
export default function Register() {
|
export default function Register() {
|
||||||
useErrorParam();
|
useErrorParam();
|
||||||
|
|||||||
@@ -1,16 +1,16 @@
|
|||||||
import MainNav from '@/components/molecules/nav-bar/nav-bar';
|
import MainNav from '@/components/molecules/nav-bar/nav-bar';
|
||||||
import { Outlet, useNavigate } from 'react-router-dom';
|
|
||||||
import api, { queries, User } from '@/lib/api';
|
|
||||||
import { Loading } from '@/components/v1/ui/loading.tsx';
|
|
||||||
import { useMutation, useQuery } from '@tanstack/react-query';
|
|
||||||
import SupportChat from '@/components/molecules/support-chat';
|
import SupportChat from '@/components/molecules/support-chat';
|
||||||
import { PostHogProvider } from '@/providers/posthog';
|
import { Loading } from '@/components/v1/ui/loading.tsx';
|
||||||
import { useEffect } from 'react';
|
|
||||||
import { useContextFromParent } from '@/lib/outlet';
|
|
||||||
import { AxiosError } from 'axios';
|
|
||||||
import { useInactivityDetection } from '@/pages/auth/hooks/use-inactivity-detection';
|
|
||||||
import { cloudApi } from '@/lib/api/api';
|
|
||||||
import { useTenantDetails } from '@/hooks/use-tenant';
|
import { useTenantDetails } from '@/hooks/use-tenant';
|
||||||
|
import api, { queries, User } from '@/lib/api';
|
||||||
|
import { cloudApi } from '@/lib/api/api';
|
||||||
|
import { useContextFromParent } from '@/lib/outlet';
|
||||||
|
import { useInactivityDetection } from '@/pages/auth/hooks/use-inactivity-detection';
|
||||||
|
import { PostHogProvider } from '@/providers/posthog';
|
||||||
|
import { useMutation, useQuery } from '@tanstack/react-query';
|
||||||
|
import { AxiosError } from 'axios';
|
||||||
|
import { useEffect } from 'react';
|
||||||
|
import { Outlet, useNavigate } from 'react-router-dom';
|
||||||
|
|
||||||
export default function Authenticated() {
|
export default function Authenticated() {
|
||||||
const { tenant } = useTenantDetails();
|
const { tenant } = useTenantDetails();
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import React from 'react';
|
|
||||||
import { Spinner } from '@/components/v1/ui/loading';
|
import { Spinner } from '@/components/v1/ui/loading';
|
||||||
import { queries } from '@/lib/api';
|
import { queries } from '@/lib/api';
|
||||||
import { useQuery } from '@tanstack/react-query';
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
import React from 'react';
|
||||||
|
|
||||||
export const VersionInfo: React.FC = () => {
|
export const VersionInfo: React.FC = () => {
|
||||||
const { data, isLoading, isError, error } = useQuery({
|
const { data, isLoading, isError, error } = useQuery({
|
||||||
|
|||||||
@@ -1,11 +1,10 @@
|
|||||||
import { ColumnDef } from '@tanstack/react-table';
|
|
||||||
import { Badge } from '@/components/v1/ui/badge';
|
|
||||||
import { V1Event } from '@/lib/api';
|
|
||||||
import { Button } from '@/components/v1/ui/button';
|
|
||||||
|
|
||||||
import { AdditionalMetadata } from './additional-metadata';
|
import { AdditionalMetadata } from './additional-metadata';
|
||||||
import RelativeDate from '@/components/v1/molecules/relative-date';
|
|
||||||
import { DataTableColumnHeader } from '@/components/v1/molecules/data-table/data-table-column-header';
|
import { DataTableColumnHeader } from '@/components/v1/molecules/data-table/data-table-column-header';
|
||||||
|
import RelativeDate from '@/components/v1/molecules/relative-date';
|
||||||
|
import { Badge } from '@/components/v1/ui/badge';
|
||||||
|
import { Button } from '@/components/v1/ui/button';
|
||||||
|
import { V1Event } from '@/lib/api';
|
||||||
|
import { ColumnDef } from '@tanstack/react-table';
|
||||||
|
|
||||||
export const EventColumn = {
|
export const EventColumn = {
|
||||||
id: 'Event ID',
|
id: 'Event ID',
|
||||||
|
|||||||
@@ -1,9 +1,4 @@
|
|||||||
import { usePagination } from '@/hooks/use-pagination';
|
import { workflowRunStatusFilters } from '../../workflow-runs-v1/hooks/use-toolbar-filters';
|
||||||
import { useCurrentTenantId } from '@/hooks/use-tenant';
|
|
||||||
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
|
||||||
import api, { queries, V1TaskStatus } from '@/lib/api';
|
|
||||||
import { useQuery } from '@tanstack/react-query';
|
|
||||||
import { useMemo } from 'react';
|
|
||||||
import {
|
import {
|
||||||
keyKey,
|
keyKey,
|
||||||
workflowKey,
|
workflowKey,
|
||||||
@@ -13,9 +8,14 @@ import {
|
|||||||
scopeKey,
|
scopeKey,
|
||||||
} from '../components/event-columns';
|
} from '../components/event-columns';
|
||||||
import { FilterOption } from '@/components/v1/molecules/data-table/data-table-toolbar';
|
import { FilterOption } from '@/components/v1/molecules/data-table/data-table-toolbar';
|
||||||
|
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
||||||
|
import { usePagination } from '@/hooks/use-pagination';
|
||||||
|
import { useCurrentTenantId } from '@/hooks/use-tenant';
|
||||||
import { useZodColumnFilters } from '@/hooks/use-zod-column-filters';
|
import { useZodColumnFilters } from '@/hooks/use-zod-column-filters';
|
||||||
|
import api, { queries, V1TaskStatus } from '@/lib/api';
|
||||||
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
import { useMemo } from 'react';
|
||||||
import { z } from 'zod';
|
import { z } from 'zod';
|
||||||
import { workflowRunStatusFilters } from '../../workflow-runs-v1/hooks/use-toolbar-filters';
|
|
||||||
|
|
||||||
type UseEventsProps = {
|
type UseEventsProps = {
|
||||||
key: string;
|
key: string;
|
||||||
|
|||||||
@@ -1,3 +1,10 @@
|
|||||||
|
import {
|
||||||
|
FilterColumn,
|
||||||
|
filterColumns,
|
||||||
|
} from '../filters/components/filter-columns';
|
||||||
|
import { useFilters } from '../filters/hooks/use-filters';
|
||||||
|
import { RunsTable } from '../workflow-runs-v1/components/runs-table';
|
||||||
|
import { RunsProvider } from '../workflow-runs-v1/hooks/runs-provider';
|
||||||
import {
|
import {
|
||||||
columns,
|
columns,
|
||||||
EventColumn,
|
EventColumn,
|
||||||
@@ -8,26 +15,18 @@ import {
|
|||||||
statusKey,
|
statusKey,
|
||||||
workflowKey,
|
workflowKey,
|
||||||
} from './components/event-columns';
|
} from './components/event-columns';
|
||||||
import { Separator } from '@/components/v1/ui/separator';
|
|
||||||
import { useMemo, useState } from 'react';
|
|
||||||
import { VisibilityState } from '@tanstack/react-table';
|
|
||||||
import { V1Event, V1Filter } from '@/lib/api';
|
|
||||||
import { ToolbarType } from '@/components/v1/molecules/data-table/data-table-toolbar';
|
|
||||||
import RelativeDate from '@/components/v1/molecules/relative-date';
|
|
||||||
import { DataTable } from '@/components/v1/molecules/data-table/data-table';
|
|
||||||
import { RunsTable } from '../workflow-runs-v1/components/runs-table';
|
|
||||||
import { RunsProvider } from '../workflow-runs-v1/hooks/runs-provider';
|
|
||||||
import { CodeHighlighter } from '@/components/v1/ui/code-highlighter';
|
|
||||||
|
|
||||||
import {
|
|
||||||
FilterColumn,
|
|
||||||
filterColumns,
|
|
||||||
} from '../filters/components/filter-columns';
|
|
||||||
import { useFilters } from '../filters/hooks/use-filters';
|
|
||||||
import { useSidePanel } from '@/hooks/use-side-panel';
|
|
||||||
import { useEvents } from './hooks/use-events';
|
import { useEvents } from './hooks/use-events';
|
||||||
import { DocsButton } from '@/components/v1/docs/docs-button';
|
import { DocsButton } from '@/components/v1/docs/docs-button';
|
||||||
|
import { DataTable } from '@/components/v1/molecules/data-table/data-table';
|
||||||
|
import { ToolbarType } from '@/components/v1/molecules/data-table/data-table-toolbar';
|
||||||
|
import RelativeDate from '@/components/v1/molecules/relative-date';
|
||||||
|
import { CodeHighlighter } from '@/components/v1/ui/code-highlighter';
|
||||||
|
import { Separator } from '@/components/v1/ui/separator';
|
||||||
|
import { useSidePanel } from '@/hooks/use-side-panel';
|
||||||
|
import { V1Event, V1Filter } from '@/lib/api';
|
||||||
import { docsPages } from '@/lib/generated/docs';
|
import { docsPages } from '@/lib/generated/docs';
|
||||||
|
import { VisibilityState } from '@tanstack/react-table';
|
||||||
|
import { useMemo, useState } from 'react';
|
||||||
|
|
||||||
export default function Events() {
|
export default function Events() {
|
||||||
const [openMetadataPopover, setOpenMetadataPopover] = useState<string | null>(
|
const [openMetadataPopover, setOpenMetadataPopover] = useState<string | null>(
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
import { ColumnDef } from '@tanstack/react-table';
|
|
||||||
import { V1Filter } from '@/lib/api';
|
|
||||||
import { DataTableColumnHeader } from '@/components/v1/molecules/data-table/data-table-column-header';
|
import { DataTableColumnHeader } from '@/components/v1/molecules/data-table/data-table-column-header';
|
||||||
import { CodeHighlighter } from '@/components/v1/ui/code-highlighter';
|
|
||||||
import { CheckIcon } from 'lucide-react';
|
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
|
import { CodeHighlighter } from '@/components/v1/ui/code-highlighter';
|
||||||
|
import { V1Filter } from '@/lib/api';
|
||||||
|
import { ColumnDef } from '@tanstack/react-table';
|
||||||
|
import { CheckIcon } from 'lucide-react';
|
||||||
|
|
||||||
export const FilterColumn = {
|
export const FilterColumn = {
|
||||||
id: 'ID',
|
id: 'ID',
|
||||||
|
|||||||
@@ -1,4 +1,6 @@
|
|||||||
import { useState } from 'react';
|
import { createFilterSchema, CreateFilterFormData } from '../schemas';
|
||||||
|
import { FilterOption } from '@/components/v1/molecules/data-table/data-table-toolbar';
|
||||||
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import {
|
import {
|
||||||
Dialog,
|
Dialog,
|
||||||
DialogContent,
|
DialogContent,
|
||||||
@@ -6,10 +8,8 @@ import {
|
|||||||
DialogTitle,
|
DialogTitle,
|
||||||
DialogFooter,
|
DialogFooter,
|
||||||
} from '@/components/v1/ui/dialog';
|
} from '@/components/v1/ui/dialog';
|
||||||
import { Button } from '@/components/v1/ui/button';
|
|
||||||
import { Input } from '@/components/v1/ui/input';
|
import { Input } from '@/components/v1/ui/input';
|
||||||
import { Label } from '@/components/v1/ui/label';
|
import { Label } from '@/components/v1/ui/label';
|
||||||
import { Textarea } from '@/components/v1/ui/textarea';
|
|
||||||
import {
|
import {
|
||||||
Select,
|
Select,
|
||||||
SelectContent,
|
SelectContent,
|
||||||
@@ -17,12 +17,12 @@ import {
|
|||||||
SelectTrigger,
|
SelectTrigger,
|
||||||
SelectValue,
|
SelectValue,
|
||||||
} from '@/components/v1/ui/select';
|
} from '@/components/v1/ui/select';
|
||||||
import { Filter } from 'lucide-react';
|
import { Textarea } from '@/components/v1/ui/textarea';
|
||||||
import { FilterOption } from '@/components/v1/molecules/data-table/data-table-toolbar';
|
|
||||||
import { useForm, Controller } from 'react-hook-form';
|
|
||||||
import { zodResolver } from '@hookform/resolvers/zod';
|
|
||||||
import { createFilterSchema, CreateFilterFormData } from '../schemas';
|
|
||||||
import { V1CreateFilterRequest } from '@/lib/api';
|
import { V1CreateFilterRequest } from '@/lib/api';
|
||||||
|
import { zodResolver } from '@hookform/resolvers/zod';
|
||||||
|
import { Filter } from 'lucide-react';
|
||||||
|
import { useState } from 'react';
|
||||||
|
import { useForm, Controller } from 'react-hook-form';
|
||||||
|
|
||||||
interface FilterCreateFormProps {
|
interface FilterCreateFormProps {
|
||||||
isOpen: boolean;
|
isOpen: boolean;
|
||||||
|
|||||||
@@ -1,8 +1,6 @@
|
|||||||
import { useCallback, useState } from 'react';
|
import { useFilterDetails, useFilters } from '../hooks/use-filters';
|
||||||
|
import { updateFilterSchema, UpdateFilterFormData } from '../schemas';
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import { Input } from '@/components/v1/ui/input';
|
|
||||||
import { Label } from '@/components/v1/ui/label';
|
|
||||||
import { Textarea } from '@/components/v1/ui/textarea';
|
|
||||||
import {
|
import {
|
||||||
Dialog,
|
Dialog,
|
||||||
DialogContent,
|
DialogContent,
|
||||||
@@ -11,12 +9,14 @@ import {
|
|||||||
DialogDescription,
|
DialogDescription,
|
||||||
DialogFooter,
|
DialogFooter,
|
||||||
} from '@/components/v1/ui/dialog';
|
} from '@/components/v1/ui/dialog';
|
||||||
import { Trash2Icon, EditIcon, SaveIcon, XIcon } from 'lucide-react';
|
import { Input } from '@/components/v1/ui/input';
|
||||||
import { useForm } from 'react-hook-form';
|
import { Label } from '@/components/v1/ui/label';
|
||||||
import { zodResolver } from '@hookform/resolvers/zod';
|
import { Textarea } from '@/components/v1/ui/textarea';
|
||||||
import { useFilterDetails, useFilters } from '../hooks/use-filters';
|
|
||||||
import { updateFilterSchema, UpdateFilterFormData } from '../schemas';
|
|
||||||
import { useSidePanel } from '@/hooks/use-side-panel';
|
import { useSidePanel } from '@/hooks/use-side-panel';
|
||||||
|
import { zodResolver } from '@hookform/resolvers/zod';
|
||||||
|
import { Trash2Icon, EditIcon, SaveIcon, XIcon } from 'lucide-react';
|
||||||
|
import { useCallback, useState } from 'react';
|
||||||
|
import { useForm } from 'react-hook-form';
|
||||||
|
|
||||||
interface FilterDetailViewProps {
|
interface FilterDetailViewProps {
|
||||||
filterId: string;
|
filterId: string;
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
|
import { scopeKey, workflowIdKey } from '../components/filter-columns';
|
||||||
|
import { FilterOption } from '@/components/v1/molecules/data-table/data-table-toolbar';
|
||||||
|
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
||||||
import { usePagination } from '@/hooks/use-pagination';
|
import { usePagination } from '@/hooks/use-pagination';
|
||||||
import { useCurrentTenantId } from '@/hooks/use-tenant';
|
import { useCurrentTenantId } from '@/hooks/use-tenant';
|
||||||
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
|
||||||
import api, {
|
import api, {
|
||||||
queries,
|
queries,
|
||||||
V1CreateFilterRequest,
|
V1CreateFilterRequest,
|
||||||
@@ -10,8 +12,6 @@ import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
|
|||||||
import { ColumnFiltersState, Updater } from '@tanstack/react-table';
|
import { ColumnFiltersState, Updater } from '@tanstack/react-table';
|
||||||
import { useCallback, useMemo } from 'react';
|
import { useCallback, useMemo } from 'react';
|
||||||
import { useSearchParams } from 'react-router-dom';
|
import { useSearchParams } from 'react-router-dom';
|
||||||
import { scopeKey, workflowIdKey } from '../components/filter-columns';
|
|
||||||
import { FilterOption } from '@/components/v1/molecules/data-table/data-table-toolbar';
|
|
||||||
|
|
||||||
type UseFiltersProps = {
|
type UseFiltersProps = {
|
||||||
key: string;
|
key: string;
|
||||||
|
|||||||
@@ -6,15 +6,15 @@ import {
|
|||||||
workflowIdKey,
|
workflowIdKey,
|
||||||
} from './components/filter-columns';
|
} from './components/filter-columns';
|
||||||
import { FilterCreateButton } from './components/filter-create-form';
|
import { FilterCreateButton } from './components/filter-create-form';
|
||||||
import { useState } from 'react';
|
|
||||||
import { VisibilityState } from '@tanstack/react-table';
|
|
||||||
import { ToolbarType } from '@/components/v1/molecules/data-table/data-table-toolbar';
|
|
||||||
import { DataTable } from '@/components/v1/molecules/data-table/data-table';
|
|
||||||
import { useFilters } from './hooks/use-filters';
|
import { useFilters } from './hooks/use-filters';
|
||||||
import { V1Filter } from '@/lib/api';
|
|
||||||
import { useSidePanel } from '@/hooks/use-side-panel';
|
|
||||||
import { DocsButton } from '@/components/v1/docs/docs-button';
|
import { DocsButton } from '@/components/v1/docs/docs-button';
|
||||||
|
import { DataTable } from '@/components/v1/molecules/data-table/data-table';
|
||||||
|
import { ToolbarType } from '@/components/v1/molecules/data-table/data-table-toolbar';
|
||||||
|
import { useSidePanel } from '@/hooks/use-side-panel';
|
||||||
|
import { V1Filter } from '@/lib/api';
|
||||||
import { docsPages } from '@/lib/generated/docs';
|
import { docsPages } from '@/lib/generated/docs';
|
||||||
|
import { VisibilityState } from '@tanstack/react-table';
|
||||||
|
import { useState } from 'react';
|
||||||
|
|
||||||
export default function Filters() {
|
export default function Filters() {
|
||||||
const sidePanel = useSidePanel();
|
const sidePanel = useSidePanel();
|
||||||
|
|||||||
@@ -1,18 +1,8 @@
|
|||||||
import { Button } from '@/components/v1/ui/button';
|
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import {
|
|
||||||
CalendarDaysIcon,
|
|
||||||
CpuChipIcon,
|
|
||||||
PlayIcon,
|
|
||||||
ScaleIcon,
|
|
||||||
ServerStackIcon,
|
|
||||||
Squares2X2Icon,
|
|
||||||
} from '@heroicons/react/24/outline';
|
|
||||||
|
|
||||||
import { SidePanel } from '@/components/side-panel';
|
import { SidePanel } from '@/components/side-panel';
|
||||||
import { useSidebar } from '@/components/sidebar-provider';
|
import { useSidebar } from '@/components/sidebar-provider';
|
||||||
import { OrganizationSelector } from '@/components/v1/molecules/nav-bar/organization-selector';
|
import { OrganizationSelector } from '@/components/v1/molecules/nav-bar/organization-selector';
|
||||||
import { TenantSwitcher } from '@/components/v1/molecules/nav-bar/tenant-switcher';
|
import { TenantSwitcher } from '@/components/v1/molecules/nav-bar/tenant-switcher';
|
||||||
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import {
|
import {
|
||||||
Collapsible,
|
Collapsible,
|
||||||
CollapsibleContent,
|
CollapsibleContent,
|
||||||
@@ -26,8 +16,17 @@ import {
|
|||||||
UserContextType,
|
UserContextType,
|
||||||
useContextFromParent,
|
useContextFromParent,
|
||||||
} from '@/lib/outlet';
|
} from '@/lib/outlet';
|
||||||
|
import { cn } from '@/lib/utils';
|
||||||
import useCloudApiMeta from '@/pages/auth/hooks/use-cloud-api-meta';
|
import useCloudApiMeta from '@/pages/auth/hooks/use-cloud-api-meta';
|
||||||
import useCloudFeatureFlags from '@/pages/auth/hooks/use-cloud-feature-flags';
|
import useCloudFeatureFlags from '@/pages/auth/hooks/use-cloud-feature-flags';
|
||||||
|
import {
|
||||||
|
CalendarDaysIcon,
|
||||||
|
CpuChipIcon,
|
||||||
|
PlayIcon,
|
||||||
|
ScaleIcon,
|
||||||
|
ServerStackIcon,
|
||||||
|
Squares2X2Icon,
|
||||||
|
} from '@heroicons/react/24/outline';
|
||||||
import { ClockIcon, GearIcon } from '@radix-ui/react-icons';
|
import { ClockIcon, GearIcon } from '@radix-ui/react-icons';
|
||||||
import { Filter, SquareActivityIcon, WebhookIcon } from 'lucide-react';
|
import { Filter, SquareActivityIcon, WebhookIcon } from 'lucide-react';
|
||||||
import React, { useCallback } from 'react';
|
import React, { useCallback } from 'react';
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
import { queries } from '@/lib/api';
|
import GithubButton from './github-button';
|
||||||
import { useQuery } from '@tanstack/react-query';
|
import { ManagedWorkerBuild } from './managed-worker-build';
|
||||||
|
import { ManagedWorkerIaC } from './managed-worker-iac';
|
||||||
|
import RelativeDate from '@/components/v1/molecules/relative-date';
|
||||||
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import {
|
import {
|
||||||
Card,
|
Card,
|
||||||
CardContent,
|
CardContent,
|
||||||
@@ -9,21 +12,18 @@ import {
|
|||||||
CardTitle,
|
CardTitle,
|
||||||
} from '@/components/v1/ui/card';
|
} from '@/components/v1/ui/card';
|
||||||
import { Spinner } from '@/components/v1/ui/loading';
|
import { Spinner } from '@/components/v1/ui/loading';
|
||||||
import RelativeDate from '@/components/v1/molecules/relative-date';
|
import { Separator } from '@/components/v1/ui/separator';
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
||||||
import { ArrowRightIcon, ChevronLeftIcon } from '@radix-ui/react-icons';
|
import { queries } from '@/lib/api';
|
||||||
import { cn } from '@/lib/utils';
|
|
||||||
import { useState } from 'react';
|
|
||||||
import {
|
import {
|
||||||
ManagedWorker,
|
ManagedWorker,
|
||||||
ManagedWorkerEvent,
|
ManagedWorkerEvent,
|
||||||
ManagedWorkerEventStatus,
|
ManagedWorkerEventStatus,
|
||||||
} from '@/lib/api/generated/cloud/data-contracts';
|
} from '@/lib/api/generated/cloud/data-contracts';
|
||||||
import { Separator } from '@/components/v1/ui/separator';
|
import { cn } from '@/lib/utils';
|
||||||
import { ManagedWorkerBuild } from './managed-worker-build';
|
import { ArrowRightIcon, ChevronLeftIcon } from '@radix-ui/react-icons';
|
||||||
import GithubButton from './github-button';
|
import { useQuery } from '@tanstack/react-query';
|
||||||
import { ManagedWorkerIaC } from './managed-worker-iac';
|
import { useState } from 'react';
|
||||||
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
|
||||||
|
|
||||||
export function ManagedWorkerActivity({
|
export function ManagedWorkerActivity({
|
||||||
managedWorker,
|
managedWorker,
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { queries } from '@/lib/api';
|
|
||||||
import { useQuery } from '@tanstack/react-query';
|
|
||||||
import LoggingComponent from '@/components/v1/cloud/logging/logs';
|
import LoggingComponent from '@/components/v1/cloud/logging/logs';
|
||||||
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
||||||
|
import { queries } from '@/lib/api';
|
||||||
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
|
||||||
export function ManagedWorkerBuildLogs({ buildId }: { buildId: string }) {
|
export function ManagedWorkerBuildLogs({ buildId }: { buildId: string }) {
|
||||||
const { refetchInterval } = useRefetchInterval();
|
const { refetchInterval } = useRefetchInterval();
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { queries } from '@/lib/api';
|
|
||||||
import { useQuery } from '@tanstack/react-query';
|
|
||||||
import { Spinner } from '@/components/v1/ui/loading';
|
|
||||||
import { ManagedWorkerBuildLogs } from './managed-worker-build-logs';
|
import { ManagedWorkerBuildLogs } from './managed-worker-build-logs';
|
||||||
import RelativeDate from '@/components/v1/molecules/relative-date';
|
import RelativeDate from '@/components/v1/molecules/relative-date';
|
||||||
|
import { Spinner } from '@/components/v1/ui/loading';
|
||||||
|
import { queries } from '@/lib/api';
|
||||||
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
|
||||||
export function ManagedWorkerBuild({ buildId }: { buildId: string }) {
|
export function ManagedWorkerBuild({ buildId }: { buildId: string }) {
|
||||||
const getBuildQuery = useQuery({
|
const getBuildQuery = useQuery({
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
import { queries } from '@/lib/api';
|
|
||||||
import { useQuery } from '@tanstack/react-query';
|
|
||||||
import LoggingComponent from '@/components/v1/cloud/logging/logs';
|
import LoggingComponent from '@/components/v1/cloud/logging/logs';
|
||||||
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
||||||
|
import { queries } from '@/lib/api';
|
||||||
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
|
||||||
export function ManagedWorkerIaCLogs({
|
export function ManagedWorkerIaCLogs({
|
||||||
managedWorkerId,
|
managedWorkerId,
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
import { ColumnDef } from '@tanstack/react-table';
|
|
||||||
import { DataTableColumnHeader } from '@/components/v1/molecules/data-table/data-table-column-header';
|
import { DataTableColumnHeader } from '@/components/v1/molecules/data-table/data-table-column-header';
|
||||||
import { Instance } from '@/lib/api/generated/cloud/data-contracts';
|
import { Instance } from '@/lib/api/generated/cloud/data-contracts';
|
||||||
|
import { ColumnDef } from '@tanstack/react-table';
|
||||||
|
|
||||||
type InstanceWithMetadata = Instance & {
|
type InstanceWithMetadata = Instance & {
|
||||||
metadata: {
|
metadata: {
|
||||||
|
|||||||
@@ -1,9 +1,6 @@
|
|||||||
import { useMemo, useState } from 'react';
|
|
||||||
import { useQuery } from '@tanstack/react-query';
|
|
||||||
import { queries } from '@/lib/api';
|
|
||||||
import { DataTable } from '@/components/v1/molecules/data-table/data-table.tsx';
|
|
||||||
import { columns } from './managed-worker-instances-columns';
|
import { columns } from './managed-worker-instances-columns';
|
||||||
import { Loading } from '@/components/v1/ui/loading.tsx';
|
import { DataTable } from '@/components/v1/molecules/data-table/data-table.tsx';
|
||||||
|
import { Badge } from '@/components/v1/ui/badge';
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import {
|
import {
|
||||||
Card,
|
Card,
|
||||||
@@ -12,13 +9,16 @@ import {
|
|||||||
CardDescription,
|
CardDescription,
|
||||||
CardFooter,
|
CardFooter,
|
||||||
} from '@/components/v1/ui/card';
|
} from '@/components/v1/ui/card';
|
||||||
|
import { Loading } from '@/components/v1/ui/loading.tsx';
|
||||||
|
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
||||||
|
import { queries } from '@/lib/api';
|
||||||
|
import { Instance } from '@/lib/api/generated/cloud/data-contracts';
|
||||||
import { capitalize } from '@/lib/utils';
|
import { capitalize } from '@/lib/utils';
|
||||||
import { ArrowPathIcon } from '@heroicons/react/24/outline';
|
import { ArrowPathIcon } from '@heroicons/react/24/outline';
|
||||||
|
import { useQuery } from '@tanstack/react-query';
|
||||||
import { VisibilityState } from '@tanstack/react-table';
|
import { VisibilityState } from '@tanstack/react-table';
|
||||||
|
import { useMemo, useState } from 'react';
|
||||||
import { BiCard, BiTable } from 'react-icons/bi';
|
import { BiCard, BiTable } from 'react-icons/bi';
|
||||||
import { Instance } from '@/lib/api/generated/cloud/data-contracts';
|
|
||||||
import { Badge } from '@/components/v1/ui/badge';
|
|
||||||
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
|
||||||
|
|
||||||
export function ManagedWorkerInstancesTable({
|
export function ManagedWorkerInstancesTable({
|
||||||
managedWorkerId,
|
managedWorkerId,
|
||||||
|
|||||||
@@ -1,17 +1,17 @@
|
|||||||
|
import LoggingComponent from '@/components/v1/cloud/logging/logs';
|
||||||
|
import { DateTimePicker } from '@/components/v1/molecules/time-picker/date-time-picker';
|
||||||
|
import { Button } from '@/components/v1/ui/button';
|
||||||
|
import { Input } from '@/components/v1/ui/input';
|
||||||
|
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
||||||
import { queries } from '@/lib/api';
|
import { queries } from '@/lib/api';
|
||||||
import { useQuery } from '@tanstack/react-query';
|
|
||||||
import {
|
import {
|
||||||
LogLine,
|
LogLine,
|
||||||
ManagedWorker,
|
ManagedWorker,
|
||||||
} from '@/lib/api/generated/cloud/data-contracts';
|
} from '@/lib/api/generated/cloud/data-contracts';
|
||||||
import LoggingComponent from '@/components/v1/cloud/logging/logs';
|
|
||||||
import { useState, useEffect } from 'react';
|
|
||||||
import { Input } from '@/components/v1/ui/input';
|
|
||||||
import { DateTimePicker } from '@/components/v1/molecules/time-picker/date-time-picker';
|
|
||||||
import { Button } from '@/components/v1/ui/button';
|
|
||||||
import { ArrowPathIcon } from '@heroicons/react/24/outline';
|
|
||||||
import { ListCloudLogsQuery } from '@/lib/api/queries';
|
import { ListCloudLogsQuery } from '@/lib/api/queries';
|
||||||
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
import { ArrowPathIcon } from '@heroicons/react/24/outline';
|
||||||
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
import { useState, useEffect } from 'react';
|
||||||
|
|
||||||
export function ManagedWorkerLogs({
|
export function ManagedWorkerLogs({
|
||||||
managedWorker,
|
managedWorker,
|
||||||
|
|||||||
@@ -1,22 +1,10 @@
|
|||||||
import { queries } from '@/lib/api';
|
|
||||||
import { useQuery } from '@tanstack/react-query';
|
|
||||||
import {
|
|
||||||
ManagedWorker,
|
|
||||||
Matrix,
|
|
||||||
} from '@/lib/api/generated/cloud/data-contracts';
|
|
||||||
import { Loading } from '@/components/v1/ui/loading';
|
|
||||||
import { useEffect, useMemo, useState } from 'react';
|
|
||||||
import { Separator } from '@/components/v1/ui/separator';
|
|
||||||
import { DateTimePicker } from '@/components/v1/molecules/time-picker/date-time-picker';
|
|
||||||
import { Button } from '@/components/v1/ui/button';
|
|
||||||
import { XCircleIcon } from '@heroicons/react/24/outline';
|
|
||||||
import {
|
import {
|
||||||
DataPoint,
|
DataPoint,
|
||||||
ZoomableChart,
|
ZoomableChart,
|
||||||
} from '@/components/v1/molecules/charts/zoomable';
|
} from '@/components/v1/molecules/charts/zoomable';
|
||||||
import { useAtom } from 'jotai';
|
import { DateTimePicker } from '@/components/v1/molecules/time-picker/date-time-picker';
|
||||||
import { lastWorkerMetricsTimeRangeAtom } from '@/lib/atoms';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import { getCreatedAfterFromTimeRange } from '@/pages/main/workflow-runs/components/workflow-runs-table';
|
import { Loading } from '@/components/v1/ui/loading';
|
||||||
import {
|
import {
|
||||||
Select,
|
Select,
|
||||||
SelectContent,
|
SelectContent,
|
||||||
@@ -24,7 +12,19 @@ import {
|
|||||||
SelectTrigger,
|
SelectTrigger,
|
||||||
SelectValue,
|
SelectValue,
|
||||||
} from '@/components/v1/ui/select';
|
} from '@/components/v1/ui/select';
|
||||||
|
import { Separator } from '@/components/v1/ui/separator';
|
||||||
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
||||||
|
import { queries } from '@/lib/api';
|
||||||
|
import {
|
||||||
|
ManagedWorker,
|
||||||
|
Matrix,
|
||||||
|
} from '@/lib/api/generated/cloud/data-contracts';
|
||||||
|
import { lastWorkerMetricsTimeRangeAtom } from '@/lib/atoms';
|
||||||
|
import { getCreatedAfterFromTimeRange } from '@/pages/main/workflow-runs/components/workflow-runs-table';
|
||||||
|
import { XCircleIcon } from '@heroicons/react/24/outline';
|
||||||
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
import { useAtom } from 'jotai';
|
||||||
|
import { useEffect, useMemo, useState } from 'react';
|
||||||
|
|
||||||
export function ManagedWorkerMetrics({
|
export function ManagedWorkerMetrics({
|
||||||
managedWorker,
|
managedWorker,
|
||||||
|
|||||||
@@ -1,21 +1,3 @@
|
|||||||
import { queries } from '@/lib/api';
|
|
||||||
import { useEffect, useMemo, useState } from 'react';
|
|
||||||
import { Button } from '@/components/v1/ui/button';
|
|
||||||
import { useQuery } from '@tanstack/react-query';
|
|
||||||
import { ExclamationTriangleIcon, PlusIcon } from '@heroicons/react/24/outline';
|
|
||||||
import {
|
|
||||||
Select,
|
|
||||||
SelectContent,
|
|
||||||
SelectItem,
|
|
||||||
SelectTrigger,
|
|
||||||
SelectValue,
|
|
||||||
} from '@/components/v1/ui/select';
|
|
||||||
import { z } from 'zod';
|
|
||||||
import { Controller, useForm } from 'react-hook-form';
|
|
||||||
import { zodResolver } from '@hookform/resolvers/zod';
|
|
||||||
import { Label } from '@/components/v1/ui/label';
|
|
||||||
import { Alert, AlertDescription, AlertTitle } from '@/components/v1/ui/alert';
|
|
||||||
import { Input } from '@/components/v1/ui/input';
|
|
||||||
import {
|
import {
|
||||||
getRepoName,
|
getRepoName,
|
||||||
getRepoOwner,
|
getRepoOwner,
|
||||||
@@ -25,30 +7,48 @@ import {
|
|||||||
ScalingType,
|
ScalingType,
|
||||||
scalingTypes,
|
scalingTypes,
|
||||||
} from '../../create/components/create-worker-form';
|
} from '../../create/components/create-worker-form';
|
||||||
import {
|
import { UpgradeMessage } from '../../create/components/create-worker-form';
|
||||||
ManagedWorker,
|
|
||||||
ManagedWorkerRegion,
|
|
||||||
} from '@/lib/api/generated/cloud/data-contracts';
|
|
||||||
import {
|
import {
|
||||||
Accordion,
|
Accordion,
|
||||||
AccordionContent,
|
AccordionContent,
|
||||||
AccordionItem,
|
AccordionItem,
|
||||||
AccordionTrigger,
|
AccordionTrigger,
|
||||||
} from '@/components/v1/ui/accordion';
|
} from '@/components/v1/ui/accordion';
|
||||||
|
import { Alert, AlertDescription, AlertTitle } from '@/components/v1/ui/alert';
|
||||||
|
import { Button } from '@/components/v1/ui/button';
|
||||||
|
import { Checkbox } from '@/components/v1/ui/checkbox';
|
||||||
|
import EnvGroupArray, { KeyValueType } from '@/components/v1/ui/envvar';
|
||||||
|
import { Input } from '@/components/v1/ui/input';
|
||||||
|
import { Label } from '@/components/v1/ui/label';
|
||||||
|
import {
|
||||||
|
Select,
|
||||||
|
SelectContent,
|
||||||
|
SelectItem,
|
||||||
|
SelectTrigger,
|
||||||
|
SelectValue,
|
||||||
|
} from '@/components/v1/ui/select';
|
||||||
import {
|
import {
|
||||||
Tabs,
|
Tabs,
|
||||||
TabsContent,
|
TabsContent,
|
||||||
TabsList,
|
TabsList,
|
||||||
TabsTrigger,
|
TabsTrigger,
|
||||||
} from '@/components/v1/ui/tabs';
|
} from '@/components/v1/ui/tabs';
|
||||||
import { Checkbox } from '@/components/v1/ui/checkbox';
|
import { useCurrentTenantId, useTenantDetails } from '@/hooks/use-tenant';
|
||||||
import { UpgradeMessage } from '../../create/components/create-worker-form';
|
import { queries } from '@/lib/api';
|
||||||
|
import {
|
||||||
|
ManagedWorker,
|
||||||
|
ManagedWorkerRegion,
|
||||||
|
} from '@/lib/api/generated/cloud/data-contracts';
|
||||||
import {
|
import {
|
||||||
ComputeType,
|
ComputeType,
|
||||||
managedCompute,
|
managedCompute,
|
||||||
} from '@/lib/can/features/managed-compute';
|
} from '@/lib/can/features/managed-compute';
|
||||||
import EnvGroupArray, { KeyValueType } from '@/components/v1/ui/envvar';
|
import { ExclamationTriangleIcon, PlusIcon } from '@heroicons/react/24/outline';
|
||||||
import { useCurrentTenantId, useTenantDetails } from '@/hooks/use-tenant';
|
import { zodResolver } from '@hookform/resolvers/zod';
|
||||||
|
import { useQuery } from '@tanstack/react-query';
|
||||||
|
import { useEffect, useMemo, useState } from 'react';
|
||||||
|
import { Controller, useForm } from 'react-hook-form';
|
||||||
|
import { z } from 'zod';
|
||||||
|
|
||||||
interface UpdateWorkerFormProps {
|
interface UpdateWorkerFormProps {
|
||||||
onSubmit: (opts: z.infer<typeof updateManagedWorkerSchema>) => void;
|
onSubmit: (opts: z.infer<typeof updateManagedWorkerSchema>) => void;
|
||||||
|
|||||||
@@ -1,31 +1,31 @@
|
|||||||
import { Separator } from '@/components/v1/ui/separator';
|
import GithubButton from './components/github-button';
|
||||||
import { queries } from '@/lib/api';
|
import { ManagedWorkerActivity } from './components/managed-worker-activity';
|
||||||
import { useMutation, useQuery } from '@tanstack/react-query';
|
import { ManagedWorkerInstancesTable } from './components/managed-worker-instances-table';
|
||||||
import { useNavigate, useParams } from 'react-router-dom';
|
import { ManagedWorkerLogs } from './components/managed-worker-logs';
|
||||||
import invariant from 'tiny-invariant';
|
import { ManagedWorkerMetrics } from './components/managed-worker-metrics';
|
||||||
import { relativeDate } from '@/lib/utils';
|
import UpdateWorkerForm from './components/update-form';
|
||||||
import { CpuChipIcon } from '@heroicons/react/24/outline';
|
import { ConfirmDialog } from '@/components/v1/molecules/confirm-dialog';
|
||||||
import { Loading } from '@/components/v1/ui/loading.tsx';
|
|
||||||
import { useState } from 'react';
|
|
||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
|
import { Loading } from '@/components/v1/ui/loading.tsx';
|
||||||
|
import { Separator } from '@/components/v1/ui/separator';
|
||||||
import {
|
import {
|
||||||
Tabs,
|
Tabs,
|
||||||
TabsContent,
|
TabsContent,
|
||||||
TabsList,
|
TabsList,
|
||||||
TabsTrigger,
|
TabsTrigger,
|
||||||
} from '@/components/v1/ui/tabs';
|
} from '@/components/v1/ui/tabs';
|
||||||
import { ConfirmDialog } from '@/components/v1/molecules/confirm-dialog';
|
|
||||||
import { ManagedWorkerLogs } from './components/managed-worker-logs';
|
|
||||||
import { ManagedWorkerMetrics } from './components/managed-worker-metrics';
|
|
||||||
import { ManagedWorkerActivity } from './components/managed-worker-activity';
|
|
||||||
import { UpdateManagedWorkerRequest } from '@/lib/api/generated/cloud/data-contracts';
|
|
||||||
import { ManagedWorkerInstancesTable } from './components/managed-worker-instances-table';
|
|
||||||
import UpdateWorkerForm from './components/update-form';
|
|
||||||
import { cloudApi } from '@/lib/api/api';
|
|
||||||
import { useApiError } from '@/lib/hooks';
|
|
||||||
import GithubButton from './components/github-button';
|
|
||||||
import { useCurrentTenantId } from '@/hooks/use-tenant';
|
|
||||||
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
import { useRefetchInterval } from '@/contexts/refetch-interval-context';
|
||||||
|
import { useCurrentTenantId } from '@/hooks/use-tenant';
|
||||||
|
import { queries } from '@/lib/api';
|
||||||
|
import { cloudApi } from '@/lib/api/api';
|
||||||
|
import { UpdateManagedWorkerRequest } from '@/lib/api/generated/cloud/data-contracts';
|
||||||
|
import { useApiError } from '@/lib/hooks';
|
||||||
|
import { relativeDate } from '@/lib/utils';
|
||||||
|
import { CpuChipIcon } from '@heroicons/react/24/outline';
|
||||||
|
import { useMutation, useQuery } from '@tanstack/react-query';
|
||||||
|
import { useState } from 'react';
|
||||||
|
import { useNavigate, useParams } from 'react-router-dom';
|
||||||
|
import invariant from 'tiny-invariant';
|
||||||
|
|
||||||
export default function ExpandedWorkflow() {
|
export default function ExpandedWorkflow() {
|
||||||
const navigate = useNavigate();
|
const navigate = useNavigate();
|
||||||
|
|||||||
@@ -1,13 +1,13 @@
|
|||||||
import { Button } from '@/components/v1/ui/button';
|
import { Button } from '@/components/v1/ui/button';
|
||||||
import { Link } from 'react-router-dom';
|
import { useCurrentTenantId } from '@/hooks/use-tenant';
|
||||||
|
import { queries } from '@/lib/api/queries';
|
||||||
import {
|
import {
|
||||||
CalendarIcon,
|
CalendarIcon,
|
||||||
CpuChipIcon,
|
CpuChipIcon,
|
||||||
CurrencyDollarIcon,
|
CurrencyDollarIcon,
|
||||||
} from '@heroicons/react/24/outline';
|
} from '@heroicons/react/24/outline';
|
||||||
import { useQuery } from '@tanstack/react-query';
|
import { useQuery } from '@tanstack/react-query';
|
||||||
import { queries } from '@/lib/api/queries';
|
import { Link } from 'react-router-dom';
|
||||||
import { useCurrentTenantId } from '@/hooks/use-tenant';
|
|
||||||
|
|
||||||
interface BillingRequiredProps {
|
interface BillingRequiredProps {
|
||||||
tenant: any;
|
tenant: any;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user