@@ -6,22 +6,27 @@ import type { z } from 'zod';
66
77import type { FilterComponentConfigs , FiltersToVariables , Views } from '../../../../lib/filters/filter-types' ;
88import { gql } from '../../../../lib/graphql/helpers' ;
9+ import type {
10+ AccountHoverCardFieldsFragment ,
11+ DashboardOrdersQueryVariables ,
12+ } from '../../../../lib/graphql/types/v2/graphql' ;
913import { ExpectedFundsFilter , OrderStatus } from '../../../../lib/graphql/types/v2/schema' ;
1014import useQueryFilter from '../../../../lib/hooks/useQueryFilter' ;
1115import { FEATURES , requiresUpgrade } from '@/lib/allowed-features' ;
12- import type { DashboardOrdersQueryVariables } from '@/lib/graphql/types/v2/graphql' ;
1316
1417import { UpgradePlanCTA } from '@/components/platform-subscriptions/UpgradePlanCTA' ;
1518
19+ import { accountHoverCardFields } from '../../../AccountHoverCard' ;
1620import { Button } from '../../../ui/Button' ;
1721import { DashboardContext } from '../../DashboardContext' ;
1822import DashboardHeader from '../../DashboardHeader' ;
23+ import { createdByFilter } from '../../filters/CreatedByFilter' ;
1924import { expectedDateFilter } from '../../filters/DateFilter' ;
2025import type { DashboardSectionProps } from '../../types' ;
2126
2227import ContributionsTable from './ContributionsTable' ;
2328import CreatePendingContributionModal from './CreatePendingOrderModal' ;
24- import type { FilterMeta } from './filters' ;
29+ import type { FilterMeta as BaseFilterMeta } from './filters' ;
2530import {
2631 ContributionAccountingCategoryKinds ,
2732 filters as baseFilters ,
@@ -39,7 +44,7 @@ enum ContributionsTab {
3944}
4045
4146const hostExpectedFundsMetadataQuery = gql `
42- query HostExpectedFundsMetadata($slug: String!, $expectedFundsFilter: ExpectedFundsFilter ) {
47+ query HostExpectedFundsMetadata($slug: String!) {
4348 account(slug: $slug) {
4449 id
4550 slug
@@ -58,25 +63,15 @@ const hostExpectedFundsMetadataQuery = gql`
5863 hostFeePercent
5964 }
6065 }
61- PENDING: orders(
62- filter: INCOMING
63- expectedFundsFilter: $expectedFundsFilter
64- status: [PENDING]
65- hostContext: ALL
66- ) {
66+ PENDING: orders(filter: INCOMING, expectedFundsFilter: ONLY_PENDING, status: [PENDING], hostContext: ALL) {
6767 totalCount
6868 }
69- EXPIRED: orders(
70- filter: INCOMING
71- expectedFundsFilter: $expectedFundsFilter
72- status: [EXPIRED]
73- hostContext: ALL
74- ) {
69+ EXPIRED: orders(filter: INCOMING, expectedFundsFilter: ONLY_PENDING, status: [EXPIRED], hostContext: ALL) {
7570 totalCount
7671 }
7772 PAID: orders(
7873 filter: INCOMING
79- expectedFundsFilter: $expectedFundsFilter
74+ expectedFundsFilter: ONLY_PENDING
8075 status: [PAID]
8176 includeIncognito: true
8277 hostContext: ALL
@@ -85,28 +80,45 @@ const hostExpectedFundsMetadataQuery = gql`
8580 }
8681 CANCELED: orders(
8782 filter: INCOMING
88- expectedFundsFilter: $expectedFundsFilter
83+ expectedFundsFilter: ONLY_PENDING
8984 status: [CANCELLED]
9085 includeIncognito: true
9186 hostContext: ALL
9287 ) {
9388 totalCount
9489 }
90+ orders(filter: INCOMING, expectedFundsFilter: ONLY_PENDING, hostContext: ALL) {
91+ createdByUsers {
92+ id
93+ ...AccountHoverCardFields
94+ }
95+ }
9596 }
9697 }
98+ ${ accountHoverCardFields }
9799` ;
98100
99101const schema = baseSchema . extend ( {
100102 expectedDate : expectedDateFilter . schema ,
103+ createdBy : createdByFilter . schema ,
101104} ) ;
105+
106+ type FilterMeta = BaseFilterMeta & {
107+ createdByUsers ?: Partial < AccountHoverCardFieldsFragment > [ ] ;
108+ } ;
109+
102110type FilterValues = z . infer < typeof schema > ;
111+
103112const toVariables : FiltersToVariables < FilterValues , DashboardOrdersQueryVariables , FilterMeta > = {
104- ...baseToVariables ,
113+ ...( baseToVariables as FiltersToVariables < FilterValues , DashboardOrdersQueryVariables , FilterMeta > ) ,
105114 expectedDate : expectedDateFilter . toVariables ,
115+ createdBy : createdByFilter . toVariables ,
106116} ;
117+
107118const filters : FilterComponentConfigs < FilterValues , FilterMeta > = {
108119 ...baseFilters ,
109120 expectedDate : expectedDateFilter . filter ,
121+ createdBy : createdByFilter . filter ,
110122} ;
111123
112124function HostExpectedFunds ( { accountSlug } : DashboardSectionProps ) {
@@ -116,6 +128,12 @@ function HostExpectedFunds({ accountSlug }: DashboardSectionProps) {
116128 const isUpgradeRequired = requiresUpgrade ( account , FEATURES . EXPECTED_FUNDS ) ;
117129 const [ showCreatePendingOrderModal , setShowCreatePendingOrderModal ] = React . useState ( false ) ;
118130
131+ const { data : metadata , refetch : refetchMetadata } = useQuery ( hostExpectedFundsMetadataQuery , {
132+ variables : { slug : accountSlug } ,
133+ fetchPolicy : typeof window !== 'undefined' ? 'cache-and-network' : 'cache-first' ,
134+ skip : isUpgradeRequired ,
135+ } ) ;
136+
119137 const views : Views < z . infer < typeof schema > > = [
120138 {
121139 id : ContributionsTab . ALL ,
@@ -158,6 +176,7 @@ function HostExpectedFunds({ accountSlug }: DashboardSectionProps) {
158176 hostSlug : account . isHost ? account . slug : undefined ,
159177 includeUncategorized : true ,
160178 accountingCategoryKinds : ContributionAccountingCategoryKinds ,
179+ createdByUsers : metadata ?. account ?. orders ?. createdByUsers ,
161180 } ;
162181
163182 const queryFilter = useQueryFilter ( {
@@ -168,16 +187,6 @@ function HostExpectedFunds({ accountSlug }: DashboardSectionProps) {
168187 filters,
169188 } ) ;
170189
171- const { data : metadata , refetch : refetchMetadata } = useQuery ( hostExpectedFundsMetadataQuery , {
172- variables : {
173- slug : accountSlug ,
174- expectedFundsFilter : ExpectedFundsFilter . ONLY_PENDING ,
175- } ,
176-
177- fetchPolicy : typeof window !== 'undefined' ? 'cache-and-network' : 'cache-first' ,
178- skip : isUpgradeRequired ,
179- } ) ;
180-
181190 const { data, loading, error, refetch } = useQuery ( dashboardOrdersQuery , {
182191 variables : {
183192 slug : accountSlug ,
0 commit comments