提交 2228ca7b authored 作者: 王鹏飞's avatar 王鹏飞

refactor(admin): colocate image and gallery features

上级 afcc4c73
import { useState, useEffect, forwardRef } from "react"; import { useState, useEffect, forwardRef } from "react";
import { Divider, Input, Space, Button, Form, ColorPicker, Tabs, Select, Row, Col } from "antd"; import { Divider, Input, Space, Button, Form, ColorPicker, Tabs, Select, Row, Col } from "antd";
import "./index.less"; import "../../index.less";
import { addGallery } from "../utils/request"; import { addGallery } from "../../utils/request";
import { SlateEditor, SlateTransforms, SlateElement } from "@wangeditor/editor"; import { SlateEditor, SlateTransforms, SlateElement } from "@wangeditor/editor";
import { findNodeWithParent, fontSizeList } from "../utils/setting"; import { findNodeWithParent, fontSizeList } from "../../utils/setting";
import GalleryFormItem from "./galleryItem"; import GalleryFormItem from "./GalleryItem";
const randomOne = Math.random().toString(16).substring(2, 10); const randomOne = Math.random().toString(16).substring(2, 10);
const GalleryModal = (props, ref) => { const GalleryModal = (props, ref) => {
......
import { useState, useEffect, useImperativeHandle, forwardRef } from "react"; import { useState, useEffect, useImperativeHandle, forwardRef } from "react";
import { CloudUploadOutlined } from "@ant-design/icons"; import { CloudUploadOutlined } from "@ant-design/icons";
import { Form, Input, Spin, Upload, Button } from "antd"; import { Form, Input, Spin, Upload, Button } from "antd";
import OnlineImageList from "./onlineImageList"; import OnlineImageList from "../../shared/online-image/OnlineImageList";
import { uploadFile } from "@/utils/oss"; import { uploadFile } from "@/utils/oss";
const fileAccept = [".png", ".jpg", ".jpeg", ".svg"]; const fileAccept = [".png", ".jpg", ".jpeg", ".svg"];
......
import { defineEditorFeature } from '../../core/define-editor-feature' import { defineEditorFeature } from '../../core/define-editor-feature'
import menu from '../../customer/Gallery' import menu from './menu'
import onlineMenu from '../../customer/GalleryOnline' import onlineMenu from './online-menu'
import nodeModule from '../../node/gallery' import nodeModule from './node'
import inlineNodeModule from '../../node/galleryInline' import inlineNodeModule from './inline-node'
export default defineEditorFeature({ export default defineEditorFeature({
id: 'gallery', id: 'gallery',
......
...@@ -2,7 +2,7 @@ import { DomEditor, SlateTransforms } from "@wangeditor/editor"; ...@@ -2,7 +2,7 @@ import { DomEditor, SlateTransforms } from "@wangeditor/editor";
import { h } from "snabbdom"; import { h } from "snabbdom";
import iconGallery from "@/assets/images/editor/icon_gallery_editor.png"; import iconGallery from "@/assets/images/editor/icon_gallery_editor.png";
import iconClose from "@/assets/images/icon_chapter_close.png"; import iconClose from "@/assets/images/icon_chapter_close.png";
import { findNodeWithParent } from "../utils/setting"; import { findNodeWithParent } from "../../utils/setting";
const withGalleryNode = (editor) => { const withGalleryNode = (editor) => {
const { isVoid, normalizeNode } = editor; const { isVoid, normalizeNode } = editor;
......
...@@ -2,8 +2,8 @@ import { useState, useEffect, forwardRef } from "react"; ...@@ -2,8 +2,8 @@ import { useState, useEffect, forwardRef } from "react";
import { Divider, Upload, Input, Space, Button, Form, Spin, message } from "antd"; import { Divider, Upload, Input, Space, Button, Form, Spin, message } from "antd";
import { CloudUploadOutlined } from "@ant-design/icons"; import { CloudUploadOutlined } from "@ant-design/icons";
import { SlateTransforms, SlateEditor, SlateElement } from "@wangeditor/editor"; import { SlateTransforms, SlateEditor, SlateElement } from "@wangeditor/editor";
import "./index.less"; import "../../index.less";
import OnlineImageList from "./onlineImageList"; import OnlineImageList from "../../shared/online-image/OnlineImageList";
import { uploadFile } from "@/utils/oss"; import { uploadFile } from "@/utils/oss";
......
import { defineEditorFeature } from '../../core/define-editor-feature' import { defineEditorFeature } from '../../core/define-editor-feature'
import editMenu from '../../customer/ImageEditor' import editMenu from './edit-menu'
import onlineMenu from '../../customer/ImageOnline' import onlineMenu from './online-menu'
import nodeModule from '../../node/image' import nodeModule from './node'
export default defineEditorFeature({ export default defineEditorFeature({
id: 'image', id: 'image',
......
...@@ -8,7 +8,7 @@ import ImageAutoConf, { ...@@ -8,7 +8,7 @@ import ImageAutoConf, {
imageWidth100MenuChapterConf, imageWidth100MenuChapterConf,
imageWidth50MenuChapterConf, imageWidth50MenuChapterConf,
imageWidth30MenuChapterConf, imageWidth30MenuChapterConf,
} from "../customer/Image"; } from "./menu";
const withImageNode = (editor) => { const withImageNode = (editor) => {
const { isInline, isVoid, normalizeNode } = editor; const { isInline, isVoid, normalizeNode } = editor;
......
...@@ -22,9 +22,9 @@ dayjs.extend(relativeTime); ...@@ -22,9 +22,9 @@ dayjs.extend(relativeTime);
import { storageChange } from "@/utils/storage.js"; import { storageChange } from "@/utils/storage.js";
import ImageModal from "./components/image"; import ImageModal from "./features/image/ImageDialog";
import VideoModal from "./features/video/VideoDialog"; import VideoModal from "./features/video/VideoDialog";
import GalleryModal from "./components/gallery"; import GalleryModal from "./features/gallery/GalleryDialog";
import AudioModal from "./features/audio/AudioDialog"; import AudioModal from "./features/audio/AudioDialog";
import ChapterTitleModal from "./features/chapter-structure/TitleDialog"; import ChapterTitleModal from "./features/chapter-structure/TitleDialog";
import ChapterItemModal from "./features/chapter-structure/SectionDialog"; import ChapterItemModal from "./features/chapter-structure/SectionDialog";
......
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论