mirror of https://github.com/casbin/casnode.git
feat(web): add some eslint rules (#531)
This commit is contained in:
parent
2de3f85ead
commit
68ab191685
|
@ -17,11 +17,15 @@
|
|||
"version": "detect"
|
||||
}
|
||||
},
|
||||
"plugins": ["unused-imports"],
|
||||
"extends": ["eslint:recommended", "plugin:react/recommended"],
|
||||
"rules": {
|
||||
// "eqeqeq": "error",
|
||||
"semi": ["error", "always"],
|
||||
// "indent": ["error", 2],
|
||||
"indent": ["error", 2, {
|
||||
"ignoredNodes": ["TemplateLiteral"],
|
||||
"SwitchCase": 1
|
||||
}],
|
||||
// follow antd's style guide
|
||||
"quotes": ["error", "double"],
|
||||
"jsx-quotes": ["error", "prefer-double"],
|
||||
|
@ -45,13 +49,48 @@
|
|||
"curly": ["error", "all"],
|
||||
"brace-style": ["error", "1tbs", { "allowSingleLine": true }],
|
||||
"no-mixed-spaces-and-tabs": "error",
|
||||
"sort-imports": [
|
||||
"error",
|
||||
{
|
||||
"ignoreDeclarationSort": true
|
||||
}
|
||||
],
|
||||
"no-multiple-empty-lines": [
|
||||
"error",
|
||||
{ "max": 1, "maxBOF": 0, "maxEOF": 0 }
|
||||
],
|
||||
"space-unary-ops": ["error", { "words": true, "nonwords": false }],
|
||||
"space-infix-ops": "error",
|
||||
"key-spacing": ["error", { "beforeColon": false, "afterColon": true }],
|
||||
"comma-style": ["error", "last"],
|
||||
"comma-dangle": [
|
||||
"error",
|
||||
{
|
||||
"arrays": "always-multiline",
|
||||
"objects": "always-multiline",
|
||||
"imports": "never",
|
||||
"exports": "never",
|
||||
"functions": "never"
|
||||
}
|
||||
],
|
||||
"no-multi-spaces": ["error", { "ignoreEOLComments": true }],
|
||||
"unused-imports/no-unused-imports": "error",
|
||||
"unused-imports/no-unused-vars": [
|
||||
"error",
|
||||
{
|
||||
"vars": "all",
|
||||
"varsIgnorePattern": "^_",
|
||||
"args": "none",
|
||||
"argsIgnorePattern": "^_"
|
||||
}
|
||||
],
|
||||
|
||||
"react/prop-types": "off",
|
||||
"react/display-name": "off",
|
||||
"react/react-in-jsx-scope": "off",
|
||||
|
||||
// don't use strict mod now, otherwise there are a lot of errors in the codebase
|
||||
"no-unused-vars": "warn",
|
||||
"no-unused-vars": "off",
|
||||
"react/no-deprecated": "warn",
|
||||
"no-case-declarations": "warn",
|
||||
"react/jsx-key": "warn"
|
||||
|
|
|
@ -31,6 +31,7 @@
|
|||
"react-dom": "^17.0.2",
|
||||
"react-dropzone": "^11.0.2",
|
||||
"react-github-corner": "^2.3.0",
|
||||
"react-helmet": "^6.1.0",
|
||||
"react-i18next": "^11.7.0",
|
||||
"react-markdown": "^4.3.1",
|
||||
"react-router-dom": "^5.2.0",
|
||||
|
@ -38,8 +39,7 @@
|
|||
"react-scroll": "^1.7.16",
|
||||
"react-select2-wrapper": "^1.0.4-beta6",
|
||||
"react-tagsinput": "^3.19.0",
|
||||
"react-zmage": "0.8.5-beta.36",
|
||||
"react-helmet": "^6.1.0"
|
||||
"react-zmage": "0.8.5-beta.36"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "set PORT=3000 && craco start",
|
||||
|
@ -66,11 +66,12 @@
|
|||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"eslint": "^7.11.0",
|
||||
"eslint-plugin-react": "^7.30.1",
|
||||
"eslint-plugin-unused-imports": "^2.0.0",
|
||||
"husky": "^4.3.8",
|
||||
"lint-staged": "^10.5.3",
|
||||
"prettier": "^2.2.1",
|
||||
"eslint": "^7.11.0",
|
||||
"eslint-plugin-react": "^7.30.1"
|
||||
"prettier": "^2.2.1"
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
|
|
|
@ -18,7 +18,7 @@ import "./App.less";
|
|||
import "codemirror/lib/codemirror.css";
|
||||
import {BackTop} from "antd";
|
||||
import * as Setting from "./Setting";
|
||||
import {Switch, Route} from "react-router-dom";
|
||||
import {Route, Switch} from "react-router-dom";
|
||||
import TopicPage from "./TopicPage";
|
||||
import Header from "./Header";
|
||||
import Footer from "./Footer";
|
||||
|
|
|
@ -11,7 +11,6 @@
|
|||
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
import * as ConfBackend from "./backend/ConfBackend.js";
|
||||
|
||||
export const AuthConfig = {
|
||||
// serverUrl: "https://door.casbin.com",
|
||||
|
|
|
@ -17,7 +17,7 @@ import * as AccountBackend from "./backend/AccountBackend";
|
|||
import * as NodeBackend from "./backend/NodeBackend";
|
||||
import * as Setting from "./Setting";
|
||||
import * as Conf from "./Conf";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import i18next from "i18next";
|
||||
import {ServerUrl} from "./Setting";
|
||||
|
||||
|
@ -168,8 +168,8 @@ class Header extends React.Component {
|
|||
const isSignedIn = this.props.account !== undefined && this.props.account !== null;
|
||||
const menuStyle = this.props.showMenu
|
||||
? {
|
||||
"--show-dropdown": "block",
|
||||
}
|
||||
"--show-dropdown": "block",
|
||||
}
|
||||
: null;
|
||||
|
||||
if (!isSignedIn) {
|
||||
|
|
|
@ -17,9 +17,8 @@ import * as Setting from "./Setting";
|
|||
import * as TopicBackend from "./backend/TopicBackend";
|
||||
import * as TabBackend from "./backend/TabBackend";
|
||||
import * as NotificationBackend from "./backend/NotificationBackend";
|
||||
import Avatar from "./Avatar";
|
||||
import TopicList from "./main/TopicList";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import moment from "moment";
|
||||
import i18next from "i18next";
|
||||
import {scoreConverter} from "./main/Tools";
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
import React from "react";
|
||||
import * as Setting from "../Setting";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import i18next from "i18next";
|
||||
import * as Conf from "../Conf";
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// limitations under the License.
|
||||
|
||||
import React from "react";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as PlaneBackend from "../backend/PlaneBackend.js";
|
||||
import * as TabBackend from "../backend/TabBackend.js";
|
||||
import * as NodeBackend from "../backend/NodeBackend";
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// limitations under the License.
|
||||
|
||||
import React from "react";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as PlaneBackend from "../backend/PlaneBackend.js";
|
||||
import * as Setting from "../Setting";
|
||||
import Zmage from "react-zmage";
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// limitations under the License.
|
||||
|
||||
import React from "react";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as PosterBackend from "../backend/PosterBackend";
|
||||
import * as Setting from "../Setting";
|
||||
import i18next from "i18next";
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// limitations under the License.
|
||||
|
||||
import React from "react";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as SensitiveBackend from "../backend/SensitiveBackend.js";
|
||||
import * as Setting from "../Setting";
|
||||
import i18next from "i18next";
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// limitations under the License.
|
||||
|
||||
import React from "react";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as TabBackend from "../backend/TabBackend.js";
|
||||
import * as Setting from "../Setting";
|
||||
import Select2 from "react-select2-wrapper";
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// limitations under the License.
|
||||
|
||||
import React from "react";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as TopicBackend from "../backend/TopicBackend.js";
|
||||
import * as Setting from "../Setting";
|
||||
import PageColumn from "../main/PageColumn";
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// limitations under the License.
|
||||
|
||||
import React from "react";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as TranslatorBackend from "../backend/TranslatorBackend";
|
||||
import * as Setting from "../Setting";
|
||||
import i18next from "i18next";
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// limitations under the License.
|
||||
|
||||
import React from "react";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as Setting from "../Setting";
|
||||
import i18next from "i18next";
|
||||
import * as BasicBackend from "../backend/BasicBackend";
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
import React from "react";
|
||||
import * as Setting from "../Setting";
|
||||
import * as TopicBackend from "../backend/TopicBackend";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import LatestReplyBox from "./LatestReplyBox";
|
||||
import PageColumn from "./PageColumn";
|
||||
import TopicList from "./TopicList";
|
||||
|
@ -262,8 +262,8 @@ class AllCreatedTopicsBox extends React.Component {
|
|||
{!pcBrowser ? <div className="sep10" style={{clear: "both"}} /> : null}
|
||||
{pcBrowser
|
||||
? this.state.TAB_LIST.map((tab) => {
|
||||
return this.renderTab(tab);
|
||||
})
|
||||
return this.renderTab(tab);
|
||||
})
|
||||
: null}
|
||||
</div>
|
||||
<TopicList topics={this.state.topics} showNodeName={true} showAvatar={false} timeStandard={"createdTime"} />
|
||||
|
|
|
@ -16,7 +16,7 @@ import React from "react";
|
|||
import * as Setting from "../Setting";
|
||||
import * as BalanceBackend from "../backend/BalanceBackend";
|
||||
import PageColumn from "./PageColumn";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import i18next from "i18next";
|
||||
import {scoreConverter} from "./Tools";
|
||||
import {Helmet} from "react-helmet";
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
import React from "react";
|
||||
import * as Setting from "../Setting";
|
||||
import * as BalanceBackend from "../backend/BalanceBackend";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import i18next from "i18next";
|
||||
|
||||
class CheckinBonusBox extends React.Component {
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
import React from "react";
|
||||
import * as Setting from "../Setting";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as TopicBackend from "../backend/TopicBackend";
|
||||
import * as ReplyBackend from "../backend/ReplyBackend";
|
||||
import {Controlled as CodeMirror} from "react-codemirror2";
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
import React from "react";
|
||||
import * as Setting from "../Setting";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as FavoritesBackend from "../backend/FavoritesBackend";
|
||||
import TopicList from "./TopicList";
|
||||
import PageColumn from "./PageColumn";
|
||||
|
|
|
@ -17,7 +17,7 @@ import * as FileBackend from "../backend/FileBackend";
|
|||
import * as Setting from "../Setting";
|
||||
import * as Tools from "./Tools";
|
||||
import PageColumn from "./PageColumn";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import "../deopzone.css";
|
||||
import Dropzone from "react-dropzone";
|
||||
import i18next from "i18next";
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// limitations under the License.
|
||||
|
||||
import React from "react";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as Setting from "../Setting";
|
||||
import * as ConfBackend from "../backend/ConfBackend";
|
||||
import "./NoMatch.css";
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
import React from "react";
|
||||
import * as Setting from "../Setting";
|
||||
import * as ReplyBackend from "../backend/ReplyBackend";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import PageColumn from "./PageColumn";
|
||||
import i18next from "i18next";
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ import React from "react";
|
|||
import * as Setting from "../Setting";
|
||||
import * as MemberBackend from "../backend/MemberBackend";
|
||||
import * as FavoritesBackend from "../backend/FavoritesBackend";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import Avatar from "../Avatar";
|
||||
import AllCreatedTopicsBox from "./AllCreatedTopicsBox";
|
||||
import LatestReplyBox from "./LatestReplyBox";
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
import React from "react";
|
||||
import * as Setting from "../Setting";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as NodeBackend from "../backend/NodeBackend";
|
||||
import * as TopicBackend from "../backend/TopicBackend";
|
||||
import Select2 from "react-select2-wrapper";
|
||||
|
|
|
@ -13,7 +13,6 @@
|
|||
// limitations under the License.
|
||||
|
||||
import React from "react";
|
||||
import Header from "./Header";
|
||||
import * as NodeBackend from "../backend/NodeBackend";
|
||||
import * as MemberBackend from "../backend/MemberBackend";
|
||||
import * as TopicBackend from "../backend/TopicBackend";
|
||||
|
|
|
@ -18,7 +18,7 @@ import * as TopicBackend from "../backend/TopicBackend";
|
|||
import * as MemberBackend from "../backend/MemberBackend";
|
||||
import * as Setting from "../Setting";
|
||||
import * as Tools from "./Tools";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import "./node-casbin.css";
|
||||
import "../codemirrorSize.css";
|
||||
import i18next from "i18next";
|
||||
|
|
|
@ -17,7 +17,7 @@ import * as Setting from "../Setting";
|
|||
import * as MemberBackend from "../backend/MemberBackend";
|
||||
import * as ReplyBackend from "../backend/ReplyBackend";
|
||||
import * as FavoritesBackend from "../backend/FavoritesBackend";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import "../Reply.css";
|
||||
import * as Tools from "./Tools";
|
||||
import "../codemirrorSize.css";
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
// limitations under the License.
|
||||
|
||||
import React from "react";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as Setting from "../Setting";
|
||||
import "./NoMatch.css";
|
||||
import i18next from "i18next";
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
import React from "react";
|
||||
import * as Setting from "../Setting";
|
||||
import * as NodeBackend from "../backend/NodeBackend";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as TopicBackend from "../backend/TopicBackend";
|
||||
import * as FavoritesBackend from "../backend/FavoritesBackend";
|
||||
import PageColumn from "./PageColumn";
|
||||
|
|
|
@ -18,7 +18,7 @@ import * as NotificationBackend from "../backend/NotificationBackend";
|
|||
import PageColumn from "./PageColumn";
|
||||
import Avatar from "../Avatar";
|
||||
import "../Notification.css";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import Zmage from "react-zmage";
|
||||
import ReactMarkdown from "react-markdown";
|
||||
import i18next from "i18next";
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
import React from "react";
|
||||
import * as Setting from "../Setting";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import "../Bottom.css";
|
||||
import "./node-casbin.css";
|
||||
import i18next from "i18next";
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import React from "react";
|
||||
import i18next from "i18next";
|
||||
import * as Setting from "../Setting";
|
||||
|
@ -70,36 +70,36 @@ class RankingPlayerBox extends React.Component {
|
|||
<table cellPadding="10" cellSpacing="0" border="0" width="100%">
|
||||
{this.state.playerList
|
||||
? this.state.playerList.map((member, key) => (
|
||||
<tr>
|
||||
<td width={Setting.PcBrowser ? "65" : "36"} valign="top" align="center" key={key}>
|
||||
<Avatar username={member.name} avatar={member.avatar} key={key} />
|
||||
</td>
|
||||
<td width="auto" align="left">
|
||||
<h2 style={{marginBottom: "10px", marginTop: "0px", fontSize: "20px"}}>
|
||||
<span className="gray">{key + 1}.</span> <a href={`/member/${member.name}`}>{member.name}</a>
|
||||
</h2>
|
||||
<div className="sep5"></div>
|
||||
<span className="gray f12">
|
||||
{" "}
|
||||
<a>{member.bio}</a>{" "}
|
||||
</span>
|
||||
<div className="sep5"></div>
|
||||
<span className="gray f12">
|
||||
{" "}
|
||||
<a href={member.homepage}>{member.homepage}</a>{" "}
|
||||
</span>
|
||||
<div className="sep5"></div>
|
||||
<span style={{fontSize: "18px", color: "#bbbbbb"}}>
|
||||
{i18next.t("member:No.")} {member.ranking} {i18next.t("member:member")}
|
||||
</span>
|
||||
<div className="sep5"></div>
|
||||
</td>
|
||||
<td width="200px" align="center">
|
||||
<div className="sep20"></div>
|
||||
<div>{this.renderPlayerBox(member.karma)}</div>
|
||||
</td>
|
||||
</tr>
|
||||
))
|
||||
<tr>
|
||||
<td width={Setting.PcBrowser ? "65" : "36"} valign="top" align="center" key={key}>
|
||||
<Avatar username={member.name} avatar={member.avatar} key={key} />
|
||||
</td>
|
||||
<td width="auto" align="left">
|
||||
<h2 style={{marginBottom: "10px", marginTop: "0px", fontSize: "20px"}}>
|
||||
<span className="gray">{key + 1}.</span> <a href={`/member/${member.name}`}>{member.name}</a>
|
||||
</h2>
|
||||
<div className="sep5"></div>
|
||||
<span className="gray f12">
|
||||
{" "}
|
||||
<a>{member.bio}</a>{" "}
|
||||
</span>
|
||||
<div className="sep5"></div>
|
||||
<span className="gray f12">
|
||||
{" "}
|
||||
<a href={member.homepage}>{member.homepage}</a>{" "}
|
||||
</span>
|
||||
<div className="sep5"></div>
|
||||
<span style={{fontSize: "18px", color: "#bbbbbb"}}>
|
||||
{i18next.t("member:No.")} {member.ranking} {i18next.t("member:member")}
|
||||
</span>
|
||||
<div className="sep5"></div>
|
||||
</td>
|
||||
<td width="200px" align="center">
|
||||
<div className="sep20"></div>
|
||||
<div>{this.renderPlayerBox(member.karma)}</div>
|
||||
</td>
|
||||
</tr>
|
||||
))
|
||||
: null}
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import React from "react";
|
||||
import i18next from "i18next";
|
||||
import * as Setting from "../Setting";
|
||||
|
@ -77,27 +77,27 @@ class RankingRichBox extends React.Component {
|
|||
<table cellPadding="10" cellSpacing="0" border="0" width="100%">
|
||||
{this.state.richList
|
||||
? this.state.richList.map((member, key) => (
|
||||
<tr>
|
||||
<td width={Setting.PcBrowser ? "73" : "36"} valign="top" align="center" key={key}>
|
||||
<Avatar username={member.name} avatar={member.avatar} key={key} />
|
||||
</td>
|
||||
<td width="auto" align="left">
|
||||
<h2 style={{marginBottom: "10px", marginTop: "0px"}}>
|
||||
<span className="gray">{key + 1}.</span> <a href={`/member/${member.name}`}>{member.name}</a>
|
||||
</h2>
|
||||
<span className="gray f12"> {member.tag} </span>
|
||||
<div className="sep5"></div>
|
||||
<span className="gray f12">
|
||||
{" "}
|
||||
<a href={member.homepage}>{member.homepage}</a>{" "}
|
||||
</span>
|
||||
<div className="sep5"></div>
|
||||
</td>
|
||||
<td width="200" align="center">
|
||||
<div>{this.renderRichBox(member.score)}</div>
|
||||
</td>
|
||||
</tr>
|
||||
))
|
||||
<tr>
|
||||
<td width={Setting.PcBrowser ? "73" : "36"} valign="top" align="center" key={key}>
|
||||
<Avatar username={member.name} avatar={member.avatar} key={key} />
|
||||
</td>
|
||||
<td width="auto" align="left">
|
||||
<h2 style={{marginBottom: "10px", marginTop: "0px"}}>
|
||||
<span className="gray">{key + 1}.</span> <a href={`/member/${member.name}`}>{member.name}</a>
|
||||
</h2>
|
||||
<span className="gray f12"> {member.tag} </span>
|
||||
<div className="sep5"></div>
|
||||
<span className="gray f12">
|
||||
{" "}
|
||||
<a href={member.homepage}>{member.homepage}</a>{" "}
|
||||
</span>
|
||||
<div className="sep5"></div>
|
||||
</td>
|
||||
<td width="200" align="center">
|
||||
<div>{this.renderRichBox(member.score)}</div>
|
||||
</td>
|
||||
</tr>
|
||||
))
|
||||
: null}
|
||||
</table>
|
||||
</div>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
import React from "react";
|
||||
import * as Setting from "../Setting";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import * as TopicBackend from "../backend/TopicBackend";
|
||||
import TopicList from "./TopicList";
|
||||
import PageColumn from "./PageColumn";
|
||||
|
|
|
@ -17,7 +17,7 @@ import * as Setting from "../Setting";
|
|||
import * as Conf from "../Conf";
|
||||
import * as ReplyBackend from "../backend/ReplyBackend";
|
||||
import * as BalanceBackend from "../backend/BalanceBackend";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import Avatar from "../Avatar";
|
||||
import NewReplyBox from "./NewReplyBox";
|
||||
import PageColumn from "./PageColumn";
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
import React from "react";
|
||||
import * as Setting from "../Setting";
|
||||
import * as TopicBackend from "../backend/TopicBackend";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import PageColumn from "./PageColumn";
|
||||
import i18next from "i18next";
|
||||
import TopicList from "./TopicList";
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
import React from "react";
|
||||
import * as Setting from "../Setting";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import i18next from "i18next";
|
||||
import {Helmet} from "react-helmet";
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
import React from "react";
|
||||
import * as Setting from "../Setting";
|
||||
import * as NodeBackend from "../backend/NodeBackend";
|
||||
import {withRouter, Link} from "react-router-dom";
|
||||
import {Link, withRouter} from "react-router-dom";
|
||||
import "../node.css";
|
||||
import "./rightNodeRelation.css";
|
||||
import Collapse, {Panel} from "rc-collapse";
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
import React from "react";
|
||||
import i18next from "i18next";
|
||||
import {loadTheme, THEME_OPTIONS} from "../theme";
|
||||
import {THEME_OPTIONS, loadTheme} from "../theme";
|
||||
import "./rightTheme.css";
|
||||
|
||||
class RightThemeBox extends React.Component {
|
||||
|
|
|
@ -5028,6 +5028,18 @@ eslint-plugin-testing-library@^3.9.2:
|
|||
dependencies:
|
||||
"@typescript-eslint/experimental-utils" "^3.10.1"
|
||||
|
||||
eslint-plugin-unused-imports@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-plugin-unused-imports/-/eslint-plugin-unused-imports-2.0.0.tgz#d8db8c4d0cfa0637a8b51ce3fd7d1b6bc3f08520"
|
||||
integrity sha512-3APeS/tQlTrFa167ThtP0Zm0vctjr4M44HMpeg1P4bK6wItarumq0Ma82xorMKdFsWpphQBlRPzw/pxiVELX1A==
|
||||
dependencies:
|
||||
eslint-rule-composer "^0.3.0"
|
||||
|
||||
eslint-rule-composer@^0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz#79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9"
|
||||
integrity sha512-bt+Sh8CtDmn2OajxvNO+BX7Wn4CIWMpTRm3MaiKPCQcnnlm0CS2mhui6QaoeQugs+3Kj2ESKEEGJUdVafwhiCg==
|
||||
|
||||
eslint-scope@^4.0.3:
|
||||
version "4.0.3"
|
||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
|
||||
|
|
Loading…
Reference in New Issue