Skip to content

Commit 8bceebb

Browse files
committed
Merge branch 'dev' of github.com:topcoder-platform/platform-ui into dev
2 parents f3dfdb8 + 5e6af33 commit 8bceebb

File tree

16 files changed

+109
-302
lines changed

16 files changed

+109
-302
lines changed

src/apps/profiles/src/components/AssemblyDetailsModal/AssemblyDetailsModal.tsx

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
/* eslint-disable complexity */import { Dispatch, FC, SetStateAction, useMemo, useState } from 'react'
2-
import { isEmpty, keys } from 'lodash'
1+
import { Dispatch, FC, SetStateAction, useMemo, useState } from 'react'
32
import Highcharts from 'highcharts'
43
import HighchartsReact from 'highcharts-react-official'
54

@@ -16,8 +15,9 @@ import {
1615
} from '~/libs/core'
1716

1817
import { numberToFixed } from '../../lib'
18+
import { useRatingDistroOptions } from '../../hooks'
1919

20-
import { RATING_CHART_CONFIG, RATING_DISTRO_CHART_CONFIG } from './chart-configs'
20+
import { RATING_CHART_CONFIG } from './chart-configs'
2121
import styles from './AssemblyDetailsModal.module.scss'
2222

2323
type SRMViewTypes = 'STATISTICS' | 'CHALLENGES DETAILS'
@@ -60,21 +60,8 @@ const AssemblyDetailsModal: FC<AssemblyDetailsModalProps> = (props: AssemblyDeta
6060
filter: 'track=DEVELOP&subTrack=ASSEMBLY_COMPETITION',
6161
})
6262

63-
const ratingDistributionOptions: Highcharts.Options | undefined = useMemo(() => {
64-
const ratingDistro: { [key: string]: number } = memberStatsDist?.distribution || {}
65-
const options: Highcharts.Options = RATING_DISTRO_CHART_CONFIG
66-
67-
if (isEmpty(ratingDistro)) return undefined
68-
69-
options.series = keys(ratingDistro)
70-
.map((key: string) => ({
71-
data: [ratingDistro[key]],
72-
name: key.split('ratingRange')[1],
73-
type: 'column',
74-
}))
75-
76-
return options
77-
}, [memberStatsDist])
63+
const ratingDistributionOptions: Highcharts.Options | undefined
64+
= useRatingDistroOptions(memberStatsDist?.distribution || {}, props.assemblyStats?.rank.rating)
7865

7966
// TODO: enable this function when challenges history is available
8067
// eslint-disable-next-line @typescript-eslint/no-unused-vars

src/apps/profiles/src/components/AssemblyDetailsModal/chart-configs.ts

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -24,29 +24,3 @@ export const RATING_CHART_CONFIG: Highcharts.Options = {
2424
},
2525
},
2626
}
27-
28-
export const RATING_DISTRO_CHART_CONFIG: Highcharts.Options = {
29-
chart: {
30-
type: 'column',
31-
},
32-
credits: {
33-
enabled: false,
34-
},
35-
legend: {
36-
enabled: false,
37-
},
38-
title: {
39-
text: 'RATING DISTRIBUTION',
40-
},
41-
tooltip: {
42-
pointFormat: '{series.name:.0f}: {point.y:.0f} Coders',
43-
},
44-
xAxis: {
45-
visible: false,
46-
},
47-
yAxis: {
48-
title: {
49-
text: 'Rating',
50-
},
51-
},
52-
}

src/apps/profiles/src/components/CodeDetailsModal/CodeDetailsModal.tsx

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
/* eslint-disable complexity */
22
import { Dispatch, FC, SetStateAction, useMemo, useState } from 'react'
3-
import { isEmpty, keys } from 'lodash'
43
import Highcharts from 'highcharts'
54
import HighchartsReact from 'highcharts-react-official'
65

@@ -16,8 +15,9 @@ import {
1615
} from '~/libs/core'
1716

1817
import { numberToFixed } from '../../lib'
18+
import { useRatingDistroOptions } from '../../hooks'
1919

20-
import { RATING_CHART_CONFIG, RATING_DISTRO_CHART_CONFIG } from './chart-configs'
20+
import { RATING_CHART_CONFIG } from './chart-configs'
2121
import styles from './CodeDetailsModal.module.scss'
2222

2323
type CodeViewTypes = 'STATISTICS' | 'CHALLENGES DETAILS'
@@ -57,21 +57,8 @@ const CodeDetailsModal: FC<CodeDetailsModalProps> = (props: CodeDetailsModalProp
5757
filter: 'track=DEVELOP&subTrack=CODE',
5858
})
5959

60-
const ratingDistributionOptions: Highcharts.Options | undefined = useMemo(() => {
61-
const ratingDistro: { [key: string]: number } = memberStatsDist?.distribution || {}
62-
const options: Highcharts.Options = RATING_DISTRO_CHART_CONFIG
63-
64-
if (isEmpty(ratingDistro)) return undefined
65-
66-
options.series = keys(ratingDistro)
67-
.map((key: string) => ({
68-
data: [ratingDistro[key]],
69-
name: key.split('ratingRange')[1],
70-
type: 'column',
71-
}))
72-
73-
return options
74-
}, [memberStatsDist])
60+
const ratingDistributionOptions: Highcharts.Options | undefined
61+
= useRatingDistroOptions(memberStatsDist?.distribution || {}, props.codeStats?.rank.rating)
7562

7663
// TODO: Enable this when we have challenges details data
7764
// eslint-disable-next-line @typescript-eslint/no-unused-vars

src/apps/profiles/src/components/CodeDetailsModal/chart-configs.ts

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -24,29 +24,3 @@ export const RATING_CHART_CONFIG: Highcharts.Options = {
2424
},
2525
},
2626
}
27-
28-
export const RATING_DISTRO_CHART_CONFIG: Highcharts.Options = {
29-
chart: {
30-
type: 'column',
31-
},
32-
credits: {
33-
enabled: false,
34-
},
35-
legend: {
36-
enabled: false,
37-
},
38-
title: {
39-
text: 'RATING DISTRIBUTION',
40-
},
41-
tooltip: {
42-
pointFormat: '{series.name:.0f}: {point.y:.0f} Coders',
43-
},
44-
xAxis: {
45-
visible: false,
46-
},
47-
yAxis: {
48-
title: {
49-
text: 'Rating',
50-
},
51-
},
52-
}

src/apps/profiles/src/components/ContentCreationDetailsModal/ContentCreationDetailsModal.tsx

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
/* eslint-disable complexity */
22
import { Dispatch, FC, SetStateAction, useMemo, useState } from 'react'
3-
import { isEmpty, keys } from 'lodash'
43
import Highcharts from 'highcharts'
54
import HighchartsReact from 'highcharts-react-official'
65

@@ -17,8 +16,9 @@ import {
1716
} from '~/libs/core'
1817

1918
import { numberToFixed } from '../../lib'
19+
import { useRatingDistroOptions } from '../../hooks'
2020

21-
import { RATING_CHART_CONFIG, RATING_DISTRO_CHART_CONFIG } from './chart-configs'
21+
import { RATING_CHART_CONFIG } from './chart-configs'
2222
import styles from './ContentCreationDetailsModal.module.scss'
2323

2424
type TestScenViewTypes = 'STATISTICS' | 'CHALLENGES DETAILS'
@@ -58,21 +58,8 @@ const ContentCreationDetailsModal: FC<ContentCreationDetailsModalProps> = (props
5858
filter: 'track=DEVELOP&subTrack=CONTENT_CREATION',
5959
})
6060

61-
const ratingDistributionOptions: Highcharts.Options | undefined = useMemo(() => {
62-
const ratingDistro: { [key: string]: number } = memberStatsDist?.distribution || {}
63-
const options: Highcharts.Options = RATING_DISTRO_CHART_CONFIG
64-
65-
if (isEmpty(ratingDistro)) return undefined
66-
67-
options.series = keys(ratingDistro)
68-
.map((key: string) => ({
69-
data: [ratingDistro[key]],
70-
name: key.split('ratingRange')[1],
71-
type: 'column',
72-
}))
73-
74-
return options
75-
}, [memberStatsDist])
61+
const ratingDistributionOptions: Highcharts.Options | undefined
62+
= useRatingDistroOptions(memberStatsDist?.distribution || {}, props.contentCreationStats?.rank.rating)
7663

7764
// TODO: Enable this when we have challenges details data
7865
// eslint-disable-next-line @typescript-eslint/no-unused-vars

src/apps/profiles/src/components/ContentCreationDetailsModal/chart-configs.ts

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -24,29 +24,3 @@ export const RATING_CHART_CONFIG: Highcharts.Options = {
2424
},
2525
},
2626
}
27-
28-
export const RATING_DISTRO_CHART_CONFIG: Highcharts.Options = {
29-
chart: {
30-
type: 'column',
31-
},
32-
credits: {
33-
enabled: false,
34-
},
35-
legend: {
36-
enabled: false,
37-
},
38-
title: {
39-
text: 'RATING DISTRIBUTION',
40-
},
41-
tooltip: {
42-
pointFormat: '{series.name:.0f}: {point.y:.0f} Coders',
43-
},
44-
xAxis: {
45-
visible: false,
46-
},
47-
yAxis: {
48-
title: {
49-
text: 'Rating',
50-
},
51-
},
52-
}

src/apps/profiles/src/components/MMDetailsModal/MMDetailsModal.tsx

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
/* eslint-disable complexity */
22
import { Dispatch, FC, SetStateAction, useMemo, useState } from 'react'
3-
import { isEmpty, keys } from 'lodash'
43
import Highcharts from 'highcharts'
54
import HighchartsReact from 'highcharts-react-official'
65

@@ -16,7 +15,9 @@ import {
1615
useStatsHistory,
1716
} from '~/libs/core'
1817

19-
import { RATING_CHART_CONFIG, RATING_DISTRO_CHART_CONFIG } from './chart-configs'
18+
import { useRatingDistroOptions } from '../../hooks'
19+
20+
import { RATING_CHART_CONFIG } from './chart-configs'
2021
import styles from './MMDetailsModal.module.scss'
2122

2223
type SRMViewTypes = 'STATISTICS' | 'MATCH DETAILS'
@@ -53,21 +54,8 @@ const MMDetailsModal: FC<MMDetailsModalProps> = (props: MMDetailsModalProps) =>
5354
filter: 'track=DATA_SCIENCE&subTrack=MARATHON_MATCH',
5455
})
5556

56-
const ratingDistributionOptions: Highcharts.Options | undefined = useMemo(() => {
57-
const ratingDistro: { [key: string]: number } = memberStatsDist?.distribution || {}
58-
const options: Highcharts.Options = RATING_DISTRO_CHART_CONFIG
59-
60-
if (isEmpty(ratingDistro)) return undefined
61-
62-
options.series = keys(ratingDistro)
63-
.map((key: string) => ({
64-
data: [ratingDistro[key]],
65-
name: key.split('ratingRange')[1],
66-
type: 'column',
67-
}))
68-
69-
return options
70-
}, [memberStatsDist])
57+
const ratingDistributionOptions: Highcharts.Options | undefined
58+
= useRatingDistroOptions(memberStatsDist?.distribution || {}, props.MMStats?.rank.rating)
7159

7260
// TODO: Enable this when we have challenges details data
7361
// eslint-disable-next-line @typescript-eslint/no-unused-vars

src/apps/profiles/src/components/MMDetailsModal/chart-configs.ts

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -24,29 +24,3 @@ export const RATING_CHART_CONFIG: Highcharts.Options = {
2424
},
2525
},
2626
}
27-
28-
export const RATING_DISTRO_CHART_CONFIG: Highcharts.Options = {
29-
chart: {
30-
type: 'column',
31-
},
32-
credits: {
33-
enabled: false,
34-
},
35-
legend: {
36-
enabled: false,
37-
},
38-
title: {
39-
text: 'RATING DISTRIBUTION',
40-
},
41-
tooltip: {
42-
pointFormat: '{series.name:.0f}: {point.y:.0f} Coders',
43-
},
44-
xAxis: {
45-
visible: false,
46-
},
47-
yAxis: {
48-
title: {
49-
text: 'Rating',
50-
},
51-
},
52-
}

src/apps/profiles/src/components/SRMDetailsModal/SRMDetailsModal.tsx

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
/* eslint-disable complexity */
22
import { Dispatch, FC, SetStateAction, useMemo, useState } from 'react'
3-
import { bind, isEmpty, keys } from 'lodash'
3+
import { bind } from 'lodash'
4+
import AnnotationsModule from 'highcharts/modules/annotations'
45
import Highcharts from 'highcharts'
56
import HighchartsReact from 'highcharts-react-official'
67

@@ -18,8 +19,9 @@ import {
1819

1920
import { ChallengesGrid } from '../ChallengesGrid'
2021
import { DivisionGrid } from '../DivisionGrid'
22+
import { useRatingDistroOptions } from '../../hooks'
2123

22-
import { RATING_CHART_CONFIG, RATING_DISTRO_CHART_CONFIG } from './chart-configs'
24+
import { RATING_CHART_CONFIG } from './chart-configs'
2325
import styles from './SRMDetailsModal.module.scss'
2426

2527
type SRMViewTypes = 'STATISTICS' | 'SRM DETAILS' | 'PAST SRM'
@@ -30,6 +32,8 @@ interface SRMDetailsModalProps {
3032
profile: UserProfile | undefined
3133
}
3234

35+
AnnotationsModule(Highcharts)
36+
3337
const SRMDetailsModal: FC<SRMDetailsModalProps> = (props: SRMDetailsModalProps) => {
3438
const [viewType, setviewType]: [SRMViewTypes, Dispatch<SetStateAction<SRMViewTypes>>]
3539
= useState<SRMViewTypes>('STATISTICS')
@@ -56,21 +60,8 @@ const SRMDetailsModal: FC<SRMDetailsModalProps> = (props: SRMDetailsModalProps)
5660
filter: 'track=DATA_SCIENCE&subTrack=SRM',
5761
})
5862

59-
const ratingDistributionOptions: Highcharts.Options | undefined = useMemo(() => {
60-
const ratingDistro: { [key: string]: number } = memberStatsDist?.distribution || {}
61-
const options: Highcharts.Options = RATING_DISTRO_CHART_CONFIG
62-
63-
if (isEmpty(ratingDistro)) return undefined
64-
65-
options.series = keys(ratingDistro)
66-
.map((key: string) => ({
67-
data: [ratingDistro[key]],
68-
name: key.split('ratingRange')[1],
69-
type: 'column',
70-
}))
71-
72-
return options
73-
}, [memberStatsDist])
63+
const ratingDistributionOptions: Highcharts.Options | undefined
64+
= useRatingDistroOptions(memberStatsDist?.distribution || {}, props.SRMStats?.rank.rating)
7465

7566
function toggleViewType(newViewType: SRMViewTypes): void {
7667
setviewType(newViewType)

src/apps/profiles/src/components/SRMDetailsModal/chart-configs.ts

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -24,29 +24,3 @@ export const RATING_CHART_CONFIG: Highcharts.Options = {
2424
},
2525
},
2626
}
27-
28-
export const RATING_DISTRO_CHART_CONFIG: Highcharts.Options = {
29-
chart: {
30-
type: 'column',
31-
},
32-
credits: {
33-
enabled: false,
34-
},
35-
legend: {
36-
enabled: false,
37-
},
38-
title: {
39-
text: 'RATING DISTRIBUTION',
40-
},
41-
tooltip: {
42-
pointFormat: '{series.name:.0f}: {point.y:.0f} Coders',
43-
},
44-
xAxis: {
45-
visible: false,
46-
},
47-
yAxis: {
48-
title: {
49-
text: 'Rating',
50-
},
51-
},
52-
}

0 commit comments

Comments
 (0)