diff --git a/packages/ee/server-only/limits/client.ts b/packages/ee/server-only/limits/client.ts index 2fab2530e..7f48e6856 100644 --- a/packages/ee/server-only/limits/client.ts +++ b/packages/ee/server-only/limits/client.ts @@ -16,13 +16,10 @@ export const getLimits = async ({ headers }: GetLimitsOptions = {}) => { headers: { ...requestHeaders, }, - next: { - revalidate: 60, - }, }) .then(async (res) => res.json()) .then((res) => ZLimitsResponseSchema.parse(res)) - .catch(() => { + .catch((_err) => { return { quota: FREE_PLAN_LIMITS, remaining: FREE_PLAN_LIMITS, diff --git a/packages/ee/server-only/limits/handler.ts b/packages/ee/server-only/limits/handler.ts index 25cc23da9..357ac527d 100644 --- a/packages/ee/server-only/limits/handler.ts +++ b/packages/ee/server-only/limits/handler.ts @@ -3,7 +3,6 @@ import { NextApiRequest, NextApiResponse } from 'next'; import { getToken } from 'next-auth/jwt'; import { match } from 'ts-pattern'; -import { withStaleWhileRevalidate } from '@documenso/lib/server-only/http/with-swr'; import { getFlag } from '@documenso/lib/universal/get-feature-flag'; import { SELFHOSTED_PLAN_LIMITS } from './constants'; @@ -21,7 +20,7 @@ export const limitsHandler = async ( const isBillingEnabled = await getFlag('app_billing'); if (!isBillingEnabled) { - return withStaleWhileRevalidate(res).status(200).json({ + return res.status(200).json({ quota: SELFHOSTED_PLAN_LIMITS, remaining: SELFHOSTED_PLAN_LIMITS, }); @@ -33,7 +32,7 @@ export const limitsHandler = async ( const limits = await getServerLimits({ email: token.email }); - return withStaleWhileRevalidate(res).status(200).json(limits); + return res.status(200).json(limits); } catch (err) { console.error('error', err); diff --git a/packages/ee/server-only/limits/provider/client.tsx b/packages/ee/server-only/limits/provider/client.tsx index 5f17678ee..07a085750 100644 --- a/packages/ee/server-only/limits/provider/client.tsx +++ b/packages/ee/server-only/limits/provider/client.tsx @@ -1,6 +1,6 @@ 'use client'; -import { createContext, useContext, useEffect, useRef, useState } from 'react'; +import { createContext, useContext, useEffect, useState } from 'react'; import { equals } from 'remeda'; @@ -33,17 +33,18 @@ export const LimitsProvider = ({ initialValue, children }: LimitsProviderProps) remaining: FREE_PLAN_LIMITS, }; - const $limits = useRef(initialValue ?? defaultValue); - const [limits, setLimits] = useState(() => $limits.current); + const [limits, setLimits] = useState(() => initialValue ?? defaultValue); const refreshLimits = async () => { const newLimits = await getLimits(); - if (equals(newLimits, $limits.current)) { - return; - } + setLimits((oldLimits) => { + if (equals(oldLimits, newLimits)) { + return oldLimits; + } - setLimits(newLimits); + return newLimits; + }); }; useEffect(() => {