feat: Migrate favorites state management from Recoil to Jotai
This commit is contained in:
@@ -1,11 +1,11 @@
|
||||
import { useEffect, useCallback } from 'react';
|
||||
import { useRecoilState } from 'recoil';
|
||||
import { useAtom } from 'jotai';
|
||||
import { useToastContext } from '@librechat/client';
|
||||
import type { Favorite } from '~/store/favorites';
|
||||
import { useGetFavoritesQuery, useUpdateFavoritesMutation } from '~/data-provider';
|
||||
import { favoritesAtom } from '~/store';
|
||||
import { useLocalize } from '~/hooks';
|
||||
import { logger } from '~/utils';
|
||||
import store from '~/store';
|
||||
|
||||
/**
|
||||
* Hook for managing user favorites (pinned agents and models).
|
||||
@@ -36,7 +36,7 @@ const cleanFavorites = (favorites: Favorite[]): Favorite[] =>
|
||||
export default function useFavorites() {
|
||||
const localize = useLocalize();
|
||||
const { showToast } = useToastContext();
|
||||
const [favorites, setFavorites] = useRecoilState(store.favorites);
|
||||
const [favorites, setFavorites] = useAtom(favoritesAtom);
|
||||
const getFavoritesQuery = useGetFavoritesQuery();
|
||||
const updateFavoritesMutation = useUpdateFavoritesMutation();
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { atom } from 'recoil';
|
||||
import { createStorageAtom } from './jotai-utils';
|
||||
|
||||
export type Favorite = {
|
||||
agentId?: string;
|
||||
@@ -13,11 +13,7 @@ export type FavoriteModel = {
|
||||
|
||||
export type FavoritesState = Favorite[];
|
||||
|
||||
const favorites = atom<FavoritesState>({
|
||||
key: 'favorites',
|
||||
default: [],
|
||||
});
|
||||
|
||||
export default {
|
||||
favorites,
|
||||
};
|
||||
/**
|
||||
* This atom stores the user's favorite models/agents
|
||||
*/
|
||||
export const favoritesAtom = createStorageAtom<FavoritesState>('favorites', []);
|
||||
|
||||
@@ -12,9 +12,9 @@ import lang from './language';
|
||||
import settings from './settings';
|
||||
import misc from './misc';
|
||||
import isTemporary from './temporary';
|
||||
import favorites from './favorites';
|
||||
export * from './agents';
|
||||
export * from './mcp';
|
||||
export * from './favorites';
|
||||
|
||||
export default {
|
||||
...artifacts,
|
||||
@@ -31,5 +31,4 @@ export default {
|
||||
...settings,
|
||||
...misc,
|
||||
...isTemporary,
|
||||
...favorites,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user