mirror of
https://github.com/usememos/memos.git
synced 2025-02-22 14:17:48 +01:00
chore: remove fullscreen button
This commit is contained in:
parent
2e79fe12e2
commit
7ec5d07cb8
@ -18,14 +18,13 @@ interface Props {
|
|||||||
className: string;
|
className: string;
|
||||||
initialContent: string;
|
initialContent: string;
|
||||||
placeholder: string;
|
placeholder: string;
|
||||||
fullscreen: boolean;
|
|
||||||
tools?: ReactNode;
|
tools?: ReactNode;
|
||||||
onContentChange: (content: string) => void;
|
onContentChange: (content: string) => void;
|
||||||
onPaste: (event: React.ClipboardEvent) => void;
|
onPaste: (event: React.ClipboardEvent) => void;
|
||||||
}
|
}
|
||||||
|
|
||||||
const Editor = forwardRef(function Editor(props: Props, ref: React.ForwardedRef<EditorRefActions>) {
|
const Editor = forwardRef(function Editor(props: Props, ref: React.ForwardedRef<EditorRefActions>) {
|
||||||
const { className, initialContent, placeholder, fullscreen, onPaste, onContentChange: handleContentChangeCallback } = props;
|
const { className, initialContent, placeholder, onPaste, onContentChange: handleContentChangeCallback } = props;
|
||||||
const editorRef = useRef<HTMLTextAreaElement>(null);
|
const editorRef = useRef<HTMLTextAreaElement>(null);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -36,10 +35,10 @@ const Editor = forwardRef(function Editor(props: Props, ref: React.ForwardedRef<
|
|||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (editorRef.current && !fullscreen) {
|
if (editorRef.current) {
|
||||||
updateEditorHeight();
|
updateEditorHeight();
|
||||||
}
|
}
|
||||||
}, [editorRef.current?.value, fullscreen]);
|
}, [editorRef.current?.value]);
|
||||||
|
|
||||||
const updateEditorHeight = () => {
|
const updateEditorHeight = () => {
|
||||||
if (editorRef.current) {
|
if (editorRef.current) {
|
||||||
|
@ -31,7 +31,6 @@ interface State {
|
|||||||
memoVisibility: Visibility;
|
memoVisibility: Visibility;
|
||||||
resourceList: Resource[];
|
resourceList: Resource[];
|
||||||
relationList: MemoRelation[];
|
relationList: MemoRelation[];
|
||||||
fullscreen: boolean;
|
|
||||||
isUploadingResource: boolean;
|
isUploadingResource: boolean;
|
||||||
isRequesting: boolean;
|
isRequesting: boolean;
|
||||||
}
|
}
|
||||||
@ -53,7 +52,6 @@ const MemoEditor = (props: Props) => {
|
|||||||
memoVisibility: "PRIVATE",
|
memoVisibility: "PRIVATE",
|
||||||
resourceList: [],
|
resourceList: [],
|
||||||
relationList: props.relationList ?? [],
|
relationList: props.relationList ?? [],
|
||||||
fullscreen: false,
|
|
||||||
isUploadingResource: false,
|
isUploadingResource: false,
|
||||||
isRequesting: false,
|
isRequesting: false,
|
||||||
});
|
});
|
||||||
@ -139,12 +137,6 @@ const MemoEditor = (props: Props) => {
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (event.key === "Escape") {
|
|
||||||
if (state.fullscreen) {
|
|
||||||
handleFullscreenBtnClick();
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (event.key === "Tab") {
|
if (event.key === "Tab") {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
const tabSpace = " ".repeat(TAB_SPACE_WIDTH);
|
const tabSpace = " ".repeat(TAB_SPACE_WIDTH);
|
||||||
@ -304,12 +296,6 @@ const MemoEditor = (props: Props) => {
|
|||||||
await tagStore.upsertTag(tagName);
|
await tagStore.upsertTag(tagName);
|
||||||
}
|
}
|
||||||
|
|
||||||
setState((state) => {
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
fullscreen: false,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
setState((prevState) => ({
|
setState((prevState) => ({
|
||||||
...prevState,
|
...prevState,
|
||||||
resourceList: [],
|
resourceList: [],
|
||||||
@ -352,15 +338,6 @@ const MemoEditor = (props: Props) => {
|
|||||||
editorRef.current?.scrollToCursor();
|
editorRef.current?.scrollToCursor();
|
||||||
};
|
};
|
||||||
|
|
||||||
const handleFullscreenBtnClick = useCallback(() => {
|
|
||||||
setState((state) => {
|
|
||||||
return {
|
|
||||||
...state,
|
|
||||||
fullscreen: !state.fullscreen,
|
|
||||||
};
|
|
||||||
});
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const handleTagSelectorClick = useCallback((tag: string) => {
|
const handleTagSelectorClick = useCallback((tag: string) => {
|
||||||
editorRef.current?.insertText(`#${tag} `);
|
editorRef.current?.insertText(`#${tag} `);
|
||||||
}, []);
|
}, []);
|
||||||
@ -374,18 +351,17 @@ const MemoEditor = (props: Props) => {
|
|||||||
className: `memo-editor`,
|
className: `memo-editor`,
|
||||||
initialContent: "",
|
initialContent: "",
|
||||||
placeholder: t("editor.placeholder"),
|
placeholder: t("editor.placeholder"),
|
||||||
fullscreen: state.fullscreen,
|
|
||||||
onContentChange: handleContentChange,
|
onContentChange: handleContentChange,
|
||||||
onPaste: handlePasteEvent,
|
onPaste: handlePasteEvent,
|
||||||
}),
|
}),
|
||||||
[state.fullscreen, i18n.language]
|
[i18n.language]
|
||||||
);
|
);
|
||||||
|
|
||||||
const allowSave = (hasContent || state.resourceList.length > 0) && !state.isUploadingResource && !state.isRequesting;
|
const allowSave = (hasContent || state.resourceList.length > 0) && !state.isUploadingResource && !state.isRequesting;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
className={`${className ?? ""} memo-editor-container ${state.fullscreen ? "fullscreen" : ""}`}
|
className={`${className ?? ""} memo-editor-container`}
|
||||||
tabIndex={0}
|
tabIndex={0}
|
||||||
onKeyDown={handleKeyDown}
|
onKeyDown={handleKeyDown}
|
||||||
onDrop={handleDropEvent}
|
onDrop={handleDropEvent}
|
||||||
@ -397,18 +373,15 @@ const MemoEditor = (props: Props) => {
|
|||||||
<div className="common-tools-wrapper">
|
<div className="common-tools-wrapper">
|
||||||
<div className="common-tools-container">
|
<div className="common-tools-container">
|
||||||
<TagSelector onTagSelectorClick={(tag) => handleTagSelectorClick(tag)} />
|
<TagSelector onTagSelectorClick={(tag) => handleTagSelectorClick(tag)} />
|
||||||
|
<button className="action-btn">
|
||||||
|
<Icon.Image className="icon-img" onClick={handleUploadFileBtnClick} />
|
||||||
|
</button>
|
||||||
<button className="action-btn">
|
<button className="action-btn">
|
||||||
<Icon.CheckSquare className="icon-img" onClick={handleCheckBoxBtnClick} />
|
<Icon.CheckSquare className="icon-img" onClick={handleCheckBoxBtnClick} />
|
||||||
</button>
|
</button>
|
||||||
<button className="action-btn">
|
<button className="action-btn">
|
||||||
<Icon.Code className="icon-img" onClick={handleCodeBlockBtnClick} />
|
<Icon.Code className="icon-img" onClick={handleCodeBlockBtnClick} />
|
||||||
</button>
|
</button>
|
||||||
<button className="action-btn">
|
|
||||||
<Icon.Image className="icon-img" onClick={handleUploadFileBtnClick} />
|
|
||||||
</button>
|
|
||||||
<button className="action-btn" onClick={handleFullscreenBtnClick}>
|
|
||||||
{state.fullscreen ? <Icon.Minimize className="icon-img" /> : <Icon.Maximize className="icon-img" />}
|
|
||||||
</button>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<ResourceListView resourceList={state.resourceList} setResourceList={handleSetResourceList} />
|
<ResourceListView resourceList={state.resourceList} setResourceList={handleSetResourceList} />
|
||||||
|
@ -1,32 +1,6 @@
|
|||||||
.memo-editor-container {
|
.memo-editor-container {
|
||||||
@apply relative w-full flex flex-col justify-start items-start bg-white dark:bg-zinc-700 px-4 rounded-lg border-2 border-gray-200 dark:border-zinc-600;
|
@apply relative w-full flex flex-col justify-start items-start bg-white dark:bg-zinc-700 px-4 rounded-lg border-2 border-gray-200 dark:border-zinc-600;
|
||||||
|
|
||||||
&.fullscreen {
|
|
||||||
@apply transition-all fixed w-full h-full top-0 left-0 z-1000 border-none rounded-none sm:p-8 dark:bg-zinc-800;
|
|
||||||
|
|
||||||
> .memo-editor {
|
|
||||||
@apply p-4 mb-4 rounded-lg border shadow-lg flex flex-col flex-grow justify-start items-start relative w-full h-full bg-white dark:bg-zinc-700 dark:border-zinc-600;
|
|
||||||
|
|
||||||
> .common-editor-inputer {
|
|
||||||
@apply flex-grow w-full !h-full max-h-full;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.tag-suggestions {
|
|
||||||
margin-left: 6px;
|
|
||||||
margin-top: 18px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tag-action > .tag-list {
|
|
||||||
@apply bottom-7;
|
|
||||||
top: unset !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.items-wrapper {
|
|
||||||
@apply mb-1 bottom-full top-auto;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.tag-suggestions {
|
.tag-suggestions {
|
||||||
margin-left: -10px;
|
margin-left: -10px;
|
||||||
margin-top: 2px;
|
margin-top: 2px;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user