mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-11 20:08:37 +00:00
feat: the UI of importing Html/Markdown/Notion (#2533)
Co-authored-by: Himself65 <himself65@outlook.com>
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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);
|
||||
}}
|
||||
/>
|
||||
}
|
||||
>
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -41,4 +41,5 @@ export type PageListProps = {
|
||||
list: ListData[];
|
||||
onCreateNewPage: () => void;
|
||||
onCreateNewEdgeless: () => void;
|
||||
onImportFile: () => void;
|
||||
};
|
||||
|
||||
@@ -63,6 +63,7 @@ AffineAllPageList.args = {
|
||||
isPublicWorkspace: false,
|
||||
onCreateNewPage: () => toast('Create new page'),
|
||||
onCreateNewEdgeless: () => toast('Create new edgeless'),
|
||||
onImportFile: () => toast('Import file'),
|
||||
list: [
|
||||
{
|
||||
pageId: '1',
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
"com.affine.write_with_a_blank_page": "Write with a blank page",
|
||||
"com.affine.new_edgeless": "New Edgeless",
|
||||
"com.affine.draw_with_a_blank_whiteboard": "Draw with a blank whiteboard",
|
||||
"com.affine.new_import": "Import",
|
||||
"com.affine.import_file": "Support Markdown/Notion",
|
||||
"New Keyword Page": "New '{{query}}' page",
|
||||
"Find 0 result": "Find 0 result",
|
||||
"Find results": "Find {{number}} results",
|
||||
|
||||
Reference in New Issue
Block a user