mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-06-08 20:25:19 +02:00
format: auto-fix via pnpm format:fix
This commit is contained in:
parent
a74aa4da4f
commit
0e49cc33f8
37 changed files with 128 additions and 175 deletions
|
|
@ -1,10 +1,10 @@
|
|||
"use client";
|
||||
|
||||
import { useQuery } from "@rocicorp/zero/react";
|
||||
import { useSetAtom } from "jotai";
|
||||
import { useEffect } from "react";
|
||||
import { chatSessionStateAtom } from "@/atoms/chat/chat-session-state.atom";
|
||||
import { queries } from "@/zero/queries";
|
||||
import { useQuery } from "@rocicorp/zero/react";
|
||||
|
||||
/**
|
||||
* Syncs chat session state for a thread via Zero.
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
"use client";
|
||||
|
||||
import { useQuery } from "@rocicorp/zero/react";
|
||||
import { useQueryClient } from "@tanstack/react-query";
|
||||
import { useAtomValue } from "jotai";
|
||||
import { useCallback, useEffect, useMemo, useRef } from "react";
|
||||
|
|
@ -9,7 +10,6 @@ import type { Author, Comment, CommentReply } from "@/contracts/types/chat-comme
|
|||
import type { Membership } from "@/contracts/types/members.types";
|
||||
import { cacheKeys } from "@/lib/query-client/cache-keys";
|
||||
import { queries } from "@/zero/queries";
|
||||
import { useQuery } from "@rocicorp/zero/react";
|
||||
|
||||
interface RawCommentRow {
|
||||
id: number;
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
"use client";
|
||||
|
||||
import { useQuery } from "@rocicorp/zero/react";
|
||||
import { useMemo } from "react";
|
||||
import type { SearchSourceConnector } from "@/contracts/types/connector.types";
|
||||
import { queries } from "@/zero/queries";
|
||||
import { useQuery } from "@rocicorp/zero/react";
|
||||
|
||||
/**
|
||||
* Syncs connectors for a search space via Zero.
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
"use client";
|
||||
|
||||
import { useQuery } from "@rocicorp/zero/react";
|
||||
import { useEffect, useRef, useState } from "react";
|
||||
import { queries } from "@/zero/queries";
|
||||
import { useQuery } from "@rocicorp/zero/react";
|
||||
|
||||
export type DocumentsProcessingStatus = "idle" | "processing" | "success" | "error";
|
||||
|
||||
|
|
@ -20,9 +20,7 @@ export function useDocumentsProcessing(searchSpaceId: number | null): DocumentsP
|
|||
const wasProcessingRef = useRef(false);
|
||||
const successTimerRef = useRef<ReturnType<typeof setTimeout> | null>(null);
|
||||
|
||||
const [documents] = useQuery(
|
||||
queries.documents.bySpace({ searchSpaceId: searchSpaceId ?? -1 })
|
||||
);
|
||||
const [documents] = useQuery(queries.documents.bySpace({ searchSpaceId: searchSpaceId ?? -1 }));
|
||||
|
||||
useEffect(() => {
|
||||
if (!searchSpaceId || !documents) return;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
"use client";
|
||||
|
||||
import { useQuery } from "@rocicorp/zero/react";
|
||||
import { useCallback, useEffect, useRef, useState } from "react";
|
||||
import type { DocumentSortBy, DocumentTypeEnum, SortOrder } from "@/contracts/types/document.types";
|
||||
import { documentsApiService } from "@/lib/apis/documents-api.service";
|
||||
import { queries } from "@/zero/queries";
|
||||
import { useQuery } from "@rocicorp/zero/react";
|
||||
|
||||
export interface DocumentStatusType {
|
||||
state: "ready" | "pending" | "processing" | "failed";
|
||||
|
|
@ -254,7 +254,9 @@ export function useDocuments(
|
|||
...existing,
|
||||
title: liveItem.title,
|
||||
document_type: liveItem.documentType,
|
||||
status: (liveItem.status as unknown as DocumentStatusType) ?? { state: "ready" as const },
|
||||
status: (liveItem.status as unknown as DocumentStatusType) ?? {
|
||||
state: "ready" as const,
|
||||
},
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,10 @@
|
|||
"use client";
|
||||
|
||||
import { useQuery } from "@rocicorp/zero/react";
|
||||
import { useCallback, useEffect, useRef, useState } from "react";
|
||||
import type { InboxItem, NotificationCategory } from "@/contracts/types/inbox.types";
|
||||
import { notificationsApiService } from "@/lib/apis/notifications-api.service";
|
||||
import { queries } from "@/zero/queries";
|
||||
import { useQuery } from "@rocicorp/zero/react";
|
||||
|
||||
export type {
|
||||
InboxItem,
|
||||
|
|
@ -118,9 +118,7 @@ export function useInbox(
|
|||
}, [userId, searchSpaceId, category, prefetchedUnread, prefetchedUnreadReady]);
|
||||
|
||||
// EFFECT 2: Zero real-time sync for notification updates
|
||||
const [zeroNotifications] = useQuery(
|
||||
queries.notifications.byUser({ userId: userId ?? "" })
|
||||
);
|
||||
const [zeroNotifications] = useQuery(queries.notifications.byUser({ userId: userId ?? "" }));
|
||||
|
||||
useEffect(() => {
|
||||
if (!userId || !searchSpaceId || !zeroNotifications || !initialLoadDoneRef.current) return;
|
||||
|
|
@ -134,9 +132,7 @@ export function useInbox(
|
|||
return true;
|
||||
});
|
||||
|
||||
const recentItems = validItems.filter(
|
||||
(item) => new Date(item.createdAt) > cutoff
|
||||
);
|
||||
const recentItems = validItems.filter((item) => new Date(item.createdAt) > cutoff);
|
||||
|
||||
const liveIds = new Set(recentItems.map((d) => d.id));
|
||||
|
||||
|
|
@ -145,18 +141,21 @@ export function useInbox(
|
|||
|
||||
const newItems: InboxItem[] = recentItems
|
||||
.filter((d) => !prevIds.has(d.id))
|
||||
.map((item) => ({
|
||||
id: item.id,
|
||||
user_id: item.userId,
|
||||
search_space_id: item.searchSpaceId ?? undefined,
|
||||
type: item.type,
|
||||
title: item.title,
|
||||
message: item.message,
|
||||
read: item.read,
|
||||
metadata: item.metadata as unknown as Record<string, unknown>,
|
||||
created_at: new Date(item.createdAt).toISOString(),
|
||||
updated_at: item.updatedAt ? new Date(item.updatedAt).toISOString() : null,
|
||||
} as InboxItem));
|
||||
.map(
|
||||
(item) =>
|
||||
({
|
||||
id: item.id,
|
||||
user_id: item.userId,
|
||||
search_space_id: item.searchSpaceId ?? undefined,
|
||||
type: item.type,
|
||||
title: item.title,
|
||||
message: item.message,
|
||||
read: item.read,
|
||||
metadata: item.metadata as unknown as Record<string, unknown>,
|
||||
created_at: new Date(item.createdAt).toISOString(),
|
||||
updated_at: item.updatedAt ? new Date(item.updatedAt).toISOString() : null,
|
||||
}) as InboxItem
|
||||
);
|
||||
|
||||
let updated = prev.map((existing) => {
|
||||
const liveItem = recentItems.find((v) => v.id === existing.id);
|
||||
|
|
@ -187,10 +186,7 @@ export function useInbox(
|
|||
// Calibrate older-unread offset on first Zero data
|
||||
if (olderUnreadOffsetRef.current === null) {
|
||||
const recentUnreadCount = recentItems.filter((item) => !item.read).length;
|
||||
olderUnreadOffsetRef.current = Math.max(
|
||||
0,
|
||||
apiUnreadTotalRef.current - recentUnreadCount
|
||||
);
|
||||
olderUnreadOffsetRef.current = Math.max(0, apiUnreadTotalRef.current - recentUnreadCount);
|
||||
}
|
||||
|
||||
if (olderUnreadOffsetRef.current !== null) {
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
"use client";
|
||||
|
||||
import { useQuery } from "@rocicorp/zero/react";
|
||||
import { useEffect, useRef } from "react";
|
||||
import type { RawMessage } from "@/contracts/types/chat-messages.types";
|
||||
import { queries } from "@/zero/queries";
|
||||
import { useQuery } from "@rocicorp/zero/react";
|
||||
|
||||
/**
|
||||
* Syncs chat messages for a thread via Zero.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue