mirror of
https://github.com/danny-avila/LibreChat.git
synced 2026-01-21 01:36:13 +01:00
🔗 feat: Enhance Share Functionality, Optimize DataTable & Fix Critical Bugs (#5220)
* 🔄 refactor: frontend and backend share link logic; feat: qrcode for share link; feat: refresh link * 🐛 fix: Conditionally render shared link and refactor share link creation logic * 🐛 fix: Correct conditional check for shareId in ShareButton component * 🔄 refactor: Update shared links API and data handling; improve query parameters and response structure * 🔄 refactor: Update shared links pagination and response structure; replace pageNumber with cursor for improved data fetching * 🔄 refactor: DataTable performance optimization * fix: delete shared link cache update * 🔄 refactor: Enhance shared links functionality; add conversationId to shared link model and update related components * 🔄 refactor: Add delete functionality to SharedLinkButton; integrate delete mutation and confirmation dialog * 🔄 feat: Add AnimatedSearchInput component with gradient animations and search functionality; update search handling in API and localization * 🔄 refactor: Improve SharedLinks component; enhance delete functionality and loading states, optimize AnimatedSearchInput, and refine DataTable scrolling behavior * fix: mutation type issues with deleted shared link mutation * fix: MutationOptions types * fix: Ensure only public shared links are retrieved in getSharedLink function * fix: `qrcode.react` install location * fix: ensure non-public shared links are not fetched when checking for existing shared links, and remove deprecated .exec() method for queries * fix: types and import order * refactor: cleanup share button UI logic, make more intuitive --------- Co-authored-by: Danny Avila <danny@librechat.ai>
This commit is contained in:
parent
460cde0c0b
commit
fa9e778399
55 changed files with 1779 additions and 1975 deletions
|
|
@ -24,7 +24,7 @@ import type {
|
|||
AssistantDocument,
|
||||
TEndpointsConfig,
|
||||
TCheckUserKeyResponse,
|
||||
SharedLinkListParams,
|
||||
SharedLinksListParams,
|
||||
SharedLinksResponse,
|
||||
} from 'librechat-data-provider';
|
||||
import { findPageForConversation } from '~/utils';
|
||||
|
|
@ -139,31 +139,29 @@ export const useConversationsInfiniteQuery = (
|
|||
);
|
||||
};
|
||||
|
||||
export const useSharedLinksInfiniteQuery = (
|
||||
params?: SharedLinkListParams,
|
||||
export const useSharedLinksQuery = (
|
||||
params: SharedLinksListParams,
|
||||
config?: UseInfiniteQueryOptions<SharedLinksResponse, unknown>,
|
||||
) => {
|
||||
return useInfiniteQuery<SharedLinksResponse, unknown>(
|
||||
[QueryKeys.sharedLinks],
|
||||
({ pageParam = '' }) =>
|
||||
const { pageSize, isPublic, search, sortBy, sortDirection } = params;
|
||||
|
||||
return useInfiniteQuery<SharedLinksResponse>({
|
||||
queryKey: [QueryKeys.sharedLinks, { pageSize, isPublic, search, sortBy, sortDirection }],
|
||||
queryFn: ({ pageParam }) =>
|
||||
dataService.listSharedLinks({
|
||||
...params,
|
||||
pageNumber: pageParam?.toString(),
|
||||
isPublic: params?.isPublic || true,
|
||||
cursor: pageParam?.toString(),
|
||||
pageSize,
|
||||
isPublic,
|
||||
search,
|
||||
sortBy,
|
||||
sortDirection,
|
||||
}),
|
||||
{
|
||||
getNextPageParam: (lastPage) => {
|
||||
const currentPageNumber = Number(lastPage.pageNumber);
|
||||
const totalPages = Number(lastPage.pages); // Convert totalPages to a number
|
||||
// If the current page number is less than total pages, return the next page number
|
||||
return currentPageNumber < totalPages ? currentPageNumber + 1 : undefined;
|
||||
},
|
||||
refetchOnWindowFocus: false,
|
||||
refetchOnReconnect: false,
|
||||
refetchOnMount: false,
|
||||
...config,
|
||||
},
|
||||
);
|
||||
getNextPageParam: (lastPage) => lastPage?.nextCursor ?? undefined,
|
||||
keepPreviousData: true,
|
||||
staleTime: 5 * 60 * 1000, // 5 minutes
|
||||
cacheTime: 30 * 60 * 1000, // 30 minutes
|
||||
...config,
|
||||
});
|
||||
};
|
||||
|
||||
export const useConversationTagsQuery = (
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue