diff --git a/public/icons.svg b/public/icons.svg index b3fb0dff..fd76d116 100644 --- a/public/icons.svg +++ b/public/icons.svg @@ -1009,21 +1009,44 @@ d='M20 10.5V6.8C20 5.11984 20 4.27976 19.673 3.63803C19.3854 3.07354 18.9265 2.6146 18.362 2.32698C17.7202 2 16.8802 2 15.2 2H8.8C7.11984 2 6.27976 2 5.63803 2.32698C5.07354 2.6146 4.6146 3.07354 4.32698 3.63803C4 4.27976 4 5.11984 4 6.8V17.2C4 18.8802 4 19.7202 4.32698 20.362C4.6146 20.9265 5.07354 21.3854 5.63803 21.673C6.27976 22 7.11984 22 8.8 22H12M14 11H8M10 15H8M16 7H8M18 21V15M15 18H21' /> - - - - + + + + - + - + - + - + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/routes/finder/src/components/Columns/invoices/Cells/InvoiceStatus/InvoiceStatusCell.tsx b/src/routes/finder/src/components/Columns/invoices/Cells/InvoiceStatus/InvoiceStatusCell.tsx deleted file mode 100644 index 314f4ed8..00000000 --- a/src/routes/finder/src/components/Columns/invoices/Cells/InvoiceStatus/InvoiceStatusCell.tsx +++ /dev/null @@ -1,18 +0,0 @@ -import { InvoiceStatus } from '@graphql/types'; -import { ClockFastForward } from '@ui/media/icons/ClockFastForward'; -import { Tag, TagLabel, TagLeftIcon } from '@ui/presentation/Tag/Tag'; - -export const InvoiceStatusCell = ({ status }: { status: InvoiceStatus }) => { - return ( -
- - - - - {status.toLowerCase()} - -
- ); -}; diff --git a/src/routes/finder/src/components/Columns/invoices/Cells/InvoiceStatus/index.ts b/src/routes/finder/src/components/Columns/invoices/Cells/InvoiceStatus/index.ts deleted file mode 100644 index 83dffc68..00000000 --- a/src/routes/finder/src/components/Columns/invoices/Cells/InvoiceStatus/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from './InvoiceStatusCell'; diff --git a/src/routes/finder/src/components/Columns/invoices/Cells/index.ts b/src/routes/finder/src/components/Columns/invoices/Cells/index.ts index 3d54521f..94a4a966 100644 --- a/src/routes/finder/src/components/Columns/invoices/Cells/index.ts +++ b/src/routes/finder/src/components/Columns/invoices/Cells/index.ts @@ -1,5 +1,4 @@ export * from './Contract'; export * from './BillingCycle'; export * from './InvoicePreview'; -export * from './InvoiceStatus'; export * from './Amount'; diff --git a/src/routes/finder/src/components/Columns/invoices/filterTypesPastInvoices.tsx b/src/routes/finder/src/components/Columns/invoices/filterTypesPastInvoices.tsx index de0fd738..cdc1bbd6 100644 --- a/src/routes/finder/src/components/Columns/invoices/filterTypesPastInvoices.tsx +++ b/src/routes/finder/src/components/Columns/invoices/filterTypesPastInvoices.tsx @@ -125,6 +125,7 @@ export const getFilterTypes = () => { { label: 'Scheduled', id: InvoiceStatus.Scheduled }, { label: 'Void', id: InvoiceStatus.Void }, { label: 'Overdue', id: InvoiceStatus.Overdue }, + { label: 'Processing', id: InvoiceStatus.PaymentProcessing }, { label: 'Paid', id: InvoiceStatus.Paid }, ], }, diff --git a/src/routes/finder/src/components/Columns/invoices/sortFns.ts b/src/routes/finder/src/components/Columns/invoices/sortFns.ts index ba6595ec..3ac53761 100644 --- a/src/routes/finder/src/components/Columns/invoices/sortFns.ts +++ b/src/routes/finder/src/components/Columns/invoices/sortFns.ts @@ -14,9 +14,10 @@ export const getInvoicesSortFn = (columnId: string) => .with(InvoiceStatus.OnHold, () => 2) .with(InvoiceStatus.Scheduled, () => 3) .with(InvoiceStatus.Void, () => 4) - .with(InvoiceStatus.Paid, () => 5) - .with(InvoiceStatus.Due, () => 6) - .with(InvoiceStatus.Overdue, () => 7) + .with(InvoiceStatus.PaymentProcessing, () => 5) + .with(InvoiceStatus.Paid, () => 6) + .with(InvoiceStatus.Due, () => 7) + .with(InvoiceStatus.Overdue, () => 8) .otherwise(() => null), ) diff --git a/src/routes/invoices/src/components/shared/PaymentStatusSelect/PaymentStatusSelect.tsx b/src/routes/invoices/src/components/shared/PaymentStatusSelect/PaymentStatusSelect.tsx index 50f773db..141410fd 100644 --- a/src/routes/invoices/src/components/shared/PaymentStatusSelect/PaymentStatusSelect.tsx +++ b/src/routes/invoices/src/components/shared/PaymentStatusSelect/PaymentStatusSelect.tsx @@ -28,15 +28,16 @@ export const PaymentStatusSelect = observer( const invoiceStatus = invoice?.value?.status; const Status = renderStatusNode(invoiceStatus) ?? <>{invoiceStatus}; const isPaid = invoiceStatus === InvoiceStatus.Paid; + const isProcessing = invoiceStatus === InvoiceStatus.PaymentProcessing; - if (!invoice) return; + if (!invoice) return null; return ( e.stopPropagation()} - disabled={invoiceStatus === InvoiceStatus.Scheduled} + disabled={invoiceStatus === InvoiceStatus.Scheduled || isProcessing} > {cloneElement(Status, { className: cn( diff --git a/src/routes/src/components/Invoice/Cells/status/StatusCell.tsx b/src/routes/src/components/Invoice/Cells/status/StatusCell.tsx index 9e7911d6..88d0a7ff 100644 --- a/src/routes/src/components/Invoice/Cells/status/StatusCell.tsx +++ b/src/routes/src/components/Invoice/Cells/status/StatusCell.tsx @@ -1,8 +1,5 @@ -import { Clock } from '@ui/media/icons/Clock'; +import { Icon } from '@ui/media/Icon'; import { InvoiceStatus } from '@graphql/types'; -import { InfoCircle } from '@ui/media/icons/InfoCircle'; -import { CheckCircle } from '@ui/media/icons/CheckCircle'; -import { SlashCircle01 } from '@ui/media/icons/SlashCircle01'; import { ClockFastForward } from '@ui/media/icons/ClockFastForward'; import { Tag, TagLabel, TagLeftIcon } from '@ui/presentation/Tag/Tag'; @@ -17,6 +14,7 @@ export function renderStatusNode(type: InvoiceStatus | null | undefined) { return ( + Draft @@ -26,7 +24,7 @@ export function renderStatusNode(type: InvoiceStatus | null | undefined) { return ( - + Paid @@ -35,7 +33,7 @@ export function renderStatusNode(type: InvoiceStatus | null | undefined) { return ( - + Due @@ -44,7 +42,7 @@ export function renderStatusNode(type: InvoiceStatus | null | undefined) { return ( - + Voided @@ -53,7 +51,7 @@ export function renderStatusNode(type: InvoiceStatus | null | undefined) { return ( - + Scheduled @@ -62,11 +60,20 @@ export function renderStatusNode(type: InvoiceStatus | null | undefined) { return ( - + Overdue ); + case InvoiceStatus.PaymentProcessing: + return ( + + + + + Processing + + ); default: return null; } diff --git a/src/routes/src/types/__generated__/graphql.types.ts b/src/routes/src/types/__generated__/graphql.types.ts index 9b7ee2e5..978a65cf 100644 --- a/src/routes/src/types/__generated__/graphql.types.ts +++ b/src/routes/src/types/__generated__/graphql.types.ts @@ -156,6 +156,7 @@ export type AgentListenerSaveInput = { export type AgentSaveInput = { capabilities?: InputMaybe>; color?: InputMaybe; + description?: InputMaybe; icon?: InputMaybe; id?: InputMaybe; isActive?: InputMaybe; @@ -2472,6 +2473,23 @@ export type Mailbox = { userId?: Maybe; }; +export enum MailboxProvider { + Google = 'GOOGLE', + Mailstack = 'MAILSTACK', + Microsoft = 'MICROSOFT', +} + +export type MailboxV2 = { + __typename?: 'MailboxV2'; + mailbox: Scalars['String']['output']; + needsManualRefresh: Scalars['Boolean']['output']; + provider: MailboxProvider; + rampUpCurrent: Scalars['Int']['output']; + rampUpMax: Scalars['Int']['output']; + rampUpRate: Scalars['Int']['output']; + usedInFlows: Scalars['Boolean']['output']; +}; + export type MarkdownEvent = { __typename?: 'MarkdownEvent'; content?: Maybe; @@ -2612,6 +2630,7 @@ export type Mutation = { admin_addWorkspaceAccess: Scalars['Boolean']['output']; admin_removeWorkspaceAccess: Scalars['Boolean']['output']; admin_switchCurrentWorkspace: Scalars['Boolean']['output']; + admin_tenant_AddDomainAsWorkspace: Scalars['Boolean']['output']; admin_tenant_hardDelete: Scalars['Boolean']['output']; agent_Delete: Scalars['Boolean']['output']; agent_Save: Agent; @@ -2791,6 +2810,7 @@ export type Mutation = { tenant_UpdateBillingProfile: TenantBillingProfile; tenant_UpdateSettings: TenantSettings; tenant_UpdateSettingsOpportunityStage: ActionResponse; + user_Update: User; user_UpdateOnboardingDetails: User; }; @@ -2812,6 +2832,10 @@ export type MutationAdmin_SwitchCurrentWorkspaceArgs = { switchToTenant: Scalars['String']['input']; }; +export type MutationAdmin_Tenant_AddDomainAsWorkspaceArgs = { + domain: Scalars['String']['input']; +}; + export type MutationAdmin_Tenant_HardDeleteArgs = { confirmTenant: Scalars['String']['input']; tenant: Scalars['String']['input']; @@ -3556,6 +3580,10 @@ export type MutationTenant_UpdateSettingsOpportunityStageArgs = { input: TenantSettingsOpportunityStageConfigurationInput; }; +export type MutationUser_UpdateArgs = { + input?: InputMaybe; +}; + export type MutationUser_UpdateOnboardingDetailsArgs = { input: UserOnboardingDetailsInput; }; @@ -4327,6 +4355,7 @@ export type Query = { mailstack_DomainPurchaseSuggestions: Array; mailstack_Domains: Array; mailstack_Mailboxes: Array; + mailstack_MailboxesV2: Array; mailstack_UniqueUsernames: Array; meeting: Meeting; opportunities_LinkedToOrganizations: OpportunityPage; @@ -5367,20 +5396,9 @@ export type UserParticipant = { }; export type UserUpdateInput = { - /** - * The first name of the customerOS user. - * **Required** - */ - firstName: Scalars['String']['input']; id: Scalars['ID']['input']; - /** - * The last name of the customerOS user. - * **Required** - */ - lastName: Scalars['String']['input']; name?: InputMaybe; profilePhotoUrl?: InputMaybe; - timezone?: InputMaybe; }; export type WebsiteCheckDetails = { diff --git a/src/ui/media/Icon/Icon.tsx b/src/ui/media/Icon/Icon.tsx index dc4b513b..b90bbd7c 100644 --- a/src/ui/media/Icon/Icon.tsx +++ b/src/ui/media/Icon/Icon.tsx @@ -247,8 +247,11 @@ export type IconName = | 'x-square' | 'brackets-plus' | 'file-plus-02' - | 'filter-lines'; - + | 'filter-lines' + | 'clock-fast-forward' + | 'slash-circle-01' + | 'info-circle' + | 'refresh-cw-02'; interface IconProps extends SVGAttributes { name: IconName; className?: string;