diff --git a/package-lock.json b/package-lock.json index aaef8ef..c791f23 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "onlinejudge3-fe", - "version": "3.5.7", + "version": "3.6.1", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "onlinejudge3-fe", - "version": "3.5.7", + "version": "3.6.1", "license": "MIT", "dependencies": { "animate.css": "^3.7.0", @@ -27,7 +27,7 @@ "js-cookie": "^2.2.0", "jscookie": "^1.1.0", "katex": "^0.16.9", - "lodash": "^4.17.11", + "lodash-es": "^4.17.21", "lodash.throttle": "^4.1.1", "markdown-it": "^13.0.2", "math-precision": "^1.0.5", diff --git a/package.json b/package.json index 616d4dd..77c1198 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "js-cookie": "^2.2.0", "jscookie": "^1.1.0", "katex": "^0.16.9", - "lodash": "^4.17.11", + "lodash-es": "^4.17.21", "lodash.throttle": "^4.1.1", "markdown-it": "^13.0.2", "math-precision": "^1.0.5", diff --git a/src/common b/src/common index 5b6efc7..4c52211 160000 --- a/src/common +++ b/src/common @@ -1 +1 @@ -Subproject commit 5b6efc716bd24cecdf4d51a0e7146e450f7a34cb +Subproject commit 4c5221113f19a505266ed5ca12d0ca17c2429a27 diff --git a/src/components/ContestUserList.tsx b/src/components/ContestUserList.tsx index 18c5659..1014a46 100644 --- a/src/components/ContestUserList.tsx +++ b/src/components/ContestUserList.tsx @@ -14,7 +14,7 @@ import { checkPerms } from '@/utils/permission'; import GeneralFormModal from '@/components/GeneralFormModal'; import msg from '@/utils/msg'; import { matchPath, withRouter } from 'react-router'; -import { get as safeGet } from 'lodash'; +import { get as safeGet } from 'lodash-es'; import tracker from '@/utils/tracker'; import contestUserStatus, { ContestUserStatus } from '@/configs/contestUserStatus'; import ImportContestUserModal from './ImportContestUserModal'; diff --git a/src/components/ImportCompetitionUserModal.tsx b/src/components/ImportCompetitionUserModal.tsx index 2bc3e65..4d04283 100644 --- a/src/components/ImportCompetitionUserModal.tsx +++ b/src/components/ImportCompetitionUserModal.tsx @@ -9,7 +9,7 @@ import staticUrls from '@/configs/staticUrls'; import constants from '@/configs/constants'; import { withRouter } from 'react-router'; import { ICompetitionUser } from '@/common/interfaces/competition'; -import { set as safeSet } from 'lodash'; +import { set as safeSet } from 'lodash-es'; import { ECompetitionUserRole, ECompetitionUserStatus } from '@/common/enums'; const MAX_MEMBER_NUM = 3; diff --git a/src/components/Ranklist.tsx b/src/components/Ranklist.tsx index 0f168e5..7483f3f 100644 --- a/src/components/Ranklist.tsx +++ b/src/components/Ranklist.tsx @@ -9,7 +9,7 @@ import limits from '@/configs/limits'; import router from 'umi/router'; import { withRouter } from 'react-router'; import { RouteProps } from '@/@types/props'; -import { get as safeGet } from 'lodash'; +import { get as safeGet } from 'lodash-es'; import { getRatingLevel } from '@/utils/rating'; import tracker from '@/utils/tracker'; import moment from 'moment'; diff --git a/src/components/StatsRanklist.tsx b/src/components/StatsRanklist.tsx index f53d5ef..e5f894d 100644 --- a/src/components/StatsRanklist.tsx +++ b/src/components/StatsRanklist.tsx @@ -13,7 +13,7 @@ import { workbook2Excel } from '@/utils/misc'; import XLSX from 'xlsx'; import { memoize } from '@/utils/decorators'; import tracker from '@/utils/tracker'; -import { isEqual, pick } from 'lodash'; +import { isEqual, pick } from 'lodash-es'; export interface Props extends RouteProps { id: number; diff --git a/src/components/UserSelect.tsx b/src/components/UserSelect.tsx index 2033963..5e0f11e 100644 --- a/src/components/UserSelect.tsx +++ b/src/components/UserSelect.tsx @@ -3,7 +3,7 @@ import { connect } from 'dva'; import { Spin } from 'antd'; import { ReduxProps } from '@/@types/props'; import Select, { SelectProps } from 'antd/lib/select'; -import { debounce } from 'lodash'; +import { debounce } from 'lodash-es'; import UserBar from './UserBar'; export interface Props extends ReduxProps, SelectProps { diff --git a/src/models/favorites.ts b/src/models/favorites.ts index 376d86f..e420e86 100644 --- a/src/models/favorites.ts +++ b/src/models/favorites.ts @@ -1,7 +1,7 @@ import * as service from '../services/favorites'; import { genTimeFlag, isStateExpired } from '@/utils/misc'; import { formatListQuery } from '@/utils/format'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import pages from '@/configs/pages'; import { requestEffect } from '@/utils/effectInterceptor'; import { Codes } from '@/common/codes'; diff --git a/src/models/messages.ts b/src/models/messages.ts index 3f255e4..4ed1abc 100644 --- a/src/models/messages.ts +++ b/src/models/messages.ts @@ -1,7 +1,7 @@ import * as service from '../services/messages'; import { genTimeFlag, isStateExpired } from '@/utils/misc'; import { formatListQuery } from '@/utils/format'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import limits from '@/configs/limits'; import pages from '@/configs/pages'; import { requestEffect } from '@/utils/effectInterceptor'; diff --git a/src/models/notes.ts b/src/models/notes.ts index a483b42..e4f7c3b 100644 --- a/src/models/notes.ts +++ b/src/models/notes.ts @@ -1,7 +1,7 @@ import * as service from '../services/notes'; import { genTimeFlag, isStateExpired } from '@/utils/misc'; import { formatListQuery } from '@/utils/format'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import limits from '@/configs/limits'; import pages from '@/configs/pages'; import { requestEffect } from '@/utils/effectInterceptor'; diff --git a/src/models/notices.ts b/src/models/notices.ts index 6643a6e..e993eb4 100644 --- a/src/models/notices.ts +++ b/src/models/notices.ts @@ -1,5 +1,5 @@ import localStorage from '@/utils/localStorage'; -import { merge } from 'lodash'; +import { merge } from 'lodash-es'; const initialState = { read: {}, diff --git a/src/models/settings.ts b/src/models/settings.ts index 98dee2c..3e8ae30 100644 --- a/src/models/settings.ts +++ b/src/models/settings.ts @@ -1,5 +1,5 @@ import localStorage from '@/utils/localStorage'; -import { merge, omit } from 'lodash'; +import { merge, omit } from 'lodash-es'; const initialState = { theme: 'auto', diff --git a/src/models/stats.ts b/src/models/stats.ts index 1f95d6d..6e8a9bb 100644 --- a/src/models/stats.ts +++ b/src/models/stats.ts @@ -2,7 +2,7 @@ import * as service from '../services/stats'; import { genTimeFlag, isStateExpired } from '@/utils/misc'; import pages from '@/configs/pages'; import { requestEffect } from '@/utils/effectInterceptor'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; function genInitialState() { return { diff --git a/src/pages/admin/contests/$id/problems.tsx b/src/pages/admin/contests/$id/problems.tsx index 702225d..c18d1de 100644 --- a/src/pages/admin/contests/$id/problems.tsx +++ b/src/pages/admin/contests/$id/problems.tsx @@ -10,7 +10,7 @@ import PageAnimation from '@/components/PageAnimation'; import { getPathParamId } from '@/utils/getPathParams'; import { Row, Col, Card, Table, Input, Icon, Button } from 'antd'; import { numberToAlphabet } from '@/utils/format'; -import { isEqual, noop } from 'lodash'; +import { isEqual, noop } from 'lodash-es'; import classNames from 'classnames'; import AddItemByIdCard from '@/components/AddItemByIdCard'; import msg from '@/utils/msg'; diff --git a/src/pages/admin/fields/$id/settings.tsx b/src/pages/admin/fields/$id/settings.tsx index 7ef4ccb..c9dd833 100644 --- a/src/pages/admin/fields/$id/settings.tsx +++ b/src/pages/admin/fields/$id/settings.tsx @@ -13,7 +13,7 @@ import NotFound from '@/pages/404'; import PageTitle from '@/components/PageTitle'; import FieldSeatInput from '@/components/FieldSeatInput'; import { memoize } from '@/utils/decorators'; -import { padStart } from 'lodash'; +import { padStart } from 'lodash-es'; import msg from '@/utils/msg'; import tracker from '@/utils/tracker'; diff --git a/src/pages/competitions/$id/problemSettings.tsx b/src/pages/competitions/$id/problemSettings.tsx index 1f1afcf..4712fb3 100644 --- a/src/pages/competitions/$id/problemSettings.tsx +++ b/src/pages/competitions/$id/problemSettings.tsx @@ -11,7 +11,7 @@ import { getPathParamId } from '@/utils/getPathParams'; import { Button, Form, Row, Col, Card, Table, Input, Icon, Tag } from 'antd'; import msg from '@/utils/msg'; import PageLoading from '@/components/PageLoading'; -import { isEqual, noop } from 'lodash'; +import { isEqual, noop } from 'lodash-es'; import { numberToAlphabet } from '@/utils/format'; import AddItemByIdCard from '@/components/AddItemByIdCard'; import classNames from 'classnames'; diff --git a/src/pages/competitions/$id/solutions/$sid.tsx b/src/pages/competitions/$id/solutions/$sid.tsx index 059396a..08526a8 100644 --- a/src/pages/competitions/$id/solutions/$sid.tsx +++ b/src/pages/competitions/$id/solutions/$sid.tsx @@ -3,7 +3,7 @@ import { connect } from 'dva'; import { ReduxProps, RouteProps } from '@/@types/props'; import { getPathParamId } from '@/utils/getPathParams'; import pages from '@/configs/pages'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import SolutionDetailPage from '@/components/SolutionDetailPage'; import PageLoading from '@/components/PageLoading'; import { ICompetition } from '@/common/interfaces/competition'; diff --git a/src/pages/competitions/$id/solutions/index.tsx b/src/pages/competitions/$id/solutions/index.tsx index a652891..2aa74d9 100644 --- a/src/pages/competitions/$id/solutions/index.tsx +++ b/src/pages/competitions/$id/solutions/index.tsx @@ -11,7 +11,7 @@ import FilterCard from '@/components/FilterCard'; import results, { Results } from '@/configs/results'; import constants from '@/configs/constants'; import gStyles from '@/general.less'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import router from 'umi/router'; import PageLoading from '@/components/PageLoading'; import PageTitle from '@/components/PageTitle'; diff --git a/src/pages/competitions/$id/userManagement.tsx b/src/pages/competitions/$id/userManagement.tsx index d302174..928ccb7 100644 --- a/src/pages/competitions/$id/userManagement.tsx +++ b/src/pages/competitions/$id/userManagement.tsx @@ -19,7 +19,7 @@ import tracker from '@/utils/tracker'; import msg from '@/utils/msg'; import { aoa2Excel } from '@/utils/misc'; import moment from 'moment'; -import { get as safeGet } from 'lodash'; +import { get as safeGet } from 'lodash-es'; import ImportCompetitionUserModal from '@/components/ImportCompetitionUserModal'; const contestUserRoleOptions = [ diff --git a/src/pages/competitions/models/competitions.ts b/src/pages/competitions/models/competitions.ts index 8da0b75..85a0636 100644 --- a/src/pages/competitions/models/competitions.ts +++ b/src/pages/competitions/models/competitions.ts @@ -2,7 +2,7 @@ import * as service from '../services/competitions'; import pages from '@/configs/pages'; import { matchPath } from 'react-router'; import { clearExpiredStateProperties, genTimeFlag, isStateExpired } from '@/utils/misc'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import { formatListQuery } from '@/utils/format'; import { requestEffect } from '@/utils/effectInterceptor'; import { diff --git a/src/pages/contests/$id/solutions/$sid.tsx b/src/pages/contests/$id/solutions/$sid.tsx index c1298af..6a0aa01 100644 --- a/src/pages/contests/$id/solutions/$sid.tsx +++ b/src/pages/contests/$id/solutions/$sid.tsx @@ -3,7 +3,7 @@ import { connect } from 'dva'; import { ReduxProps, RouteProps } from '@/@types/props'; import { getPathParamId } from '@/utils/getPathParams'; import pages from '@/configs/pages'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import SolutionDetailPage from '@/components/SolutionDetailPage'; import PageLoading from '@/components/PageLoading'; import { ContestModes } from '@/configs/contestModes'; diff --git a/src/pages/contests/$id/solutions/index.tsx b/src/pages/contests/$id/solutions/index.tsx index 8ff2a88..fd16bf7 100644 --- a/src/pages/contests/$id/solutions/index.tsx +++ b/src/pages/contests/$id/solutions/index.tsx @@ -11,7 +11,7 @@ import FilterCard from '@/components/FilterCard'; import results, { Results } from '@/configs/results'; import constants from '@/configs/constants'; import gStyles from '@/general.less'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import router from 'umi/router'; import PageLoading from '@/components/PageLoading'; import PageTitle from '@/components/PageTitle'; diff --git a/src/pages/contests/models/contests.ts b/src/pages/contests/models/contests.ts index 25460f6..bb3414c 100644 --- a/src/pages/contests/models/contests.ts +++ b/src/pages/contests/models/contests.ts @@ -1,7 +1,7 @@ import * as service from '../services/contests'; import pages from '@/configs/pages'; import { clearExpiredStateProperties, genTimeFlag, isStateExpired } from '@/utils/misc'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import { formatListQuery } from '@/utils/format'; import { requestEffect } from '@/utils/effectInterceptor'; import { matchPath } from 'react-router'; diff --git a/src/pages/groups/$id.tsx b/src/pages/groups/$id.tsx index 07183b4..512fb3d 100644 --- a/src/pages/groups/$id.tsx +++ b/src/pages/groups/$id.tsx @@ -43,7 +43,7 @@ import TimeBar from '@/components/TimeBar'; import UserBar from '@/components/UserBar'; import msg from '@/utils/msg'; import constants from '@/configs/constants'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import AddGroupMemberModal from '@/components/AddGroupMemberModal'; import AddFavorite from '@/components/AddFavorite'; import DeleteFavorite from '@/components/DeleteFavorite'; diff --git a/src/pages/groups/models/groups.ts b/src/pages/groups/models/groups.ts index dfd4a1d..0140614 100755 --- a/src/pages/groups/models/groups.ts +++ b/src/pages/groups/models/groups.ts @@ -1,7 +1,7 @@ import * as service from '../services/groups'; import { clearExpiredStateProperties, genTimeFlag, isStateExpired } from '@/utils/misc'; import { formatListQuery } from '@/utils/format'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import pages from '@/configs/pages'; import { requestEffect } from '@/utils/effectInterceptor'; import { matchPath } from 'react-router'; diff --git a/src/pages/posts/models/posts.ts b/src/pages/posts/models/posts.ts index 9097863..dd781cb 100644 --- a/src/pages/posts/models/posts.ts +++ b/src/pages/posts/models/posts.ts @@ -2,7 +2,7 @@ import * as service from '../services/posts'; import pages from '@/configs/pages'; import { matchPath } from 'react-router'; import { clearExpiredStateProperties, genTimeFlag, isStateExpired } from '@/utils/misc'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import { formatListQuery } from '@/utils/format'; import { requestEffect } from '@/utils/effectInterceptor'; diff --git a/src/pages/problems/models/problems.ts b/src/pages/problems/models/problems.ts index 9e2368a..c84eeb0 100644 --- a/src/pages/problems/models/problems.ts +++ b/src/pages/problems/models/problems.ts @@ -2,7 +2,7 @@ import * as service from '../services/problems'; import pages from '@/configs/pages'; import { matchPath } from 'react-router'; import { clearExpiredStateProperties, genTimeFlag, isStateExpired } from '@/utils/misc'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import { formatListQuery } from '@/utils/format'; import { requestEffect } from '@/utils/effectInterceptor'; diff --git a/src/pages/sets/$id/stats.tsx b/src/pages/sets/$id/stats.tsx index b006348..5da143b 100644 --- a/src/pages/sets/$id/stats.tsx +++ b/src/pages/sets/$id/stats.tsx @@ -15,7 +15,7 @@ import msg from '@/utils/msg'; import tracker from '@/utils/tracker'; import router from 'umi/router'; import PromiseQueue from 'promise-queue'; -import { uniqBy } from 'lodash'; +import { uniqBy } from 'lodash-es'; import { TreeSelectProps } from 'antd/lib/tree-select'; import { memoize } from '@/utils/decorators'; import Explanation from '@/components/Explanation'; diff --git a/src/pages/sets/models/sets.ts b/src/pages/sets/models/sets.ts index 3b15efe..0d54a0b 100644 --- a/src/pages/sets/models/sets.ts +++ b/src/pages/sets/models/sets.ts @@ -2,7 +2,7 @@ import * as service from '../services/sets'; import pages from '@/configs/pages'; import { matchPath } from 'react-router'; import { clearExpiredStateProperties, genTimeFlag, isStateExpired } from '@/utils/misc'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import { formatListQuery } from '@/utils/format'; import { requestEffect } from '@/utils/effectInterceptor'; diff --git a/src/pages/solutions/index.tsx b/src/pages/solutions/index.tsx index eb054dd..fe5aa70 100644 --- a/src/pages/solutions/index.tsx +++ b/src/pages/solutions/index.tsx @@ -13,7 +13,7 @@ import SolutionTable from '@/components/SolutionTable'; import results, { Results } from '@/configs/results'; import pages from '@/configs/pages'; import gStyles from '@/general.less'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import router from 'umi/router'; import constants from '@/configs/constants'; import PageAnimation from '@/components/PageAnimation'; diff --git a/src/pages/solutions/models/solutions.ts b/src/pages/solutions/models/solutions.ts index a43ff6a..550b2f0 100644 --- a/src/pages/solutions/models/solutions.ts +++ b/src/pages/solutions/models/solutions.ts @@ -2,7 +2,7 @@ import * as service from '../services/solutions'; import pages from '@/configs/pages'; import { matchPath } from 'react-router'; import { clearExpiredStateProperties, genTimeFlag, isStateExpired } from '@/utils/misc'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import { formatListQuery } from '@/utils/format'; import { requestEffect } from '@/utils/effectInterceptor'; diff --git a/src/pages/stats/judge.tsx b/src/pages/stats/judge.tsx index a056f43..cfd5e37 100644 --- a/src/pages/stats/judge.tsx +++ b/src/pages/stats/judge.tsx @@ -6,6 +6,7 @@ import React from 'react'; import { connect } from 'dva'; import { Progress, Tag, Popover } from 'antd'; import classNames from 'classnames'; +import { capitalize } from 'lodash-es'; import { ReduxProps, RouteProps } from '@/@types/props'; import PageAnimation from '@/components/PageAnimation'; import { IGetJudgeQueueStatsResp } from '@/common/contracts/stat'; @@ -174,7 +175,15 @@ class Judge extends React.Component {
{workers.map((worker) => ( +

Status: {this.getNodeStatus(worker.status)}

+

+ Platform Arch: {capitalize(worker.platform)} {worker.arch} +

+

CPU: {worker.cpuModel}

+
+ } title={`Node ID: ${worker.id}`} key={worker.id} > diff --git a/src/pages/topics/models/topics.ts b/src/pages/topics/models/topics.ts index cc2ea28..974f7be 100644 --- a/src/pages/topics/models/topics.ts +++ b/src/pages/topics/models/topics.ts @@ -2,7 +2,7 @@ import * as service from '../services/topics'; import pages from '@/configs/pages'; import { matchPath } from 'react-router'; import { clearExpiredStateProperties, genTimeFlag, isStateExpired } from '@/utils/misc'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import { formatListQuery } from '@/utils/format'; import { requestEffect } from '@/utils/effectInterceptor'; diff --git a/src/pages/users/models/users.ts b/src/pages/users/models/users.ts index fdb5543..35dec6c 100644 --- a/src/pages/users/models/users.ts +++ b/src/pages/users/models/users.ts @@ -2,7 +2,7 @@ import * as service from '../services/users'; import { matchPath } from 'react-router'; import pages from '@/configs/pages'; import { clearExpiredStateProperties, genTimeFlag, isStateExpired } from '@/utils/misc'; -import { isEqual } from 'lodash'; +import { isEqual } from 'lodash-es'; import { formatListQuery } from '@/utils/format'; import { requestEffect } from '@/utils/effectInterceptor'; import { Results } from '@/configs/results';