chore: format

This commit is contained in:
mrkaye97
2025-12-12 17:17:31 -05:00
parent ded966620b
commit f436fb1a6f
202 changed files with 1257 additions and 1308 deletions

View File

@@ -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;

View File

@@ -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;

View File

@@ -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();

View File

@@ -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;

View File

@@ -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;

View File

@@ -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,

View File

@@ -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,

View File

@@ -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;

View File

@@ -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;

View File

@@ -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'),

View File

@@ -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;

View File

@@ -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> {

View File

@@ -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>;

View File

@@ -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>;

View File

@@ -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>;

View File

@@ -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;

View File

@@ -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: {

View File

@@ -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 {

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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> {

View File

@@ -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;

View File

@@ -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,

View File

@@ -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 = [];

View File

@@ -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;

View File

@@ -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',

View File

@@ -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>,

View File

@@ -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',

View File

@@ -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,

View File

@@ -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',

View File

@@ -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>;

View File

@@ -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,

View File

@@ -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;

View File

@@ -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>,

View File

@@ -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;

View File

@@ -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);

View File

@@ -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>,

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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> {}

View File

@@ -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',

View File

@@ -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;

View File

@@ -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;

View File

@@ -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>,

View File

@@ -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);

View File

@@ -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;

View File

@@ -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>,

View File

@@ -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',

View File

@@ -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>,

View File

@@ -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,

View File

@@ -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;

View File

@@ -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> {}

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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();

View File

@@ -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();

View File

@@ -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();

View File

@@ -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 =
| { | {

View File

@@ -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';

View File

@@ -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;

View File

@@ -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;

View File

@@ -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];

View File

@@ -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);

View File

@@ -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>>>;

View File

@@ -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 };

View File

@@ -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));

View File

@@ -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({

View File

@@ -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'),

View File

@@ -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();

View File

@@ -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 {

View File

@@ -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'),

View File

@@ -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();

View File

@@ -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();

View File

@@ -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({

View File

@@ -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',

View File

@@ -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;

View File

@@ -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>(

View File

@@ -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',

View File

@@ -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;

View File

@@ -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;

View File

@@ -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;

View File

@@ -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();

View File

@@ -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';

View File

@@ -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,

View File

@@ -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();

View File

@@ -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({

View File

@@ -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,

View File

@@ -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: {

View File

@@ -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,

View File

@@ -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,

View File

@@ -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,

View File

@@ -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;

View File

@@ -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();

View File

@@ -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