Skip to content

Commit

Permalink
refactor(core): favorited adapter
Browse files Browse the repository at this point in the history
  • Loading branch information
pengx17 committed Mar 28, 2024
1 parent d1b2ff3 commit 207dd7c
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import { toast } from '@affine/core/utils';
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { assertExists } from '@blocksuite/global/utils';
import { useLiveData, useService, Workspace } from '@toeverything/infra';
import { useCallback, useMemo } from 'react';
import { useCallback } from 'react';

export interface FavoriteButtonProps {
pageId: string;
Expand All @@ -18,9 +18,7 @@ export const useFavorite = (pageId: string) => {
const favAdapter = useService(FavoriteItemsAdapter);
assertExists(currentPage);

const favorite = useLiveData(
useMemo(() => favAdapter.isFavorite$(pageId, 'doc'), [favAdapter, pageId])
);
const favorite = useLiveData(favAdapter.isFavorite$(pageId, 'doc'));

const toggleFavorite = useCallback(() => {
favAdapter.toggle(pageId, 'doc');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ import {
} from '@blocksuite/icons';
import type { DocMeta } from '@blocksuite/store';
import { useLiveData, useService, Workspace } from '@toeverything/infra';
import { useCallback, useMemo, useState } from 'react';
import { useCallback, useState } from 'react';
import { Link } from 'react-router-dom';

import type { CollectionService } from '../../modules/collection';
Expand Down Expand Up @@ -60,9 +60,7 @@ export const PageOperationCell = ({
const { setTrashModal } = useTrashModalHelper(currentWorkspace.docCollection);
const [openDisableShared, setOpenDisableShared] = useState(false);
const favAdapter = useService(FavoriteItemsAdapter);
const favourite = useLiveData(
useMemo(() => favAdapter.isFavorite$(page.id, 'doc'), [favAdapter, page.id])
);
const favourite = useLiveData(favAdapter.isFavorite$(page.id, 'doc'));
const workbench = useService(Workbench);
const { duplicate } = useBlockSuiteMetaHelper(currentWorkspace.docCollection);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,13 @@ export const FavoriteList = ({
const favAdapter = useService(FavoriteItemsAdapter);
const dropItemId = getDropItemId('favorites');

const favourites = useLiveData(favAdapter.favorites$);

const favoriteList = useMemo(
() =>
const favourites = useLiveData(
favAdapter.favorites$.map(favourites =>
favourites.filter(fav => {
const meta = metas.find(m => m.id === fav.id);
return meta && !meta.trash;
}),
[favourites, metas]
})
)
);

const metaMapping = useMemo(
Expand All @@ -54,7 +52,7 @@ export const FavoriteList = ({
ref={setNodeRef}
data-over={isOver}
>
{favoriteList.map((pageMeta, index) => {
{favourites.map((pageMeta, index) => {
return (
<FavouritePage
key={`${pageMeta}-${index}`}
Expand All @@ -66,7 +64,7 @@ export const FavoriteList = ({
/>
);
})}
{favoriteList.length === 0 && <EmptyItem />}
{favourites.length === 0 && <EmptyItem />}
</div>
);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import {
Workspace,
} from '@toeverything/infra';
import { useSetAtom } from 'jotai';
import { useCallback, useEffect, useMemo } from 'react';
import { useCallback, useEffect } from 'react';

import { pageHistoryModalAtom } from '../../atoms/page-history';
import { useBlockSuiteMetaHelper } from './use-block-suite-meta-helper';
Expand All @@ -35,9 +35,7 @@ export function useRegisterBlocksuiteEditorCommands() {
assertExists(pageMeta);

const favAdapter = useService(FavoriteItemsAdapter);
const favorite = useLiveData(
useMemo(() => favAdapter.isFavorite$(pageId, 'doc'), [favAdapter, pageId])
);
const favorite = useLiveData(favAdapter.isFavorite$(pageId, 'doc'));
const trash = pageMeta.trash ?? false;

const setPageHistoryModalState = useSetAtom(pageHistoryModalAtom);
Expand Down
13 changes: 10 additions & 3 deletions packages/frontend/core/src/modules/workspace/properties/adapter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,16 @@ export class WorkspacePropertiesAdapter {

this.properties$ = LiveData.from(
new Observable(observer => {
this.properties.observeDeep(() => {
requestAnimationFrame(() => observer.next(this.proxy));
});
const update = () => {
requestAnimationFrame(() => {
observer.next(new Proxy(this.proxy, {}));
});
};
update();
this.properties.observeDeep(update);
return () => {
this.properties.unobserveDeep(update);
};
}),
this.proxy
);
Expand Down

0 comments on commit 207dd7c

Please sign in to comment.