feat(core): page info adapter for journal (#5561)

Page info adapter + schema.
Adapted for journal features.

![image](https://github.com/toeverything/AFFiNE/assets/584378/2731ed2b-a125-4d62-b658-f2aff49d0e17)
This commit is contained in:
Peng Xiao
2024-01-22 08:25:27 +00:00
parent 8b92cc0cae
commit 735e1cb117
18 changed files with 412 additions and 68 deletions
@@ -178,7 +178,7 @@ export function NormalPageHeader({
export function DetailPageHeader(props: PageHeaderProps) {
const { page } = props;
const { isJournal } = useJournalInfoHelper(page.meta);
const { isJournal } = useJournalInfoHelper(page.workspace, page.id);
const isInTrash = page.meta.trash;
return isJournal && !isInTrash ? (
@@ -27,7 +27,7 @@ export const ExtensionTabs = ({ page }: ExtensionTabsProps) => {
FeatureType.Copilot
);
const { isJournal } = useJournalInfoHelper(page.meta);
const { isJournal } = useJournalInfoHelper(page.workspace, page.id);
const exts = useAtomValue(editorExtensionsAtom).filter(ext => {
if (ext.name === 'copilot' && !copilotEnabled) return false;
@@ -43,7 +43,7 @@ interface PageItemProps extends HTMLAttributes<HTMLDivElement> {
right?: ReactNode;
}
const PageItem = ({ page, right, className, ...attrs }: PageItemProps) => {
const { isJournal } = useJournalInfoHelper(page.meta);
const { isJournal } = useJournalInfoHelper(page.workspace, page.id);
const Icon = isJournal
? TodayIcon
@@ -77,7 +77,10 @@ interface JournalBlockProps extends EditorExtensionProps {
const EditorJournalPanel = (props: EditorExtensionProps) => {
const { workspace, page } = props;
const { journalDate, isJournal } = useJournalInfoHelper(page?.meta);
const { journalDate, isJournal } = useJournalInfoHelper(
page.workspace,
page.id
);
const { openJournal } = useJournalHelper(workspace);
const [date, setDate] = useState(dayjs().format('YYYY-MM-DD'));
@@ -52,7 +52,7 @@ export const Component = (): ReactElement => {
setCurrentWorkspace(null);
return undefined;
}
setCurrentWorkspace(workspace ?? null);
setCurrentWorkspace(workspace);
// for debug purpose
window.currentWorkspace = workspace;