fix: page crash in public workspace (#1324)

This commit is contained in:
Himself65
2023-03-05 02:29:02 -06:00
committed by GitHub
parent bd4977e94e
commit 5b75d32a8a
9 changed files with 65 additions and 20 deletions

View File

@@ -3,7 +3,7 @@ import { useTranslation } from '@affine/i18n';
import React, { useState } from 'react';
import { useIsWorkspaceOwner } from '../../../../../hooks/affine/use-is-workspace-owner';
import { useBlockSuiteWorkspaceBlobUrl } from '../../../../../hooks/use-blocksuite-workspace-blob-url';
import { useBlockSuiteWorkspaceAvatarUrl } from '../../../../../hooks/use-blocksuite-workspace-avatar-url';
import { useBlockSuiteWorkspaceName } from '../../../../../hooks/use-blocksuite-workspace-name';
import { RemWorkspaceFlavour } from '../../../../../shared';
import { Upload } from '../../../../pure/file-upload';
@@ -43,7 +43,7 @@ export const GeneralPanel: React.FC<PanelProps> = ({
setName(name);
};
const [, update] = useBlockSuiteWorkspaceBlobUrl(
const [, update] = useBlockSuiteWorkspaceAvatarUrl(
workspace.blockSuiteWorkspace
);
return (

View File

@@ -30,7 +30,6 @@ export const BlockSuitePublicPageList: React.FC<BlockSuitePageListProps> = ({
isPublic={true}
blockSuiteWorkspace={blockSuiteWorkspace}
onClickPage={onOpenPage}
listType="all"
/>
);
};

View File

@@ -149,7 +149,7 @@ export const PageList: React.FC<PageListProps> = ({
{pageMeta.title || t('Untitled')}
</Content>
</StyledTitleLink>
{!isTrash && (
{listType && !isTrash && (
<FavoriteTag
onClick={() => {
helper.setPageMeta(pageMeta.id, {

View File

@@ -20,12 +20,14 @@ import {
export type BlockSuiteEditorHeaderProps = React.PropsWithChildren<{
blockSuiteWorkspace: BlockSuiteWorkspace;
pageId: string;
isPublic?: boolean;
}>;
export const BlockSuiteEditorHeader: React.FC<BlockSuiteEditorHeaderProps> = ({
blockSuiteWorkspace,
pageId,
children,
isPublic,
}) => {
const page = blockSuiteWorkspace.getPage(pageId);
// fixme(himself65): remove this atom and move it to props
@@ -43,7 +45,10 @@ export const BlockSuiteEditorHeader: React.FC<BlockSuiteEditorHeaderProps> = ({
return (
<Header
rightItems={
isTrash
// fixme(himself65): other right items not supported in public mode
isPublic
? ['themeModeSwitch']
: isTrash
? ['trashButtonGroup']
: ['syncUser', 'themeModeSwitch', 'editorOptionMenu']
}

View File

@@ -11,6 +11,7 @@ import { PageNotFoundError } from './affine/affine-error-eoundary';
import { BlockSuiteEditorHeader } from './blocksuite/header';
export type PageDetailEditorProps = {
isPublic?: boolean;
blockSuiteWorkspace: BlockSuiteWorkspace;
pageId: string;
onInit?: (page: Page, editor: Readonly<EditorContainer>) => void;
@@ -32,6 +33,7 @@ export const PageDetailEditor: React.FC<PageDetailEditorProps> = ({
onInit,
onLoad,
header,
isPublic,
}) => {
const page = blockSuiteWorkspace.getPage(pageId);
if (!page) {
@@ -48,6 +50,7 @@ export const PageDetailEditor: React.FC<PageDetailEditorProps> = ({
<title>{title}</title>
</Helmet>
<BlockSuiteEditorHeader
isPublic={isPublic}
blockSuiteWorkspace={blockSuiteWorkspace}
pageId={pageId}
>

View File

@@ -1,7 +1,7 @@
import { UNTITLED_WORKSPACE_NAME } from '@affine/env';
import React from 'react';
import { useBlockSuiteWorkspaceBlobUrl } from '../../../hooks/use-blocksuite-workspace-blob-url';
import { useBlockSuiteWorkspaceAvatarUrl } from '../../../hooks/use-blocksuite-workspace-avatar-url';
import { BlockSuiteWorkspace, RemWorkspace } from '../../../shared';
import { stringToColour } from '../../../utils';
@@ -87,7 +87,7 @@ export const BlockSuiteWorkspaceAvatar: React.FC<BlockSuiteWorkspaceAvatar> = ({
style,
...props
}) => {
const [avatar] = useBlockSuiteWorkspaceBlobUrl(workspace);
const [avatar] = useBlockSuiteWorkspaceAvatarUrl(workspace);
return (
<Avatar