diff --git a/craco.config.js b/craco.config.js
index 9e049ef..f5794c7 100644
--- a/craco.config.js
+++ b/craco.config.js
@@ -2,6 +2,8 @@ const CracoLessPlugin = require('craco-less');
module.exports = {
devServer: {
+
+ // proxy for local development.
proxy: {
'/api': {
target: 'http://localhost:6010',
@@ -14,6 +16,8 @@ module.exports = {
},
plugins: [
{
+
+ // less loader.
plugin: CracoLessPlugin,
options: {
lessLoaderOptions: {
diff --git a/src/common/model/matter/Matter.ts b/src/common/model/matter/Matter.ts
index 1238660..6b9e0bf 100644
--- a/src/common/model/matter/Matter.ts
+++ b/src/common/model/matter/Matter.ts
@@ -3,7 +3,7 @@ import axios, { CancelTokenSource } from "axios";
import BaseEntity from "../base/BaseEntity";
import Filter from "../base/filter/Filter";
import HttpUtil from "../../util/HttpUtil";
-import FileUtil from "../../util/FileUtil";
+import FileUtil from "../../util/FileHelper";
import ImageUtil from "../../util/ImageUtil";
import EnvUtil from "../../util/EnvUtil";
import InputFilter from "../base/filter/InputFilter";
diff --git a/src/common/model/share/Share.ts b/src/common/model/share/Share.ts
index ce88e70..378e107 100644
--- a/src/common/model/share/Share.ts
+++ b/src/common/model/share/Share.ts
@@ -1,9 +1,9 @@
import BaseEntity from "../base/BaseEntity";
import Matter from "../matter/Matter";
-import FileUtil from "../../util/FileUtil";
+import FileUtil from "../../util/FileHelper";
import EnvUtil from "../../util/EnvUtil";
-import { ShareType } from "./ShareType";
-import { ShareExpireOption, ShareExpireOptionMap } from "./ShareExpireOption";
+import {ShareType} from "./ShareType";
+import {ShareExpireOption, ShareExpireOptionMap} from "./ShareExpireOption";
import DateUtil from "../../util/DateUtil";
import SafeUtil from "../../util/SafeUtil";
import MessageBoxUtil from "../../util/MessageBoxUtil";
@@ -62,7 +62,10 @@ export default class Share extends BaseEntity {
getIcon() {
if (this.shareType === ShareType.MIX) {
- return require("../../../assets/image/file/archive.svg");
+ return FileUtil.getIcon(
+ "zip",
+ false
+ );
} else {
return FileUtil.getIcon(
this.name,
@@ -135,7 +138,7 @@ export default class Share extends BaseEntity {
) {
this.httpPost(
Share.URL_DELETE_BATCH,
- { uuids: uuids },
+ {uuids: uuids},
function (response: any) {
SafeUtil.safeCallback(successCallback)(response);
},
diff --git a/src/common/util/FileUtil.ts b/src/common/util/FileHelper.tsx
similarity index 81%
rename from src/common/util/FileUtil.ts
rename to src/common/util/FileHelper.tsx
index f125b21..f3489ad 100644
--- a/src/common/util/FileUtil.ts
+++ b/src/common/util/FileHelper.tsx
@@ -2,6 +2,18 @@ import MimeUtil from "./MimeUtil";
import StringUtil from "./StringUtil";
import Lang from "../model/global/Lang";
import CSV from "comma-separated-values";
+import archiveSvg from "../../assets/image/file/archive.svg";
+import audioSvg from "../../assets/image/file/audio.svg";
+import docSvg from "../../assets/image/file/doc.svg";
+import fileSvg from "../../assets/image/file/file.svg";
+import folderSvg from "../../assets/image/file/folder.svg";
+import imageSvg from "../../assets/image/file/image.svg";
+import pdfSvg from "../../assets/image/file/pdf.svg";
+import pptSvg from "../../assets/image/file/ppt.svg";
+import psdSvg from "../../assets/image/file/psd.svg";
+import textSvg from "../../assets/image/file/text.svg";
+import videoSvg from "../../assets/image/file/video.svg";
+import xlsSvg from "../../assets/image/file/xls.svg";
export default class FileUtil {
static isImage(name: string | null): boolean {
@@ -74,30 +86,30 @@ export default class FileUtil {
*/
static getIcon(name: string | null, idDir: boolean = false): any {
if (idDir) {
- return require("../../assets/image/file/folder.svg");
+ return folderSvg;
}
if (FileUtil.isPdf(name)) {
- return require("../../assets/image/file/pdf.svg");
+ return pdfSvg;
} else if (FileUtil.isDoc(name)) {
- return require("../../assets/image/file/doc.svg");
+ return docSvg;
} else if (FileUtil.isPpt(name)) {
- return require("../../assets/image/file/ppt.svg");
+ return pptSvg;
} else if (FileUtil.isXls(name)) {
- return require("../../assets/image/file/xls.svg");
+ return xlsSvg;
} else if (FileUtil.isAudio(name)) {
- return require("../../assets/image/file/audio.svg");
+ return audioSvg;
} else if (
FileUtil.isVideo(name) ||
MimeUtil.getExtension(name) === ".mkv"
) {
- return require("../../assets/image/file/video.svg");
+ return videoSvg;
} else if (FileUtil.isText(name)) {
- return require("../../assets/image/file/text.svg");
+ return textSvg;
} else if (FileUtil.isPsd(name)) {
- return require("../../assets/image/file/psd.svg");
+ return psdSvg;
} else if (FileUtil.isImage(name)) {
- return require("../../assets/image/file/image.svg");
+ return imageSvg;
} else if (
StringUtil.endWith(name, "zip") ||
StringUtil.endWith(name, "rar") ||
@@ -106,9 +118,9 @@ export default class FileUtil {
StringUtil.endWith(name, "tar") ||
StringUtil.endWith(name, "gz")
) {
- return require("../../assets/image/file/archive.svg");
+ return archiveSvg;
} else {
- return require("../../assets/image/file/file.svg");
+ return fileSvg;
}
}
diff --git a/src/pages/dashboard/Index.tsx b/src/pages/dashboard/Index.tsx
index 2db76f4..fc4087a 100644
--- a/src/pages/dashboard/Index.tsx
+++ b/src/pages/dashboard/Index.tsx
@@ -12,7 +12,7 @@ import Pager from "../../common/model/base/Pager";
import Dashboard from '../../common/model/dashboard/Dashboard';
import DateUtil from '../../common/util/DateUtil';
import SortDirection from "../../common/model/base/SortDirection";
-import FileUtil from "../../common/util/FileUtil";
+import FileUtil from "../../common/util/FileHelper";
import Matter from '../../common/model/matter/Matter';
import Lang from "../../common/model/global/Lang";
import MessageBoxUtil from "../../common/util/MessageBoxUtil";
diff --git a/src/pages/matter/List.tsx b/src/pages/matter/List.tsx
index 4d05bab..1953fd3 100644
--- a/src/pages/matter/List.tsx
+++ b/src/pages/matter/List.tsx
@@ -45,7 +45,7 @@ import ShareDialogModal from "../share/widget/ShareDialogModal";
import BreadcrumbModel from "../../common/model/base/option/BreadcrumbModel";
import BreadcrumbPanel from "../widget/BreadcrumbPanel";
import Lang from "../../common/model/global/Lang";
-import FileUtil from "../../common/util/FileUtil";
+import FileUtil from "../../common/util/FileHelper";
import SafeUtil from "../../common/util/SafeUtil";
import MatterSortPanel from "./widget/MatterSortPanel";
import {
diff --git a/src/pages/matter/widget/imageCache/ImageCachePanel.tsx b/src/pages/matter/widget/imageCache/ImageCachePanel.tsx
index c032898..801a50e 100644
--- a/src/pages/matter/widget/imageCache/ImageCachePanel.tsx
+++ b/src/pages/matter/widget/imageCache/ImageCachePanel.tsx
@@ -11,7 +11,7 @@ import {
SmallDashOutlined,
} from "@ant-design/icons";
import MessageBoxUtil from "../../../../common/util/MessageBoxUtil";
-import FileUtil from "../../../../common/util/FileUtil";
+import FileUtil from "../../../../common/util/FileHelper";
import DateUtil from "../../../../common/util/DateUtil";
import Expanding from "../../../widget/Expanding";
import "./ImageCachePanel.less";
diff --git a/src/pages/preference/Edit.tsx b/src/pages/preference/Edit.tsx
index 9acaae7..2524361 100644
--- a/src/pages/preference/Edit.tsx
+++ b/src/pages/preference/Edit.tsx
@@ -9,7 +9,7 @@ import {Button, Form, Input, InputNumber, Switch} from "antd";
import {SaveOutlined} from "@ant-design/icons";
import TankContentCard from "../widget/TankContentCard";
import Preference from "../../common/model/preference/Preference";
-import FileUtil from "../../common/util/FileUtil";
+import FileUtil from "../../common/util/FileHelper";
import {FormInstance} from "antd/lib/form";
import MessageBoxUtil from "../../common/util/MessageBoxUtil";
import Sun from "../../common/model/global/Sun";
diff --git a/src/pages/preference/Index.tsx b/src/pages/preference/Index.tsx
index 0e55548..8adaf43 100644
--- a/src/pages/preference/Index.tsx
+++ b/src/pages/preference/Index.tsx
@@ -14,7 +14,7 @@ import {
import InfoCell from "../widget/InfoCell";
import Preference from "../../common/model/preference/Preference";
import TankContentCard from "../widget/TankContentCard";
-import FileUtil from "../../common/util/FileUtil";
+import FileUtil from "../../common/util/FileHelper";
import ImagePreviewer from "../widget/previewer/ImagePreviewer";
import Lang from "../../common/model/global/Lang";
import SingleTextModal from "../widget/SingleTextModal";
diff --git a/src/pages/user/Detail.tsx b/src/pages/user/Detail.tsx
index fa8ba26..235a33a 100644
--- a/src/pages/user/Detail.tsx
+++ b/src/pages/user/Detail.tsx
@@ -11,7 +11,7 @@ import TankContentCard from "../widget/TankContentCard";
import { Link, RouteComponentProps } from "react-router-dom";
import ImagePreviewer from "../widget/previewer/ImagePreviewer";
import { UserRole, UserRoleMap } from "../../common/model/user/UserRole";
-import FileUtil from "../../common/util/FileUtil";
+import FileUtil from "../../common/util/FileHelper";
import { UserStatus, UserStatusMap } from "../../common/model/user/UserStatus";
import BrowserUtil from "../../common/util/BrowserUtil";
import SingleTextModal from "../widget/SingleTextModal";
diff --git a/src/pages/user/Edit.tsx b/src/pages/user/Edit.tsx
index 3ba7438..067ba4e 100644
--- a/src/pages/user/Edit.tsx
+++ b/src/pages/user/Edit.tsx
@@ -6,7 +6,7 @@ import {Button, Form, Input, InputNumber, Select} from 'antd';
import User from "../../common/model/user/User";
import Moon from "../../common/model/global/Moon";
import TankTitle from "../widget/TankTitle";
-import FileUtil from "../../common/util/FileUtil";
+import FileUtil from "../../common/util/FileHelper";
import TankContentCard from "../widget/TankContentCard";
import {FormInstance} from "antd/lib/form";
import {SaveOutlined} from "@ant-design/icons/lib";
diff --git a/src/pages/user/List.tsx b/src/pages/user/List.tsx
index 48b5f35..2f29405 100644
--- a/src/pages/user/List.tsx
+++ b/src/pages/user/List.tsx
@@ -4,7 +4,7 @@ import "./List.less";
import SortDirection from "../../common/model/base/SortDirection";
import Pager from "../../common/model/base/Pager";
import StringUtil from "../../common/util/StringUtil";
-import FileUtil from "../../common/util/FileUtil";
+import FileUtil from "../../common/util/FileHelper";
import DateUtil from "../../common/util/DateUtil";
import FilterPanel from "../widget/filter/FilterPanel";
import TableEmpty from "../widget/TableEmpty";
diff --git a/src/pages/user/widget/MobileUserPanel.tsx b/src/pages/user/widget/MobileUserPanel.tsx
index f5dca4f..fcf7770 100644
--- a/src/pages/user/widget/MobileUserPanel.tsx
+++ b/src/pages/user/widget/MobileUserPanel.tsx
@@ -6,7 +6,7 @@ import User from "../../../common/model/user/User";
import { Link } from "react-router-dom";
import { UserRoleMap } from "../../../common/model/user/UserRole";
import { Tag, Tooltip } from "antd";
-import FileUtil from "../../../common/util/FileUtil";
+import FileUtil from "../../../common/util/FileHelper";
import {
UserStatus,
UserStatusMap,
diff --git a/src/pages/widget/previewer/BrowserPreviewer.tsx b/src/pages/widget/previewer/BrowserPreviewer.tsx
index 9ee38b6..65d13bd 100644
--- a/src/pages/widget/previewer/BrowserPreviewer.tsx
+++ b/src/pages/widget/previewer/BrowserPreviewer.tsx
@@ -1,7 +1,7 @@
import "./BrowserPreviewer.less"
import React from "react";
import * as ReactDOM from 'react-dom';
-import FileUtil from "../../../common/util/FileUtil";
+import FileUtil from "../../../common/util/FileHelper";
import {CloseOutlined} from "@ant-design/icons";
interface IProps {
diff --git a/src/react-app-env.d.ts b/src/react-app-env.d.ts
index 772a351..d81a2ca 100644
--- a/src/react-app-env.d.ts
+++ b/src/react-app-env.d.ts
@@ -1,69 +1,4 @@
-///
-///
-///
-
-declare namespace NodeJS {
- interface ProcessEnv {
- readonly NODE_ENV: 'development' | 'production' | 'test';
- readonly PUBLIC_URL: string;
- }
-}
-
-declare module '*.bmp' {
- const src: string;
- export default src;
-}
-
-declare module '*.gif' {
- const src: string;
- export default src;
-}
-
-declare module '*.jpg' {
- const src: string;
- export default src;
-}
-
-declare module '*.jpeg' {
- const src: string;
- export default src;
-}
-
-declare module '*.png' {
- const src: string;
- export default src;
-}
-
-declare module '*.webp' {
- const src: string;
- export default src;
-}
-
-declare module '*.svg' {
- import * as React from 'react';
-
- export const ReactComponent: React.FunctionComponent & { title?: string }>;
-
- const src: string;
- export default src;
-}
-
-declare module '*.module.css' {
- const classes: { readonly [key: string]: string };
- export default classes;
-}
-
-declare module '*.module.scss' {
- const classes: { readonly [key: string]: string };
- export default classes;
-}
-
-declare module '*.module.sass' {
- const classes: { readonly [key: string]: string };
- export default classes;
-}
+///
declare module 'velocity-animate' {
import Velocity from 'velocity-animate';