From 913ea3bc0dd5870c04518ba8a9e93ff79e087032 Mon Sep 17 00:00:00 2001 From: Stephen Zhou <38493346+hyoban@users.noreply.github.com> Date: Mon, 28 Jul 2025 23:57:58 +0800 Subject: [PATCH] fix: update subscription --- .../src/hooks/biz/useSubscriptionActions.tsx | 24 ++++------ .../src/modules/discover/FeedForm.tsx | 40 ++++++---------- .../src/modules/discover/ListForm.tsx | 46 ++++++------------- .../entry-column/hooks/useEntriesByView.ts | 1 + packages/internal/store/src/entry/hooks.ts | 2 +- .../internal/store/src/subscription/store.ts | 12 +++-- pnpm-lock.yaml | 20 ++++---- pnpm-workspace.yaml | 2 +- 8 files changed, 56 insertions(+), 91 deletions(-) diff --git a/apps/desktop/layer/renderer/src/hooks/biz/useSubscriptionActions.tsx b/apps/desktop/layer/renderer/src/hooks/biz/useSubscriptionActions.tsx index 7a3096fc9..d6958f9fd 100644 --- a/apps/desktop/layer/renderer/src/hooks/biz/useSubscriptionActions.tsx +++ b/apps/desktop/layer/renderer/src/hooks/biz/useSubscriptionActions.tsx @@ -1,14 +1,11 @@ import { Kbd } from "@follow/components/ui/kbd/Kbd.js" import { subscriptionSyncService } from "@follow/store/subscription/store" import type { SubscriptionModel } from "@follow/store/subscription/types" -import { unreadActions } from "@follow/store/unread/store" import { useMutation } from "@tanstack/react-query" import { useHotkeys } from "react-hotkeys-hook" import { Trans, useTranslation } from "react-i18next" import { toast } from "sonner" -import { apiClient } from "~/lib/api-fetch" - import { navigateEntry } from "./useNavigateEntry" import { getRouteParams } from "./useRouteParams" @@ -39,19 +36,16 @@ export const useDeleteSubscription = ({ onSuccess }: { onSuccess?: () => void } if (!subscription) return if (!feed) return const undo = async () => { - // TODO store action - const { unread } = await apiClient.subscriptions.$post({ - json: { - url: feed.type === "feed" ? feed.url : undefined, - listId: feed.type === "list" ? feed.id : undefined, - view: subscription.view, - category: subscription.category, - isPrivate: subscription.isPrivate, - }, + await subscriptionSyncService.subscribe({ + url: feed.type === "feed" ? feed.url : undefined, + listId: feed.type === "list" ? feed.id : undefined, + view: subscription.view, + category: subscription.category, + isPrivate: subscription.isPrivate, + feedId: feed.id, + title: feed.title, + hideFromTimeline: subscription.hideFromTimeline, }) - unreadActions.upsertMany(unread) - - subscriptionSyncService.fetch() toast.dismiss(toastId) } diff --git a/apps/desktop/layer/renderer/src/modules/discover/FeedForm.tsx b/apps/desktop/layer/renderer/src/modules/discover/FeedForm.tsx index 2b3e7948e..5e9c82ae0 100644 --- a/apps/desktop/layer/renderer/src/modules/discover/FeedForm.tsx +++ b/apps/desktop/layer/renderer/src/modules/discover/FeedForm.tsx @@ -15,11 +15,10 @@ import { ScrollArea } from "@follow/components/ui/scroll-area/index.js" import { Switch } from "@follow/components/ui/switch/index.jsx" import { FeedViewType } from "@follow/constants" import type { EntryModelSimple, FeedAnalyticsModel, FeedModel } from "@follow/models/types" -import { invalidateEntriesQuery } from "@follow/store/entry/hooks" import { useFeedByIdOrUrl } from "@follow/store/feed/hooks" import { useCategories, useSubscriptionByFeedId } from "@follow/store/subscription/hooks" import { subscriptionSyncService } from "@follow/store/subscription/store" -import { unreadActions } from "@follow/store/unread/store" +import { whoami } from "@follow/store/user/getters" import { tracker } from "@follow/tracker" import { cn } from "@follow/utils/utils" import { zodResolver } from "@hookform/resolvers/zod" @@ -30,12 +29,10 @@ import { useTranslation } from "react-i18next" import { toast } from "sonner" import { z } from "zod" -import { getGeneralSettings } from "~/atoms/settings/general" import { Autocomplete } from "~/components/ui/auto-completion" import { useCurrentModal, useIsInModal } from "~/components/ui/modal/stacked/hooks" import { getRouteParams } from "~/hooks/biz/useRouteParams" import { useI18n } from "~/hooks/common" -import { apiClient } from "~/lib/api-fetch" import { toastFetchError } from "~/lib/error-parser" import { feed as feedQuery, useFeedQuery } from "~/queries/feed" @@ -239,34 +236,27 @@ const FeedInnerForm = ({ const followMutation = useMutation({ mutationFn: async (values: z.infer) => { + const userId = whoami()?.id || "" const body = { url: feed.url, view: Number.parseInt(values.view), category: values.category, - isPrivate: values.isPrivate, + isPrivate: values.isPrivate || false, hideFromTimeline: values.hideFromTimeline, title: values.title, feedId: feed.id, - } - const $method = isSubscribed ? apiClient.subscriptions.$patch : apiClient.subscriptions.$post + userId, + type: "feed", + listId: undefined, + } as const - return $method({ - json: body, - }) as unknown as Promise< - | ReturnType - | ReturnType - > + if (isSubscribed) { + return subscriptionSyncService.edit(body) + } else { + return subscriptionSyncService.subscribe(body) + } }, - onSuccess: (data, variables) => { - if (getGeneralSettings().hidePrivateSubscriptionsInTimeline) { - invalidateEntriesQuery({ views: [Number(variables.view)] }) - } - - if ("unread" in data) { - unreadActions.upsertMany(data.unread) - } - subscriptionSyncService.fetch() - + onSuccess: () => { const feedId = feed.id if (feedId) { feedQuery.byId({ id: feedId }).invalidate() @@ -275,10 +265,6 @@ const FeedInnerForm = ({ duration: 1000, }) - if (!isSubscribed) { - tracker.subscribe({ feedId: feed.id, view: Number.parseInt(variables.view) }) - } - onSuccess?.() }, onError(err) { diff --git a/apps/desktop/layer/renderer/src/modules/discover/ListForm.tsx b/apps/desktop/layer/renderer/src/modules/discover/ListForm.tsx index 5708842d1..e1499a4d5 100644 --- a/apps/desktop/layer/renderer/src/modules/discover/ListForm.tsx +++ b/apps/desktop/layer/renderer/src/modules/discover/ListForm.tsx @@ -13,12 +13,11 @@ import { LoadingCircle } from "@follow/components/ui/loading/index.jsx" import { Switch } from "@follow/components/ui/switch/index.jsx" import { FeedViewType } from "@follow/constants" import type { ListAnalyticsModel } from "@follow/models/types" -import { invalidateEntriesQuery } from "@follow/store/entry/hooks" import { useListById, usePrefetchListById } from "@follow/store/list/hooks" import type { ListModel } from "@follow/store/list/types" import { useSubscriptionByFeedId } from "@follow/store/subscription/hooks" import { subscriptionSyncService } from "@follow/store/subscription/store" -import { unreadActions } from "@follow/store/unread/store" +import { whoami } from "@follow/store/user/getters" import { tracker } from "@follow/tracker" import { cn } from "@follow/utils/utils" import { zodResolver } from "@hookform/resolvers/zod" @@ -29,10 +28,8 @@ import { useTranslation } from "react-i18next" import { toast } from "sonner" import { z } from "zod" -import { getGeneralSettings } from "~/atoms/settings/general" import { useCurrentModal } from "~/components/ui/modal/stacked/hooks" import { useI18n } from "~/hooks/common" -import { apiClient } from "~/lib/api-fetch" import { getFetchErrorMessage, toastFetchError } from "~/lib/error-parser" import { getNewIssueUrl } from "~/lib/issues" @@ -213,47 +210,32 @@ const ListInnerForm = ({ const followMutation = useMutation({ mutationFn: async (values: z.infer & { TOTPCode?: string }) => { + const userId = whoami()?.id || "" const body = { listId: list.id, view: Number.parseInt(values.view), category: values.category, - isPrivate: values.isPrivate, + isPrivate: values.isPrivate || false, hideFromTimeline: values.hideFromTimeline, title: values.title, TOTPCode: values.TOTPCode, - } - const $method = isSubscribed ? apiClient.subscriptions.$patch : apiClient.subscriptions.$post + userId, + type: "list", + url: undefined, + feedId: undefined, + } as const - return $method({ - json: body, - }) as unknown as Promise< - | ReturnType - | ReturnType - > + if (isSubscribed) { + return subscriptionSyncService.edit(body) + } else { + return subscriptionSyncService.subscribe(body) + } }, - onSuccess: (data, variables) => { - if (getGeneralSettings().hidePrivateSubscriptionsInTimeline) { - invalidateEntriesQuery({ views: [Number(variables.view)] }) - } - - if ("unread" in data) { - const { unread } = data - unreadActions.upsertMany(unread) - } - subscriptionSyncService.fetch() - - const listId = list.id - if (listId) { - // listsQuery.byId({ id: listId }).invalidate() - } + onSuccess: () => { toast(isSubscribed ? t("feed_form.updated") : t("feed_form.followed"), { duration: 1000, }) - if (!isSubscribed) { - tracker.subscribe({ listId: list.id, view: Number.parseInt(variables.view) }) - } - onSuccess?.() }, async onError(err) { diff --git a/apps/desktop/layer/renderer/src/modules/entry-column/hooks/useEntriesByView.ts b/apps/desktop/layer/renderer/src/modules/entry-column/hooks/useEntriesByView.ts index ce5e8de04..384e280ad 100644 --- a/apps/desktop/layer/renderer/src/modules/entry-column/hooks/useEntriesByView.ts +++ b/apps/desktop/layer/renderer/src/modules/entry-column/hooks/useEntriesByView.ts @@ -182,6 +182,7 @@ const useLocalEntries = (): UseEntriesReturn => { entryIdsByInboxId, entryIdsByListId, entryIdsByView, + isCollection, showEntriesByView, unreadOnly, ], diff --git a/packages/internal/store/src/entry/hooks.ts b/packages/internal/store/src/entry/hooks.ts index 79935d395..60b23e25a 100644 --- a/packages/internal/store/src/entry/hooks.ts +++ b/packages/internal/store/src/entry/hooks.ts @@ -172,7 +172,7 @@ export const useEntryIdsByView = (view: FeedViewType, excludePrivate: boolean | return Array.from(ids) .filter((id) => { const subscription = getSubscriptionByEntryId(id) - if (excludePrivate && subscription?.isPrivate) { + if ((excludePrivate && subscription?.isPrivate) || subscription?.hideFromTimeline) { return false } return true diff --git a/packages/internal/store/src/subscription/store.ts b/packages/internal/store/src/subscription/store.ts index ebbc1f4c3..09c34760d 100644 --- a/packages/internal/store/src/subscription/store.ts +++ b/packages/internal/store/src/subscription/store.ts @@ -243,12 +243,9 @@ class SubscriptionSyncService { }) tx.request(async () => { await api().subscriptions.update({ - view: subscription.view, + ...subscription, feedId: subscription.feedId ?? undefined, - isPrivate: subscription.isPrivate ?? undefined, listId: subscription.listId ?? undefined, - category: subscription.category ?? undefined, - title: subscription.title ?? undefined, }) }) @@ -257,6 +254,8 @@ class SubscriptionSyncService { }) await tx.run() + + invalidateEntriesQuery({ views: [subscription.view] }) } async subscribe(subscription: SubscriptionForm) { @@ -283,8 +282,9 @@ class SubscriptionSyncService { if (data.unread) { unreadActions.upsertMany(data.unread) } + // Insert to subscription - subscriptionActions.upsertMany([ + await subscriptionActions.upsertMany([ { ...subscription, title: subscription.title ?? null, @@ -298,6 +298,8 @@ class SubscriptionSyncService { userId: whoami()?.id ?? "", }, ]) + + invalidateEntriesQuery({ views: [subscription.view] }) } async unsubscribe(id: string | undefined | null | (string | undefined | null)[]) { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 13e4cf434..58c94f4a0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,8 +7,8 @@ settings: catalogs: default: '@follow-app/client-sdk': - specifier: 0.3.24 - version: 0.3.24 + specifier: 0.3.25 + version: 0.3.25 typescript: specifier: 5.8.3 version: 5.8.3 @@ -461,7 +461,7 @@ importers: version: 3.0.2(electron@37.2.0) '@follow-app/client-sdk': specifier: 'catalog:' - version: 0.3.24(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.2.12(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(kysely@0.28.2)(pg@8.16.3) + version: 0.3.25(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.2.12(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(kysely@0.28.2)(pg@8.16.3) '@follow/database': specifier: workspace:* version: link:../../../../packages/internal/database @@ -1627,7 +1627,7 @@ importers: dependencies: '@follow-app/client-sdk': specifier: 'catalog:' - version: 0.3.24(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.2.12(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(kysely@0.28.2)(pg@8.16.3) + version: 0.3.25(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.2.12(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(kysely@0.28.2)(pg@8.16.3) '@follow/configs': specifier: workspace:* version: link:../../configs @@ -1639,7 +1639,7 @@ importers: dependencies: '@follow-app/client-sdk': specifier: 'catalog:' - version: 0.3.24(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.2.12(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(kysely@0.28.2)(pg@8.16.3) + version: 0.3.25(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.2.12(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(kysely@0.28.2)(pg@8.16.3) '@follow/constants': specifier: workspace:* version: link:../constants @@ -1717,7 +1717,7 @@ importers: dependencies: '@follow-app/client-sdk': specifier: 'catalog:' - version: 0.3.24(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.2.12(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(kysely@0.28.2)(pg@8.16.3) + version: 0.3.25(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.2.12(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(kysely@0.28.2)(pg@8.16.3) '@follow/constants': specifier: workspace:* version: link:../constants @@ -1781,7 +1781,7 @@ importers: dependencies: '@follow-app/client-sdk': specifier: 'catalog:' - version: 0.3.24(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.2.12(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(kysely@0.28.2)(pg@8.16.3) + version: 0.3.25(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.2.12(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(kysely@0.28.2)(pg@8.16.3) '@follow/configs': specifier: workspace:* version: link:../../configs @@ -4039,8 +4039,8 @@ packages: '@floating-ui/utils@0.2.9': resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} - '@follow-app/client-sdk@0.3.24': - resolution: {integrity: sha512-lR22RZrhXrHoHRz+C8/9ccU8vl9kaMq83NaeSNQq6TfJU645TiA/GQu2pHE0H8N9KRUPzE/P82bAnye59dyBUA==} + '@follow-app/client-sdk@0.3.25': + resolution: {integrity: sha512-+x9x3bvcCedkqH2ypw1ae2zYySzT70FniC9LH8/TdqpYKIUzQZaMSZxGNIA9KaAQT1EtvL9e7lO07/zpQiEPSw==} '@folo-services/ai-tools@0.2.14': resolution: {integrity: sha512-3DG/FqGqNvpCUtq1WMwzMYW6XuhQQfRfIGyZbokJ+XgbyR4YO3Jtz9T5fluINy+Q9iQSRyZSLyhMxe4Evsj5Hg==} @@ -19175,7 +19175,7 @@ snapshots: '@floating-ui/utils@0.2.9': {} - '@follow-app/client-sdk@0.3.24(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.2.12(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(kysely@0.28.2)(pg@8.16.3)': + '@follow-app/client-sdk@0.3.25(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.2.12(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(kysely@0.28.2)(pg@8.16.3)': dependencies: '@folo-services/constants': 0.1.15 '@folo-services/drizzle': 0.1.10(@opentelemetry/api@1.9.0)(@types/pg@8.6.1)(expo-sqlite@15.2.12(expo@53.0.12(@babel/core@7.28.0)(@expo/metro-runtime@5.0.4(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0)))(bufferutil@4.0.9)(graphql@16.8.1)(react-native-webview@13.15.0(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(react-native@0.79.1(@babel/core@7.28.0)(@types/react@19.1.8)(bufferutil@4.0.9)(react@19.0.0))(react@19.0.0))(kysely@0.28.2) diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 87cc5f3a4..76ee0a4d7 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -53,4 +53,4 @@ overrides: catalog: typescript: "5.8.3" - "@follow-app/client-sdk": "0.3.24" + "@follow-app/client-sdk": "0.3.25"