Skip to content

Commit 254241c

Browse files
TCA-560 #comment This commit reverts functions. sad #time 15m
1 parent 4c736f1 commit 254241c

File tree

14 files changed

+297
-288
lines changed

14 files changed

+297
-288
lines changed

src-ts/.eslintrc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ module.exports = {
214214
'react/function-component-definition': [
215215
'error',
216216
{
217-
namedComponents: 'function-declaration',
217+
namedComponents: 'arrow-function',
218218
unnamedComponents: 'function-expression'
219219
}
220220
],

src-ts/lib/route-provider/require-auth-provider/require-auth.provider.tsx

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -9,39 +9,40 @@ interface RequireAuthProviderProps {
99
rolesRequired?: Array<string>
1010
}
1111

12-
function RequireAuthProvider(props: RequireAuthProviderProps): JSX.Element {
12+
const RequireAuthProvider: (props: RequireAuthProviderProps) => JSX.Element
13+
= (props: RequireAuthProviderProps): JSX.Element => {
1314

14-
const profileContextData: ProfileContextData = useContext(profileContext)
15-
const { profile, initialized }: ProfileContextData = profileContextData
15+
const profileContextData: ProfileContextData = useContext(profileContext)
16+
const { profile, initialized }: ProfileContextData = profileContextData
1617

17-
// if we're not initialized yet, just return the children
18-
if (!initialized) {
19-
return props.children
20-
}
18+
// if we're not initialized yet, just return the children
19+
if (!initialized) {
20+
return props.children
21+
}
2122

22-
// if we have a profile and `rolesRequired` is configured for the route
23-
// check the user's roles, allow access or show restricted page
24-
if (!!profile) {
25-
if (props.rolesRequired) {
26-
if (!profile.roles) {
27-
return RestrictedPage
28-
}
23+
// if we have a profile and `rolesRequired` is configured for the route
24+
// check the user's roles, allow access or show restricted page
25+
if (!!profile) {
26+
if (props.rolesRequired) {
27+
if (!profile.roles) {
28+
return RestrictedPage
29+
}
30+
31+
// if the profile doesn't include all the required roles, show the restricted page
32+
if (props.rolesRequired.some(role => !profile.roles.includes(role))) {
33+
return RestrictedPage
34+
}
2935

30-
// if the profile doesn't include all the required roles, show the restricted page
31-
if (props.rolesRequired.some(role => !profile.roles.includes(role))) {
32-
return RestrictedPage
36+
return props.children
3337
}
3438

3539
return props.children
36-
}
3740

38-
return props.children
41+
}
3942

43+
// redirect to the login page
44+
window.location.href = props.loginUrl
45+
return <></>
4046
}
4147

42-
// redirect to the login page
43-
window.location.href = props.loginUrl
44-
return <></>
45-
}
46-
4748
export default RequireAuthProvider

src-ts/tools/dev-center/dev-center-lib/MarkdownDoc/MarkdownCode.tsx

Lines changed: 69 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -32,9 +32,7 @@ export const MarkdownCode: React.FC<MarkdownCodeProps> = props => {
3232

3333
return (
3434
<div
35-
className={`${styles.codeBlock} ${
36-
showLineNumbers ? styles['show-line-numbers'] : ''
37-
} hljs`}
35+
className={`${styles.codeBlock} ${showLineNumbers ? styles['show-line-numbers'] : ''} hljs`}
3836
ref={ref}
3937
>
4038
<LineNumbers
@@ -54,86 +52,87 @@ interface LineNumbersProps {
5452
showLineNumbers: boolean
5553
}
5654

57-
function LineNumbers(props: LineNumbersProps): React.ReactElement | null {
58-
const { codeRef, showLineNumbers, onVisibilityChange }: LineNumbersProps
59-
= props
60-
const [lineNumbers, setLineNumbers]: [
61-
Array<number>,
62-
React.Dispatch<React.SetStateAction<Array<number>>>
63-
] = React.useState([1])
64-
65-
const size: ReturnType<typeof useWindowSize> = useWindowSize()
66-
67-
// OnResizing
68-
const debounceTimer: React.MutableRefObject<
69-
ReturnType<typeof setTimeout> | undefined
70-
> = React.useRef<ReturnType<typeof setTimeout>>()
71-
React.useEffect(() => {
72-
if (!size.width || !codeRef.current) {
73-
return
74-
}
55+
const LineNumbers: (props: LineNumbersProps) => React.ReactElement | null
56+
= (props: LineNumbersProps): React.ReactElement | null => {
57+
58+
const { codeRef, showLineNumbers, onVisibilityChange }: LineNumbersProps
59+
= props
60+
const [lineNumbers, setLineNumbers]: [
61+
Array<number>,
62+
React.Dispatch<React.SetStateAction<Array<number>>>
63+
] = React.useState([1])
64+
65+
const size: ReturnType<typeof useWindowSize> = useWindowSize()
66+
67+
// OnResizing
68+
const debounceTimer: React.MutableRefObject<
69+
ReturnType<typeof setTimeout> | undefined
70+
> = React.useRef<ReturnType<typeof setTimeout>>()
71+
React.useEffect(() => {
72+
if (!size.width || !codeRef.current) {
73+
return
74+
}
7575

76-
if (debounceTimer.current) {
77-
clearTimeout(debounceTimer.current)
78-
debounceTimer.current = undefined
79-
}
76+
if (debounceTimer.current) {
77+
clearTimeout(debounceTimer.current)
78+
debounceTimer.current = undefined
79+
}
8080

81-
const pre: HTMLPreElement | null = codeRef.current.querySelector('pre')
82-
if (!pre) {
83-
return
84-
}
81+
const pre: HTMLPreElement | null = codeRef.current.querySelector('pre')
82+
if (!pre) {
83+
return
84+
}
85+
86+
const innerText: string = pre.innerText
87+
const clientWidth: number = pre.clientWidth
8588

86-
const innerText: string = pre.innerText
87-
const clientWidth: number = pre.clientWidth
89+
const handleResizing: () => void = () => {
90+
const result: Array<number> = computeLineNumbers(
91+
innerText,
92+
clientWidth,
93+
)
8894

89-
const handleResizing: () => void = () => {
90-
const result: Array<number> = computeLineNumbers(
91-
innerText,
92-
clientWidth,
93-
)
95+
if (result.length < 2) {
96+
onVisibilityChange(false)
97+
} else {
98+
onVisibilityChange(true)
99+
}
94100

95-
if (result.length < 2) {
96-
onVisibilityChange(false)
97-
} else {
98-
onVisibilityChange(true)
101+
setLineNumbers(result)
99102
}
100103

101-
setLineNumbers(result)
102-
}
104+
debounceTimer.current = setTimeout(() => {
105+
debounceTimer.current = undefined
106+
handleResizing()
107+
}, 100)
103108

104-
debounceTimer.current = setTimeout(() => {
105-
debounceTimer.current = undefined
106-
handleResizing()
107-
}, 100)
109+
return () => {
110+
clearTimeout(debounceTimer.current)
111+
}
112+
}, [size.width, onVisibilityChange, codeRef])
108113

109-
return () => {
110-
clearTimeout(debounceTimer.current)
114+
if (!showLineNumbers) {
115+
return null
111116
}
112-
}, [size.width, onVisibilityChange, codeRef])
113117

114-
if (!showLineNumbers) {
115-
return null
118+
return (
119+
<div className={styles.lineNumbers}>
120+
{lineNumbers.map((n, index) => {
121+
const prev: number = index > 0 ? lineNumbers[index - 1] : -1
122+
return (
123+
<div
124+
key={`line-${index}`}
125+
className={`${styles.num} ${prev === n ? styles.hidden : ''
126+
}`}
127+
>
128+
{n}
129+
</div>
130+
)
131+
})}
132+
</div>
133+
)
116134
}
117135

118-
return (
119-
<div className={styles.lineNumbers}>
120-
{lineNumbers.map((n, index) => {
121-
const prev: number = index > 0 ? lineNumbers[index - 1] : -1
122-
return (
123-
<div
124-
key={`line-${index}`}
125-
className={`${styles.num} ${
126-
prev === n ? styles.hidden : ''
127-
}`}
128-
>
129-
{n}
130-
</div>
131-
)
132-
})}
133-
</div>
134-
)
135-
}
136-
137136
function measureText(text: string, canvas: HTMLCanvasElement): number {
138137
const context: CanvasRenderingContext2D | null = canvas.getContext('2d')
139138
if (!context) {
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,35 @@
1+
/* eslint-disable arrow-body-style */
12
// TODO: enable when unassign feature is ready
23
// import { Button, ButtonProps, useCheckIsMobile } from '../../../../../../../lib'
34
import { MemberBadgeAward } from '../../../../../game-lib'
45

56
import styles from './MemberActionRenderer.module.scss'
67

7-
function MemberActionRenderer(memberAward: MemberBadgeAward): JSX.Element {
8+
const MemberActionRenderer: (memberAward: MemberBadgeAward) => JSX.Element
9+
= (memberAward: MemberBadgeAward): JSX.Element => {
810

9-
// const isMobile: boolean = useCheckIsMobile()
11+
// const isMobile: boolean = useCheckIsMobile()
1012

11-
// const buttonProps: ButtonProps = {
12-
// buttonStyle: 'secondary',
13-
// size: isMobile ? 'xs' : 'sm',
14-
// }
13+
// const buttonProps: ButtonProps = {
14+
// buttonStyle: 'secondary',
15+
// size: isMobile ? 'xs' : 'sm',
16+
// }
1517

16-
// const actionButtons: Array<{
17-
// label: string
18-
// }> = [
19-
// {
20-
// label: 'Unassign',
21-
// },
22-
// ]
18+
// const actionButtons: Array<{
19+
// label: string
20+
// }> = [
21+
// {
22+
// label: 'Unassign',
23+
// },
24+
// ]
2325

24-
// function onUnassign(): void {
26+
// function onUnassign(): void {
2527

26-
// }
28+
// }
2729

28-
return (
29-
<div className={styles['badge-actions']}>
30-
{/* {actionButtons.map((button, index) => {
30+
return (
31+
<div className={styles['badge-actions']}>
32+
{/* {actionButtons.map((button, index) => {
3133
return (
3234
<Button
3335
{...buttonProps}
@@ -37,8 +39,8 @@ function MemberActionRenderer(memberAward: MemberBadgeAward): JSX.Element {
3739
/>
3840
)
3941
})} */}
40-
</div>
41-
)
42-
}
42+
</div>
43+
)
44+
}
4345

4446
export default MemberActionRenderer

src-ts/tools/gamification-admin/pages/badge-detail/AwardedMembersTab/awarded-members-table/member-awardedAt-renderer/MemberAwaredAtRenderer.tsx

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,22 @@ import { MemberBadgeAward } from '../../../../../game-lib'
22

33
import styles from './MemberAwaredAtRenderer.module.scss'
44

5-
function MemberAwaredAtRenderer(memberAward: MemberBadgeAward): JSX.Element {
6-
const dateFormat: Record<string, string> = {
7-
day: 'numeric',
8-
hour: 'numeric',
9-
minute: 'numeric',
10-
month: 'short',
11-
year: 'numeric',
12-
}
5+
const MemberAwaredAtRenderer: (memberAward: MemberBadgeAward) => JSX.Element
6+
= (memberAward: MemberBadgeAward): JSX.Element => {
7+
8+
const dateFormat: Record<string, string> = {
9+
day: 'numeric',
10+
hour: 'numeric',
11+
minute: 'numeric',
12+
month: 'short',
13+
year: 'numeric',
14+
}
1315

14-
return (
15-
<div className={styles.memberAwardedAt}>
16-
{new Date(memberAward.awarded_at).toLocaleString(undefined, dateFormat)}
17-
</div>
18-
)
19-
}
16+
return (
17+
<div className={styles.memberAwardedAt}>
18+
{new Date(memberAward.awarded_at).toLocaleString(undefined, dateFormat)}
19+
</div>
20+
)
21+
}
2022

2123
export default MemberAwaredAtRenderer

src-ts/tools/gamification-admin/pages/badge-detail/AwardedMembersTab/awarded-members-table/member-handle-renderer/MemberHandleRenderer.tsx

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import { MemberBadgeAward } from '../../../../../game-lib'
44

55
import styles from './MemberHandleRenderer.module.scss'
66

7-
function MemberHandleRenderer(memberAward: MemberBadgeAward): JSX.Element {
8-
return (
7+
const MemberHandleRenderer: (memberAward: MemberBadgeAward) => JSX.Element
8+
= (memberAward: MemberBadgeAward): JSX.Element => (
99
<div className={styles.memberAward}>
1010
<p className={styles.memberHandle}>{memberAward.user_handle}</p>
1111
<IconOutline.ExternalLinkIcon
@@ -14,6 +14,5 @@ function MemberHandleRenderer(memberAward: MemberBadgeAward): JSX.Element {
1414
/>
1515
</div>
1616
)
17-
}
1817

1918
export default MemberHandleRenderer

0 commit comments

Comments
 (0)