feat: the UI of importing Html/Markdown/Notion (#2533)

Co-authored-by: Himself65 <himself65@outlook.com>
This commit is contained in:
xiaodong zuo
2023-05-26 15:30:39 +08:00
committed by GitHub
parent 902081d44e
commit 798dc49da4
8 changed files with 37 additions and 2 deletions

View File

@@ -26,11 +26,13 @@ const AllPagesHead = ({
sorter,
createNewPage,
createNewEdgeless,
importFile,
}: {
isPublicWorkspace: boolean;
sorter: ReturnType<typeof useSorter<ListData>>;
createNewPage: () => void;
createNewEdgeless: () => void;
importFile: () => void;
}) => {
const t = useAFFiNEI18N();
const titleList = [
@@ -56,6 +58,7 @@ const AllPagesHead = ({
<NewPageButton
createNewPage={createNewPage}
createNewEdgeless={createNewEdgeless}
importFile={importFile}
/>
),
showWhen: () => !isPublicWorkspace,
@@ -109,6 +112,7 @@ export const PageList = ({
list,
onCreateNewPage,
onCreateNewEdgeless,
onImportFile,
}: PageListProps) => {
const sorter = useSorter<ListData>({
data: list,
@@ -124,6 +128,7 @@ export const PageList = ({
isPublicWorkspace={isPublicWorkspace}
createNewPage={onCreateNewPage}
createNewEdgeless={onCreateNewEdgeless}
importFile={onImportFile}
list={sorter.data}
/>
);
@@ -145,6 +150,7 @@ export const PageList = ({
sorter={sorter}
createNewPage={onCreateNewPage}
createNewEdgeless={onCreateNewEdgeless}
importFile={onImportFile}
/>
<AllPagesBody
isPublicWorkspace={isPublicWorkspace}

View File

@@ -1,5 +1,5 @@
import { useAFFiNEI18N } from '@affine/i18n/hooks';
import { EdgelessIcon, PageIcon } from '@blocksuite/icons';
import { EdgelessIcon, ImportIcon, PageIcon } from '@blocksuite/icons';
import { useState } from 'react';
import { DropdownButton } from '../../../ui/button/dropdown';
@@ -9,11 +9,13 @@ import { BlockCard } from '../../card/block-card';
type NewPageButtonProps = {
createNewPage: () => void;
createNewEdgeless: () => void;
importFile: () => void;
};
export const CreateNewPagePopup = ({
createNewPage,
createNewEdgeless,
importFile,
}: NewPageButtonProps) => {
const t = useAFFiNEI18N();
return (
@@ -37,6 +39,12 @@ export const CreateNewPagePopup = ({
right={<EdgelessIcon width={20} height={20} />}
onClick={createNewEdgeless}
/>
<BlockCard
title={t['com.affine.new_import']()}
desc={t['com.affine.import_file']()}
right={<ImportIcon width={20} height={20} />}
onClick={importFile}
/>
{/* TODO Import */}
</div>
);
@@ -45,6 +53,7 @@ export const CreateNewPagePopup = ({
export const NewPageButton = ({
createNewPage,
createNewEdgeless,
importFile,
}: NewPageButtonProps) => {
const t = useAFFiNEI18N();
const [open, setOpen] = useState(false);
@@ -68,6 +77,10 @@ export const NewPageButton = ({
createNewEdgeless();
setOpen(false);
}}
importFile={() => {
importFile();
setOpen(false);
}}
/>
}
>

View File

@@ -21,10 +21,12 @@ const MobileHead = ({
isPublicWorkspace,
createNewPage,
createNewEdgeless,
importFile,
}: {
isPublicWorkspace: boolean;
createNewPage: () => void;
createNewEdgeless: () => void;
importFile: () => void;
}) => {
const t = useAFFiNEI18N();
return (
@@ -43,6 +45,7 @@ const MobileHead = ({
<NewPageButton
createNewPage={createNewPage}
createNewEdgeless={createNewEdgeless}
importFile={importFile}
/>
</div>
</TableCell>
@@ -57,11 +60,13 @@ export const AllPageListMobileView = ({
isPublicWorkspace,
createNewPage,
createNewEdgeless,
importFile,
}: {
isPublicWorkspace: boolean;
list: ListData[];
createNewPage: () => void;
createNewEdgeless: () => void;
importFile: () => void;
}) => {
return (
<StyledTableContainer>
@@ -70,6 +75,7 @@ export const AllPageListMobileView = ({
isPublicWorkspace={isPublicWorkspace}
createNewPage={createNewPage}
createNewEdgeless={createNewEdgeless}
importFile={importFile}
/>
<AllPagesBody
isPublicWorkspace={isPublicWorkspace}

View File

@@ -41,4 +41,5 @@ export type PageListProps = {
list: ListData[];
onCreateNewPage: () => void;
onCreateNewEdgeless: () => void;
onImportFile: () => void;
};