@@ -0,0 +1,2 @@ | |||||
node_modules | |||||
build |
@@ -0,0 +1,6 @@ | |||||
{ | |||||
"extends": [ | |||||
"stylelint-config-standard", | |||||
"stylelint-config-recommended-less" | |||||
] | |||||
} |
@@ -0,0 +1,17 @@ | |||||
{ | |||||
"presets": [ | |||||
[ | |||||
"@babel/preset-env", | |||||
{ | |||||
"targets": { | |||||
"edge": "17", | |||||
"firefox": "60", | |||||
"chrome": "67", | |||||
"safari": "11.1" | |||||
}, | |||||
"useBuiltIns": "usage", | |||||
"corejs": "3.6.5" | |||||
} | |||||
] | |||||
] | |||||
} |
@@ -34,16 +34,17 @@ | |||||
"xlsx": "^0.16.9" | "xlsx": "^0.16.9" | ||||
}, | }, | ||||
"scripts": { | "scripts": { | ||||
"start": "set PORT=13001 && craco start", | |||||
"build": "del build.zip 2>nul && set \"GENERATE_SOURCEMAP=false\" && set \"SKIP_PREFLIGHT_CHECK=true\" && craco build && 360zip.exe -ar build %cd%/build.zip || ECHO.", | |||||
"start": "cross-env PORT=13001 craco start", | |||||
"build": "craco build", | |||||
"test": "craco test", | "test": "craco test", | ||||
"eject": "craco eject", | "eject": "craco eject", | ||||
"analyze": "source-map-explorer 'build/static/js/*.js'" | |||||
"analyze": "source-map-explorer 'build/static/js/*.js'", | |||||
"preinstall": "node -e \"if (process.env.npm_execpath.indexOf('yarn') === -1) throw new Error('Use yarn for installing: https://yarnpkg.com/en/docs/install')\"", | |||||
"fix": "eslint --fix src/**/*.{js,jsx,ts,tsx}", | |||||
"lint:css": "stylelint src/**/*.{css,less} --fix" | |||||
}, | }, | ||||
"eslintConfig": { | "eslintConfig": { | ||||
"extends": [ | |||||
"react-app" | |||||
] | |||||
"extends": "react-app" | |||||
}, | }, | ||||
"browserslist": { | "browserslist": { | ||||
"production": [ | "production": [ | ||||
@@ -58,5 +59,31 @@ | |||||
"last 1 safari version", | "last 1 safari version", | ||||
"ie 9, ie 10, ie 11" | "ie 9, ie 10, ie 11" | ||||
] | ] | ||||
}, | |||||
"devDependencies": { | |||||
"@babel/core": "^7.18.13", | |||||
"@babel/eslint-parser": "^7.18.9", | |||||
"@babel/preset-react": "^7.18.6", | |||||
"cross-env": "^7.0.3", | |||||
"eslint": "8.22.0", | |||||
"eslint-plugin-react": "^7.31.1", | |||||
"husky": "^4.3.8", | |||||
"lint-staged": "^13.0.3", | |||||
"stylelint": "^14.11.0", | |||||
"stylelint-config-recommended-less": "^1.0.4", | |||||
"stylelint-config-standard": "^28.0.0" | |||||
}, | |||||
"lint-staged": { | |||||
"src/**/*.{css,less}": [ | |||||
"stylelint --fix" | |||||
], | |||||
"src/**/*.{js,jsx,ts,tsx}": [ | |||||
"eslint --fix" | |||||
] | |||||
}, | |||||
"husky": { | |||||
"hooks": { | |||||
"pre-commit": "lint-staged" | |||||
} | |||||
} | } | ||||
} | } |
@@ -2,6 +2,7 @@ import React from "react"; | |||||
import ReactDOM from "react-dom"; | import ReactDOM from "react-dom"; | ||||
import App from "./App"; | import App from "./App"; | ||||
// eslint-disable-next-line no-undef | |||||
it("renders without crashing", () => { | it("renders without crashing", () => { | ||||
const div = document.createElement("div"); | const div = document.createElement("div"); | ||||
ReactDOM.render(<App />, div); | ReactDOM.render(<App />, div); | ||||
@@ -10,7 +10,7 @@ class DataChart extends React.Component { | |||||
}; | }; | ||||
} | } | ||||
componentWillMount() { | |||||
UNSAFE_componentWillMount() { | |||||
fetch(this.props.url, { | fetch(this.props.url, { | ||||
method: "GET", | method: "GET", | ||||
}).then(res => res.text()) | }).then(res => res.text()) | ||||
@@ -113,8 +113,8 @@ class FileTree extends React.Component { | |||||
}); | }); | ||||
const uploadFileType = e.target.value; | const uploadFileType = e.target.value; | ||||
console.log(this.state.file); | |||||
console.log(this.state.info); | |||||
// console.log(this.state.file); | |||||
// console.log(this.state.info); | |||||
const newInfo = Setting.deepCopy(this.state.info); | const newInfo = Setting.deepCopy(this.state.info); | ||||
if (uploadFileType !== "Other") { | if (uploadFileType !== "Other") { | ||||
@@ -73,9 +73,9 @@ class VideoListPage extends React.Component { | |||||
uploadFile(info) { | uploadFile(info) { | ||||
const {status, response: res} = info.file; | const {status, response: res} = info.file; | ||||
if (status !== "uploading") { | |||||
console.log(info.file, info.fileList); | |||||
} | |||||
// if (status !== "uploading") { | |||||
// console.log(info.file, info.fileList); | |||||
// } | |||||
if (status === "done") { | if (status === "done") { | ||||
if (res.status === "ok") { | if (res.status === "ok") { | ||||
Setting.showMessage("success", "上传视频成功"); | Setting.showMessage("success", "上传视频成功"); | ||||
@@ -11,12 +11,11 @@ const resources = { | |||||
function initLanguage() { | function initLanguage() { | ||||
let language = localStorage.getItem("language"); | let language = localStorage.getItem("language"); | ||||
if (language === undefined || language == null) { | |||||
if (language === undefined || language === null) { | |||||
if (Conf.ForceLanguage !== "") { | if (Conf.ForceLanguage !== "") { | ||||
language = Conf.ForceLanguage; | language = Conf.ForceLanguage; | ||||
} else { | } else { | ||||
let userLanguage; | |||||
userLanguage = navigator.language; | |||||
const userLanguage = navigator.language; | |||||
switch (userLanguage) { | switch (userLanguage) { | ||||
case "zh-CN": | case "zh-CN": | ||||
language = "zh"; | language = "zh"; | ||||
@@ -41,6 +41,7 @@ export function register(config) { | |||||
// Add some additional logging to localhost, pointing developers to the | // Add some additional logging to localhost, pointing developers to the | ||||
// service worker/PWA documentation. | // service worker/PWA documentation. | ||||
navigator.serviceWorker.ready.then(() => { | navigator.serviceWorker.ready.then(() => { | ||||
// eslint-disable-next-line no-console | |||||
console.log( | console.log( | ||||
"This web app is being served cache-first by a service " + | "This web app is being served cache-first by a service " + | ||||
"worker. To learn more, visit https://bit.ly/CRA-PWA" | "worker. To learn more, visit https://bit.ly/CRA-PWA" | ||||
@@ -60,7 +61,7 @@ function registerValidSW(swUrl, config) { | |||||
.then(registration => { | .then(registration => { | ||||
registration.onupdatefound = () => { | registration.onupdatefound = () => { | ||||
const installingWorker = registration.installing; | const installingWorker = registration.installing; | ||||
if (installingWorker == null) { | |||||
if (installingWorker === null) { | |||||
return; | return; | ||||
} | } | ||||
installingWorker.onstatechange = () => { | installingWorker.onstatechange = () => { | ||||
@@ -69,6 +70,7 @@ function registerValidSW(swUrl, config) { | |||||
// At this point, the updated precached content has been fetched, | // At this point, the updated precached content has been fetched, | ||||
// but the previous service worker will still serve the older | // but the previous service worker will still serve the older | ||||
// content until all client tabs are closed. | // content until all client tabs are closed. | ||||
// eslint-disable-next-line no-console | |||||
console.log( | console.log( | ||||
"New content is available and will be used when all " + | "New content is available and will be used when all " + | ||||
"tabs for this page are closed. See https://bit.ly/CRA-PWA." | "tabs for this page are closed. See https://bit.ly/CRA-PWA." | ||||
@@ -82,6 +84,7 @@ function registerValidSW(swUrl, config) { | |||||
// At this point, everything has been precached. | // At this point, everything has been precached. | ||||
// It's the perfect time to display a | // It's the perfect time to display a | ||||
// "Content is cached for offline use." message. | // "Content is cached for offline use." message. | ||||
// eslint-disable-next-line no-console | |||||
console.log("Content is cached for offline use."); | console.log("Content is cached for offline use."); | ||||
// Execute callback | // Execute callback | ||||
@@ -94,6 +97,7 @@ function registerValidSW(swUrl, config) { | |||||
}; | }; | ||||
}) | }) | ||||
.catch(error => { | .catch(error => { | ||||
// eslint-disable-next-line no-console | |||||
console.error("Error during service worker registration:", error); | console.error("Error during service worker registration:", error); | ||||
}); | }); | ||||
} | } | ||||
@@ -106,7 +110,7 @@ function checkValidServiceWorker(swUrl, config) { | |||||
const contentType = response.headers.get("content-type"); | const contentType = response.headers.get("content-type"); | ||||
if ( | if ( | ||||
response.status === 404 || | response.status === 404 || | ||||
(contentType != null && contentType.indexOf("javascript") === -1) | |||||
(contentType !== null && contentType.indexOf("javascript") === -1) | |||||
) { | ) { | ||||
// No service worker found. Probably a different app. Reload the page. | // No service worker found. Probably a different app. Reload the page. | ||||
navigator.serviceWorker.ready.then(registration => { | navigator.serviceWorker.ready.then(registration => { | ||||
@@ -120,6 +124,7 @@ function checkValidServiceWorker(swUrl, config) { | |||||
} | } | ||||
}) | }) | ||||
.catch(() => { | .catch(() => { | ||||
// eslint-disable-next-line no-console | |||||
console.log( | console.log( | ||||
"No internet connection found. App is running in offline mode." | "No internet connection found. App is running in offline mode." | ||||
); | ); | ||||