diff --git a/src/components/VolumeChart/hooks/useProjectTimeline.ts b/src/components/VolumeChart/hooks/useProjectTimeline.ts index 835bd277ed..55520a1c32 100644 --- a/src/components/VolumeChart/hooks/useProjectTimeline.ts +++ b/src/components/VolumeChart/hooks/useProjectTimeline.ts @@ -1,9 +1,12 @@ import { useQuery } from '@tanstack/react-query' +import { PV_V4 } from 'constants/pv' import { readProvider } from 'constants/readProvider' import EthDater from 'ethereum-block-by-date' -import { useProjectTlQuery } from 'generated/graphql' +import { ProjectTlQuery, useProjectTlQuery } from 'generated/graphql' import { client } from 'lib/apollo/client' import { PV } from 'models/pv' +import { ProjectTlDocument } from 'packages/v4/graphql/client/graphql' +import { useSubgraphQuery } from 'packages/v4/graphql/useSubgraphQuery' import { useMemo } from 'react' import { wadToFloat } from 'utils/format/formatNumber' import { getSubgraphIdForProject } from 'utils/graph' @@ -73,23 +76,26 @@ export function useProjectTimeline({ id: blocks ? getSubgraphIdForProject(pv, projectId) : '', ...blocks, }, + skip: pv === PV_V4 + }) + + const { data: v4QueryResult } = useSubgraphQuery({ + document: ProjectTlDocument, + variables: { + id: blocks ? projectId.toString() : '', + ...blocks, + }, + enabled: pv === PV_V4 }) - // TODO: const { data: v4QueryResult } = useSubgraphQuery(ProjectTlDocument, { - // where: { - // projectId, - // }, - // }) const points = useMemo(() => { - // TODO: if (!(v1v2v3QueryResult || v4QueryResult) || !timestamps) return - if (!v1v2v3QueryResult || !timestamps) return - // TODO: const queryResult = pv === PV_V4 ? v4QueryResult : v1v2v3QueryResult - const queryResult = v1v2v3QueryResult + const queryResult = pv === PV_V4 ? v4QueryResult : v1v2v3QueryResult + if (!queryResult || !timestamps) return const points: ProjectTimelinePoint[] = [] for (let i = 0; i < COUNT; i++) { - const point = queryResult[`p${i}` as keyof typeof queryResult] + const point = (queryResult as ProjectTlQuery)[`p${i}` as keyof typeof queryResult] if (!point) continue @@ -102,7 +108,7 @@ export function useProjectTimeline({ } return points - }, [timestamps, v1v2v3QueryResult]) + }, [timestamps, v1v2v3QueryResult, v4QueryResult, pv]) return { points, diff --git a/src/packages/v2v3/components/V2V3Project/V2V3ProjectToolsDrawer/V2V3ProjectToolsDrawer.tsx b/src/packages/v2v3/components/V2V3Project/V2V3ProjectToolsDrawer/V2V3ProjectToolsDrawer.tsx index 1b728af9f6..972f5ac768 100644 --- a/src/packages/v2v3/components/V2V3Project/V2V3ProjectToolsDrawer/V2V3ProjectToolsDrawer.tsx +++ b/src/packages/v2v3/components/V2V3Project/V2V3ProjectToolsDrawer/V2V3ProjectToolsDrawer.tsx @@ -25,10 +25,12 @@ export function V2V3ProjectToolsDrawer({ open?: boolean onClose?: VoidFunction }) { - const { projectId } = useContext(ProjectMetadataContext) + const { projectId, projectMetadata } = useContext(ProjectMetadataContext) const { payoutSplits, reservedTokensSplits, handle } = useContext(V2V3ProjectContext) + const hasOFAC = projectMetadata?.projectRequiredOFACCheck + const isMobile = useMobile() return ( @@ -48,18 +50,21 @@ export function V2V3ProjectToolsDrawer({ + + {hasOFAC ? null : ( + <> +
+

+ Project payer addresses +

-
-

- Project payer addresses -

- - -
- - + +
+ + + )} ( +export function useSubgraphQuery({ + document, + enabled = true, + variables +}: { document: TypedDocumentNode, - ...[variables]: TVariables extends Record ? [] : [TVariables] -): UseQueryResult { + enabled?: boolean, + variables?: TVariables +}): UseQueryResult { return useQuery({ // eslint-disable-next-line @typescript-eslint/no-explicit-any queryKey: [(document.definitions[0] as any).name.value, variables], @@ -26,5 +31,6 @@ export function useSubgraphQuery( queryKey[1] ? queryKey[1] : undefined, ) }, + enabled }) } diff --git a/src/packages/v4/views/V4ProjectDashboard/V4ProjectTabs/V4ActivityPanel/V4ActivityList.tsx b/src/packages/v4/views/V4ProjectDashboard/V4ProjectTabs/V4ActivityPanel/V4ActivityList.tsx index b12f0ea608..2e97805109 100644 --- a/src/packages/v4/views/V4ProjectDashboard/V4ProjectTabs/V4ActivityPanel/V4ActivityList.tsx +++ b/src/packages/v4/views/V4ProjectDashboard/V4ProjectTabs/V4ActivityPanel/V4ActivityList.tsx @@ -18,12 +18,15 @@ export function V4ActivityList() { const { projectId } = useJBContractContext() // TODO: pageSize (pagination) - const { data: payEventsData, isLoading } = useSubgraphQuery(PayEventsDocument, { - orderBy: PayEvent_OrderBy.timestamp, - orderDirection: OrderDirection.desc, - where: { - projectId: Number(projectId), - }, + const { data: payEventsData, isLoading } = useSubgraphQuery({ + document: PayEventsDocument, + variables: { + orderBy: PayEvent_OrderBy.timestamp, + orderDirection: OrderDirection.desc, + where: { + projectId: Number(projectId), + }, + } }) const payEvents = transformPayEventsRes(payEventsData) ?? [] diff --git a/src/packages/v4/views/V4ProjectDashboard/V4ProjectTabs/V4ActivityPanel/V4ActivityPanel.tsx b/src/packages/v4/views/V4ProjectDashboard/V4ProjectTabs/V4ActivityPanel/V4ActivityPanel.tsx index 311748a86c..1db9dacbc6 100644 --- a/src/packages/v4/views/V4ProjectDashboard/V4ProjectTabs/V4ActivityPanel/V4ActivityPanel.tsx +++ b/src/packages/v4/views/V4ProjectDashboard/V4ProjectTabs/V4ActivityPanel/V4ActivityPanel.tsx @@ -12,11 +12,15 @@ import { V4ActivityList } from './V4ActivityList' export function V4ActivityPanel() { const { projectId } = useJBContractContext() - const { data } = useSubgraphQuery(ProjectsDocument, { - where: { - projectId: Number(projectId), - }, + const { data } = useSubgraphQuery({ + document: ProjectsDocument, + variables: { + where: { + projectId: Number(projectId), + }, + } }) + const createdAt = data?.projects?.[0].createdAt return ( diff --git a/src/packages/v4/views/V4ProjectDashboard/V4ProjectTabs/V4ActivityPanel/hooks/useDownloadPayments.ts b/src/packages/v4/views/V4ProjectDashboard/V4ProjectTabs/V4ActivityPanel/hooks/useDownloadPayments.ts index 0ef53cd166..8e60233c93 100644 --- a/src/packages/v4/views/V4ProjectDashboard/V4ProjectTabs/V4ActivityPanel/hooks/useDownloadPayments.ts +++ b/src/packages/v4/views/V4ProjectDashboard/V4ProjectTabs/V4ActivityPanel/hooks/useDownloadPayments.ts @@ -10,12 +10,15 @@ import { transformPayEventsRes } from "../utils/transformEventsData"; export const useDownloadPayments = (blockNumber: number, projectId: number) => { const [isLoading, setIsLoading] = useState(false); - const { data: payEventsData } = useSubgraphQuery(PayEventsDocument, { - orderBy: PayEvent_OrderBy.timestamp, - orderDirection: OrderDirection.desc, - where: { - projectId: Number(projectId), - }, + const { data: payEventsData } = useSubgraphQuery({ + document: PayEventsDocument, + variables: { + orderBy: PayEvent_OrderBy.timestamp, + orderDirection: OrderDirection.desc, + where: { + projectId: Number(projectId), + }, + } }); const downloadPayments = useCallback(async () => { diff --git a/src/packages/v4/views/V4ProjectDashboard/hooks/useV4ProjectHeader.ts b/src/packages/v4/views/V4ProjectDashboard/hooks/useV4ProjectHeader.ts index a09560f02b..b43598df3c 100644 --- a/src/packages/v4/views/V4ProjectDashboard/hooks/useV4ProjectHeader.ts +++ b/src/packages/v4/views/V4ProjectDashboard/hooks/useV4ProjectHeader.ts @@ -35,10 +35,13 @@ export const useV4ProjectHeader = (): ProjectHeaderData => { const projectIdNum = parseInt(projectId.toString()) - const { data } = useSubgraphQuery(ProjectsDocument, { - where: { - projectId: projectIdNum, - }, + const { data } = useSubgraphQuery({ + document: ProjectsDocument, + variables: { + where: { + projectId: projectIdNum, + }, + } }) const projectStatsData = data?.projects?.[0]