diff --git a/packages/backend/src/graphql/queries/get-invoices.ee.js b/packages/backend/src/graphql/queries/get-invoices.ee.js
deleted file mode 100644
index afb7d031..00000000
--- a/packages/backend/src/graphql/queries/get-invoices.ee.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import Billing from '../../helpers/billing/index.ee.js';
-
-const getInvoices = async (_parent, _params, context) => {
- const subscription = await context.currentUser.$relatedQuery(
- 'currentSubscription'
- );
-
- if (!subscription) {
- return;
- }
-
- const invoices = await Billing.paddleClient.getInvoices(
- Number(subscription.paddleSubscriptionId)
- );
-
- return invoices;
-};
-
-export default getInvoices;
diff --git a/packages/backend/src/graphql/query-resolvers.js b/packages/backend/src/graphql/query-resolvers.js
index dc0eb649..2e085efa 100644
--- a/packages/backend/src/graphql/query-resolvers.js
+++ b/packages/backend/src/graphql/query-resolvers.js
@@ -9,7 +9,6 @@ import getDynamicData from './queries/get-dynamic-data.js';
import getDynamicFields from './queries/get-dynamic-fields.js';
import getFlow from './queries/get-flow.js';
import getFlows from './queries/get-flows.js';
-import getInvoices from './queries/get-invoices.ee.js';
import getNotifications from './queries/get-notifications.js';
import getPermissionCatalog from './queries/get-permission-catalog.ee.js';
import getRole from './queries/get-role.ee.js';
@@ -37,7 +36,6 @@ const queryResolvers = {
getDynamicFields,
getFlow,
getFlows,
- getInvoices,
getNotifications,
getPermissionCatalog,
getRole,
diff --git a/packages/backend/src/graphql/schema.graphql b/packages/backend/src/graphql/schema.graphql
index 9ccd9088..099dbd23 100644
--- a/packages/backend/src/graphql/schema.graphql
+++ b/packages/backend/src/graphql/schema.graphql
@@ -26,7 +26,6 @@ type Query {
getBillingAndUsage: GetBillingAndUsage
getCurrentUser: User
getConfig(keys: [String]): JSONObject
- getInvoices: [Invoice]
getPermissionCatalog: PermissionCatalog
getRole(id: String!): Role
getRoles: [Role]
@@ -658,14 +657,6 @@ type Usage {
task: Int
}
-type Invoice {
- id: Int
- amount: Float
- currency: String
- payout_date: String
- receipt_url: String
-}
-
type ListSamlAuthProvider {
id: String
name: String
diff --git a/packages/web/src/components/Invoices/index.ee.jsx b/packages/web/src/components/Invoices/index.ee.jsx
index d4e15654..a3fa6bfa 100644
--- a/packages/web/src/components/Invoices/index.ee.jsx
+++ b/packages/web/src/components/Invoices/index.ee.jsx
@@ -7,12 +7,17 @@ import CardContent from '@mui/material/CardContent';
import Divider from '@mui/material/Divider';
import Grid from '@mui/material/Grid';
import Typography from '@mui/material/Typography';
+
import useInvoices from 'hooks/useInvoices.ee';
import useFormatMessage from 'hooks/useFormatMessage';
+
export default function Invoices() {
const formatMessage = useFormatMessage();
- const { invoices, loading } = useInvoices();
- if (loading || invoices.length === 0) return ;
+ const { data, isLoading: isInvoicesLoading } = useInvoices();
+ const invoices = data?.data;
+
+ if (isInvoicesLoading || invoices?.length === 0) return ;
+
return (
@@ -47,7 +52,7 @@ export default function Invoices() {
- {invoices.map((invoice, invoiceIndex) => (
+ {invoices?.map((invoice, invoiceIndex) => (
{invoiceIndex !== 0 && }
diff --git a/packages/web/src/graphql/queries/get-invoices.ee.js b/packages/web/src/graphql/queries/get-invoices.ee.js
deleted file mode 100644
index b412a057..00000000
--- a/packages/web/src/graphql/queries/get-invoices.ee.js
+++ /dev/null
@@ -1,12 +0,0 @@
-import { gql } from '@apollo/client';
-export const GET_INVOICES = gql`
- query GetInvoices {
- getInvoices {
- id
- amount
- currency
- payout_date
- receipt_url
- }
- }
-`;
diff --git a/packages/web/src/hooks/useInvoices.ee.js b/packages/web/src/hooks/useInvoices.ee.js
index fb78a087..82372df4 100644
--- a/packages/web/src/hooks/useInvoices.ee.js
+++ b/packages/web/src/hooks/useInvoices.ee.js
@@ -1,9 +1,18 @@
-import { useQuery } from '@apollo/client';
-import { GET_INVOICES } from 'graphql/queries/get-invoices.ee';
+import { useQuery } from '@tanstack/react-query';
+
+import api from 'helpers/api';
+
export default function useInvoices() {
- const { data, loading } = useQuery(GET_INVOICES);
- return {
- invoices: data?.getInvoices || [],
- loading: loading,
- };
+ const query = useQuery({
+ queryKey: ['invoices'],
+ queryFn: async ({ signal }) => {
+ const { data } = await api.get('/v1/users/invoices', {
+ signal,
+ });
+
+ return data;
+ },
+ });
+
+ return query;
}