diff --git a/src-ts/.eslintrc.js b/src-ts/.eslintrc.js index 8e5f85158..d80fc63f5 100644 --- a/src-ts/.eslintrc.js +++ b/src-ts/.eslintrc.js @@ -83,6 +83,12 @@ module.exports = { 'jsx-a11y/tabindex-no-positive': [ 'warn' ], + 'newline-per-chained-call': [ + 'error', + { + ignoreChainWithDepth: 1, + } + ], 'max-len': [ 'error', 120, diff --git a/src-ts/lib/contact-support-form/ContactSupportForm.tsx b/src-ts/lib/contact-support-form/ContactSupportForm.tsx index 7f63a0625..57af39fb9 100644 --- a/src-ts/lib/contact-support-form/ContactSupportForm.tsx +++ b/src-ts/lib/contact-support-form/ContactSupportForm.tsx @@ -56,7 +56,8 @@ const ContactSupportForm: FC = (props: ContactSupportFo return contactSupportSubmitRequestAsync(request) .then(() => { setSaveOnSuccess(true) - }).finally(() => setLoading(false)) + }) + .finally(() => setLoading(false)) }, []) const emailElement: JSX.Element | undefined = !!profile?.email diff --git a/src-ts/lib/form/form-groups/form-card-set/FormCardSet.tsx b/src-ts/lib/form/form-groups/form-card-set/FormCardSet.tsx index 59c247986..4f87d118b 100644 --- a/src-ts/lib/form/form-groups/form-card-set/FormCardSet.tsx +++ b/src-ts/lib/form/form-groups/form-card-set/FormCardSet.tsx @@ -27,7 +27,10 @@ const FormCardSet: React.FC = (props: FormCardSetProps) => { return <> } - const iconName: string = `${icon.split('-').map((chunk: string) => chunk.charAt(0).toUpperCase() + chunk.slice(1)).join('')}Icon` + const iconName: string = `${icon.split('-') + .map((chunk: string) => chunk.charAt(0) + .toUpperCase() + chunk.slice(1)) + .join('')}Icon` const IconComponent: React.FC> = IconOutline[iconName as keyof typeof IconOutline] return } diff --git a/src-ts/lib/modals/base-modal/use-fetch-modal-content.tsx b/src-ts/lib/modals/base-modal/use-fetch-modal-content.tsx index 035904cb0..d0c4d5e8a 100644 --- a/src-ts/lib/modals/base-modal/use-fetch-modal-content.tsx +++ b/src-ts/lib/modals/base-modal/use-fetch-modal-content.tsx @@ -1,4 +1,4 @@ -import {Dispatch, SetStateAction, useEffect, useState} from 'react' +import { Dispatch, SetStateAction, useEffect, useState } from 'react' import { xhrGetAsync } from '../../functions' @@ -15,7 +15,8 @@ export function useFetchModalContent(contentUrl?: string, enabled?: boolean): Mo } if (!content) { - xhrGetAsync(contentUrl).then(setContent) + xhrGetAsync(contentUrl) + .then(setContent) } }, [contentUrl, content, enabled]) diff --git a/src-ts/lib/page-footer/PageFooter.tsx b/src-ts/lib/page-footer/PageFooter.tsx index 78e270145..845593322 100644 --- a/src-ts/lib/page-footer/PageFooter.tsx +++ b/src-ts/lib/page-footer/PageFooter.tsx @@ -48,7 +48,8 @@ const PageFooter: FC<{}> = () => {
© - {(new Date()).getFullYear()} + {(new Date()) + .getFullYear()} {' '} Topcoder diff --git a/src-ts/lib/route-provider/router.utils.ts b/src-ts/lib/route-provider/router.utils.ts index 1c2ee3ef9..a5d0bef9b 100644 --- a/src-ts/lib/route-provider/router.utils.ts +++ b/src-ts/lib/route-provider/router.utils.ts @@ -14,5 +14,6 @@ export type LazyLoadType = ( * (while react's `lazy` method only allows to import default exports) */ export const lazyLoad: LazyLoadType = (moduleImport: () => Promise, namedExport: string = 'default') => ( - lazy(() => moduleImport().then(m => ({ default: get(m, namedExport) }))) + lazy(() => moduleImport() + .then(m => ({ default: get(m, namedExport) }))) ) diff --git a/src-ts/tools/dev-center/dev-center-lib/MarkdownDoc/markdownRenderer/renderer.tsx b/src-ts/tools/dev-center/dev-center-lib/MarkdownDoc/markdownRenderer/renderer.tsx index d69a69afe..aa85ee22e 100644 --- a/src-ts/tools/dev-center/dev-center-lib/MarkdownDoc/markdownRenderer/renderer.tsx +++ b/src-ts/tools/dev-center/dev-center-lib/MarkdownDoc/markdownRenderer/renderer.tsx @@ -80,17 +80,18 @@ export class Renderer implements MarkdownRenderer { const children: ReturnType = this.groupBy( nodes, options, - ).map(node => { - if (Array.isArray(node)) { - return ( - - {React.Children.map(node, child => child)} - - ) - } + ) + .map(node => { + if (Array.isArray(node)) { + return ( + + {React.Children.map(node, child => child)} + + ) + } - return node - }) + return node + }) return (
@@ -287,7 +288,8 @@ export class Renderer implements MarkdownRenderer { const h: string = marked.parser([token], parserOptions) const level: number = token.depth const title: string = removeLineBreak(stripTag(h, `h${level}`)) - const headingId: string = extractId(h, `h${level}`, index).trim() + const headingId: string = extractId(h, `h${level}`, index) + .trim() options.toc.push({ headingId, @@ -351,12 +353,14 @@ export class Renderer implements MarkdownRenderer { const tag: string = extractTag(html) if (tag) { const isParagraphTag: boolean = tag === MarkdownParagraphTag.p - const isHeaderTag: boolean = Object.values(MarkdownHeaderTag).indexOf(tag as MarkdownHeaderTag) !== -1 + const isHeaderTag: boolean = Object.values(MarkdownHeaderTag) + .indexOf(tag as MarkdownHeaderTag) !== -1 if (isParagraphTag || isHeaderTag) { let id: string | undefined if (isHeaderTag) { token = token as marked.Tokens.Heading - id = extractId(html, `h${token.depth}`, index).trim() + id = extractId(html, `h${token.depth}`, index) + .trim() } return React.createElement(tag, { diff --git a/src-ts/tools/dev-center/dev-center-lib/MarkdownDoc/markdownRenderer/util.ts b/src-ts/tools/dev-center/dev-center-lib/MarkdownDoc/markdownRenderer/util.ts index 46de0a097..5481c8a3e 100644 --- a/src-ts/tools/dev-center/dev-center-lib/MarkdownDoc/markdownRenderer/util.ts +++ b/src-ts/tools/dev-center/dev-center-lib/MarkdownDoc/markdownRenderer/util.ts @@ -30,8 +30,11 @@ export function renderMarkdown( const matchStr: string = matches ? matches[0] : '' return matchStr ? { - s: fromStr.replace(matchStr, '').trimStart(), - title: matchStr.replace(/^#/, '').replace(/`/g, '').trim(), + s: fromStr.replace(matchStr, '') + .trimStart(), + title: matchStr.replace(/^#/, '') + .replace(/`/g, '') + .trim(), } : { title, s } } diff --git a/src-ts/tools/dev-center/dev-center-pages/community-app/landing-page/dev-center-articles-section/CardSection/CardSection.tsx b/src-ts/tools/dev-center/dev-center-pages/community-app/landing-page/dev-center-articles-section/CardSection/CardSection.tsx index 5dc47a7d2..46d76f405 100644 --- a/src-ts/tools/dev-center/dev-center-pages/community-app/landing-page/dev-center-articles-section/CardSection/CardSection.tsx +++ b/src-ts/tools/dev-center/dev-center-pages/community-app/landing-page/dev-center-articles-section/CardSection/CardSection.tsx @@ -33,7 +33,8 @@ const CardSection: FC = () => { return blog } }), - ).then(arr => setArticles(arr)) + ) + .then(arr => setArticles(arr)) }, []) const articleStyles: Array = [ diff --git a/src-ts/tools/gamification-admin/pages/badge-detail/AwardedMembersTab/awarded-members-table/member-awardedAt-renderer/MemberAwaredAtRenderer.tsx b/src-ts/tools/gamification-admin/pages/badge-detail/AwardedMembersTab/awarded-members-table/member-awardedAt-renderer/MemberAwaredAtRenderer.tsx index 952ba3263..7d80d3cf8 100644 --- a/src-ts/tools/gamification-admin/pages/badge-detail/AwardedMembersTab/awarded-members-table/member-awardedAt-renderer/MemberAwaredAtRenderer.tsx +++ b/src-ts/tools/gamification-admin/pages/badge-detail/AwardedMembersTab/awarded-members-table/member-awardedAt-renderer/MemberAwaredAtRenderer.tsx @@ -12,7 +12,10 @@ const MemberAwaredAtRenderer = (memberAward: MemberBadgeAward): JSX.Element => { } return ( -
{new Date(memberAward.awarded_at).toLocaleString(undefined, dateFormat)}
+
+ {new Date(memberAward.awarded_at) + .toLocaleString(undefined, dateFormat)} +
) } diff --git a/src-ts/tools/gamification-admin/pages/badge-detail/badge-details.functions.ts b/src-ts/tools/gamification-admin/pages/badge-detail/badge-details.functions.ts index d86f98b8f..e979ad0f3 100644 --- a/src-ts/tools/gamification-admin/pages/badge-detail/badge-details.functions.ts +++ b/src-ts/tools/gamification-admin/pages/badge-detail/badge-details.functions.ts @@ -13,7 +13,8 @@ export async function submitRequestAsync(request: UpdateBadgeRequest): Promise>): string { input.unshift(GamificationConfig.CSV_HEADER) - return input.map(row => row.join(',')).join('\n') + return input.map(row => row.join(',')) + .join('\n') } export async function manualAssignRequestAsync(csv: string): Promise { diff --git a/src-ts/tools/learn/course-certificate/certificate-view/CertificateView.tsx b/src-ts/tools/learn/course-certificate/certificate-view/CertificateView.tsx index 5258b0155..9e6e1d428 100644 --- a/src-ts/tools/learn/course-certificate/certificate-view/CertificateView.tsx +++ b/src-ts/tools/learn/course-certificate/certificate-view/CertificateView.tsx @@ -46,7 +46,8 @@ const CertificateView: FC = (props: CertificateViewProps) const certificateWrapRef: MutableRefObject = useRef() const userName: string = useMemo(() => ( - [props.profile.firstName, props.profile.lastName].filter(Boolean).join(' ') + [props.profile.firstName, props.profile.lastName].filter(Boolean) + .join(' ') || props.profile.handle ), [props.profile.firstName, props.profile.handle, props.profile.lastName]) diff --git a/src-ts/tools/learn/free-code-camp/FreeCodeCamp.tsx b/src-ts/tools/learn/free-code-camp/FreeCodeCamp.tsx index 93f293b66..0e507be63 100644 --- a/src-ts/tools/learn/free-code-camp/FreeCodeCamp.tsx +++ b/src-ts/tools/learn/free-code-camp/FreeCodeCamp.tsx @@ -157,7 +157,9 @@ const FreeCodeCamp: FC<{}> = () => { function handleFccLessonReady(lessonPath: string): void { - const [nLessonPath, modulePath, coursePath]: Array = lessonPath.replace(/\/$/, '').split('/').reverse() + const [nLessonPath, modulePath, coursePath]: Array = lessonPath.replace(/\/$/, '') + .split('/') + .reverse() updatePath(nLessonPath, modulePath, coursePath) const currentLesson: { [key: string]: string } = { @@ -206,7 +208,8 @@ const FreeCodeCamp: FC<{}> = () => { certificateProgress.id, UserCertificationUpdateProgressActions.completeLesson, currentLesson, - ).then(setCertificateProgress) + ) + .then(setCertificateProgress) } } diff --git a/src-ts/tools/learn/learn-lib/data-providers/all-certifications-provider/all-certifications.provider.tsx b/src-ts/tools/learn/learn-lib/data-providers/all-certifications-provider/all-certifications.provider.tsx index 7eb1f8ea2..69644786d 100644 --- a/src-ts/tools/learn/learn-lib/data-providers/all-certifications-provider/all-certifications.provider.tsx +++ b/src-ts/tools/learn/learn-lib/data-providers/all-certifications-provider/all-certifications.provider.tsx @@ -1,3 +1,4 @@ +/* eslint-disable default-param-last */ import useSWR, { SWRConfiguration, SWRResponse } from 'swr' import { learnUrlGet } from '../../functions' @@ -11,16 +12,16 @@ interface CertificationsAllProviderOptions { export function useGetAllCertifications( providerName: string = 'freeCodeCamp', - options?: CertificationsAllProviderOptions + options?: CertificationsAllProviderOptions, ): AllCertificationsProviderData { const url: string = learnUrlGet( 'certifications', - `?providerName=${providerName}` + `?providerName=${providerName}`, ) const swrCacheConfig: SWRConfiguration = useSwrCache(url) - const {data, error}: SWRResponse = useSWR(url, { + const { data, error }: SWRResponse = useSWR(url, { ...swrCacheConfig, isPaused: () => options?.enabled === false, }) @@ -36,16 +37,16 @@ export function useGetAllCertifications( export function useGetCertification( providerName: string = 'freeCodeCamp', certificationId: string, - options?: CertificationsAllProviderOptions + options?: CertificationsAllProviderOptions, ): AllCertificationsProviderData { const url: string = learnUrlGet( 'certifications', certificationId, - `?providerName=${providerName}` + `?providerName=${providerName}`, ) - const {data, error}: SWRResponse = useSWR(url, { + const { data, error }: SWRResponse = useSWR(url, { isPaused: () => options?.enabled === false, }) return { diff --git a/src-ts/tools/learn/learn-lib/data-providers/courses-provider/courses.provider.tsx b/src-ts/tools/learn/learn-lib/data-providers/courses-provider/courses.provider.tsx index 304b53e96..af4a5e52d 100644 --- a/src-ts/tools/learn/learn-lib/data-providers/courses-provider/courses.provider.tsx +++ b/src-ts/tools/learn/learn-lib/data-providers/courses-provider/courses.provider.tsx @@ -9,7 +9,7 @@ import { LearnCourse } from './learn-course.model' export function useGetCourses( provider: string, - certification?: string + certification?: string, ): CoursesProviderData { const params: string = [ @@ -22,7 +22,7 @@ export function useGetCourses( const url: string = learnUrlGet('courses', `?${params}`) const swrCacheConfig: SWRConfiguration = useSwrCache(url) - const {data, error}: SWRResponse> = useSWR(url, swrCacheConfig) + const { data, error }: SWRResponse> = useSWR(url, swrCacheConfig) return { course: get(data, [0]), diff --git a/src-ts/tools/learn/learn-lib/data-providers/lesson-provider/lesson.provider.tsx b/src-ts/tools/learn/learn-lib/data-providers/lesson-provider/lesson.provider.tsx index ed1f00879..ee1b20128 100644 --- a/src-ts/tools/learn/learn-lib/data-providers/lesson-provider/lesson.provider.tsx +++ b/src-ts/tools/learn/learn-lib/data-providers/lesson-provider/lesson.provider.tsx @@ -21,7 +21,9 @@ export function useGetLesson( courseData?.key ?? course, module, lesson, - ].filter(Boolean).join('/') + ] + .filter(Boolean) + .join('/') return { lesson: !lessonData ? undefined : { diff --git a/src-ts/tools/learn/learn-lib/data-providers/resource-provider-provider/resource-provider.provider.tsx b/src-ts/tools/learn/learn-lib/data-providers/resource-provider-provider/resource-provider.provider.tsx index a100e0ffc..e3de332bc 100644 --- a/src-ts/tools/learn/learn-lib/data-providers/resource-provider-provider/resource-provider.provider.tsx +++ b/src-ts/tools/learn/learn-lib/data-providers/resource-provider-provider/resource-provider.provider.tsx @@ -12,11 +12,11 @@ export function useGetResourceProvider(providerName?: string): ResourceProviderD const url: string = learnUrlGet('providers') const swrCacheConfig: SWRConfiguration = useSwrCache(url) - const {data, error}: SWRResponse> = useSWR(url, swrCacheConfig) + const { data, error }: SWRResponse> = useSWR(url, swrCacheConfig) return { loading: !data && !error, - provider: find(data, {name: providerName}), + provider: find(data, { name: providerName }), ready: !!data || !!error, } } diff --git a/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certification-progress.provider.tsx b/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certification-progress.provider.tsx index 949505428..7bffd5039 100644 --- a/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certification-progress.provider.tsx +++ b/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certification-progress.provider.tsx @@ -9,7 +9,7 @@ import { LearnUserCertificationProgress } from './user-certifications-functions' export function useGetUserCertificationProgress( userId?: number, provider?: string, - certification?: string + certification?: string, ): UserCertificationProgressProviderData { @@ -28,10 +28,10 @@ export function useGetUserCertificationProgress( }) return { - certificationProgress: find(data, {certification}), + certificationProgress: find(data, { certification }), loading: !!userId && !data && !error, ready: !userId || data || error, refetch: () => mutate(), - setCertificateProgress: (progress) => mutate([progress]), + setCertificateProgress: progress => mutate([progress]), } } diff --git a/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications.provider.tsx b/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications.provider.tsx index 529f22aa6..f71451d03 100644 --- a/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications.provider.tsx +++ b/src-ts/tools/learn/learn-lib/data-providers/user-certifications-provider/user-certifications.provider.tsx @@ -29,17 +29,25 @@ export function useGetUserCertifications( }) const loading: boolean = !data && !error - const completed: ReadonlyArray = useMemo(() => data - ?.filter(c => c.status === UserCertificationProgressStatus.completed) - .map(c => c as UserCertificationCompleted) - .sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()) ?? [] - , [data]) - - const inProgress: ReadonlyArray = useMemo(() => data - ?.filter(c => c.status === UserCertificationProgressStatus.inProgress) - .map(c => c as UserCertificationInProgress) - .sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime()) ?? [] - , [data]) + const completed: ReadonlyArray = useMemo( + () => data + ?.filter(c => c.status === UserCertificationProgressStatus.completed) + .map(c => c as UserCertificationCompleted) + .sort((a, b) => new Date(b.updatedAt) + .getTime() - new Date(a.updatedAt) + .getTime()) ?? [], + [data], + ) + + const inProgress: ReadonlyArray = useMemo( + () => data + ?.filter(c => c.status === UserCertificationProgressStatus.inProgress) + .map(c => c as UserCertificationInProgress) + .sort((a, b) => new Date(b.updatedAt) + .getTime() - new Date(a.updatedAt) + .getTime()) ?? [], + [data], + ) if (error) { errorHandle(error, 'There was an error getting your course progress.') diff --git a/src-ts/tools/learn/learn-lib/data-providers/user-completed-certifications-provider/user-completed-certifications.provider.tsx b/src-ts/tools/learn/learn-lib/data-providers/user-completed-certifications-provider/user-completed-certifications.provider.tsx index 7a44f8ddb..5e56ea7cf 100644 --- a/src-ts/tools/learn/learn-lib/data-providers/user-completed-certifications-provider/user-completed-certifications.provider.tsx +++ b/src-ts/tools/learn/learn-lib/data-providers/user-completed-certifications-provider/user-completed-certifications.provider.tsx @@ -8,20 +8,19 @@ import { UserCompletedCertificationsProviderData } from './user-completed-certif export function useGetUserCompletedCertifications( userId?: number, provider?: string, - certification?: string + certification?: string, ): UserCompletedCertificationsProviderData { const url: string = learnUrlGet('completed-certifications', `${userId}`) - const {data, error}: SWRResponse> = useSWR(url) + const { data, error }: SWRResponse> = useSWR(url) let certifications: ReadonlyArray = data ?? [] if (provider || certification) { - certifications = certifications.filter((c) => { - return (!provider || c.provider === provider) && - (!certification || c.certification === certification) - }) + certifications = certifications + .filter(c => (!provider || c.provider === provider) + && (!certification || c.certification === certification)) } return { diff --git a/src-ts/tools/learn/learn-lib/learn-swr/LearnSwr.tsx b/src-ts/tools/learn/learn-lib/learn-swr/LearnSwr.tsx index 532fdd52a..847de317b 100644 --- a/src-ts/tools/learn/learn-lib/learn-swr/LearnSwr.tsx +++ b/src-ts/tools/learn/learn-lib/learn-swr/LearnSwr.tsx @@ -7,20 +7,17 @@ interface LearnSwrProps { children: ReactNode } -const LearnSwr: FC = (props: LearnSwrProps) => { - - return ( - learnXhrGetAsync(resource), - refreshInterval: 0, - revalidateOnFocus: false, - revalidateOnMount: true, - }} - > - {props.children} - - ) -} +const LearnSwr: FC = (props: LearnSwrProps) => ( + learnXhrGetAsync(resource), + refreshInterval: 0, + revalidateOnFocus: false, + revalidateOnMount: true, + }} + > + {props.children} + +) export default LearnSwr diff --git a/src-ts/tools/learn/learn-lib/learn-swr/use-swr-cache.tsx b/src-ts/tools/learn/learn-lib/learn-swr/use-swr-cache.tsx index 2e13c599e..67701fb1a 100644 --- a/src-ts/tools/learn/learn-lib/learn-swr/use-swr-cache.tsx +++ b/src-ts/tools/learn/learn-lib/learn-swr/use-swr-cache.tsx @@ -10,9 +10,10 @@ if (typeof window !== 'undefined') { // parse the loaded data, and load it into swr's in-memory cache if (cacheMap) { - Object.entries(cacheMap).forEach(([key, data]) => { - mutate(key, data, {revalidate: false}) - }) + Object.entries(cacheMap) + .forEach(([key, data]) => { + mutate(key, data, { revalidate: false }) + }) } } diff --git a/src-ts/tools/learn/my-learning/tab-content-layout/TabContentLayout.tsx b/src-ts/tools/learn/my-learning/tab-content-layout/TabContentLayout.tsx index 1ce9bc74d..7ef58b15c 100644 --- a/src-ts/tools/learn/my-learning/tab-content-layout/TabContentLayout.tsx +++ b/src-ts/tools/learn/my-learning/tab-content-layout/TabContentLayout.tsx @@ -37,10 +37,12 @@ const TabContentLayout: FC = (props: TabContentLayoutProp const certsByCategory: Dictionary> = groupBy(props.certifications, 'category') return [ { label: 'All Categories', value: '' }, - ...Object.keys(certsByCategory).sort().map(c => ({ - label: c, - value: c, - })), + ...Object.keys(certsByCategory) + .sort() + .map(c => ({ + label: c, + value: c, + })), ] }, [props.certifications]) diff --git a/src-ts/tools/learn/welcome/available-courses-list/AvailableCoursesList.tsx b/src-ts/tools/learn/welcome/available-courses-list/AvailableCoursesList.tsx index c039fb976..0880424e3 100644 --- a/src-ts/tools/learn/welcome/available-courses-list/AvailableCoursesList.tsx +++ b/src-ts/tools/learn/welcome/available-courses-list/AvailableCoursesList.tsx @@ -35,10 +35,12 @@ const AvailableCoursesList: FC = (props: AvailableCou value: string, }> = useMemo(() => [ { label: 'All Categories', orderIndex: -1, value: '' }, - ...Object.keys(certsByCategory).sort().map(c => ({ - label: c, - value: c, - })), + ...Object.keys(certsByCategory) + .sort() + .map(c => ({ + label: c, + value: c, + })), ], [certsByCategory]) // create and sort the certificates groups diff --git a/src-ts/tools/learn/welcome/progress-block/cards-slider/CardsSlider.tsx b/src-ts/tools/learn/welcome/progress-block/cards-slider/CardsSlider.tsx index c92794050..7b4c9a55b 100644 --- a/src-ts/tools/learn/welcome/progress-block/cards-slider/CardsSlider.tsx +++ b/src-ts/tools/learn/welcome/progress-block/cards-slider/CardsSlider.tsx @@ -35,14 +35,15 @@ const CardsSlider: FC = (props: CardsSliderProps) => { {renderSlides(props.children)}
- {fill(Array(props.children.length), '').map((_, i) => ( - ( + setActiveSlide(i)} - /> - ))} + key={i} + className={classNames(styles['nav-dot'], activeSlide === i && 'active')} + onClick={() => setActiveSlide(i)} + /> + ))}
) diff --git a/src-ts/tools/learn/welcome/progress-block/progress-action/ProgressAction.tsx b/src-ts/tools/learn/welcome/progress-block/progress-action/ProgressAction.tsx index f7a7089ab..505411c46 100644 --- a/src-ts/tools/learn/welcome/progress-block/progress-action/ProgressAction.tsx +++ b/src-ts/tools/learn/welcome/progress-block/progress-action/ProgressAction.tsx @@ -51,7 +51,8 @@ const ProgressAction: FC = (props: ProgressActionProps) => const recentlyUpdatedCertifications: Array = orderBy([ ...props.userCompletedCertifications, ...props.userInProgressCertifications, - ], 'updatedAt', 'desc').slice(0, USER_PROGRESS_MAX_SLIDES_COUNT) + ], 'updatedAt', 'desc') + .slice(0, USER_PROGRESS_MAX_SLIDES_COUNT) function renderInProgress(courseToDisplay: UserCertificationInProgress): JSX.Element { return ( diff --git a/src-ts/tools/work/work-detail-solutions/work-solutions-list/WorkSolutionsList.tsx b/src-ts/tools/work/work-detail-solutions/work-solutions-list/WorkSolutionsList.tsx index 6f4aa2ad6..9e7f051c6 100644 --- a/src-ts/tools/work/work-detail-solutions/work-solutions-list/WorkSolutionsList.tsx +++ b/src-ts/tools/work/work-detail-solutions/work-solutions-list/WorkSolutionsList.tsx @@ -20,7 +20,8 @@ const WorkSolutionsList: FC = (props: WorkSolutionsListP
YOUR SOLUTIONS WILL BE AVAILABLE FOR DOWNLOAD ON:
- {moment(props.work.solutionsReadyDate).format('MM/DD/YY')} + {moment(props.work.solutionsReadyDate) + .format('MM/DD/YY')}
) } diff --git a/src-ts/tools/work/work-lib/work-provider/work-functions/work-factory/work.factory.ts b/src-ts/tools/work/work-lib/work-provider/work-functions/work-factory/work.factory.ts index b6087a6ed..2ec0526ba 100644 --- a/src-ts/tools/work/work-lib/work-provider/work-functions/work-factory/work.factory.ts +++ b/src-ts/tools/work/work-lib/work-provider/work-functions/work-factory/work.factory.ts @@ -146,12 +146,13 @@ export function buildUpdateRequest(workTypeConfig: WorkTypeConfig, challenge: Ch }, ] - Object.keys(formData).forEach(key => { - intakeMetadata.push({ - name: ChallengeMetadataName[key as keyof typeof ChallengeMetadataName], - value: formData[key] || '', + Object.keys(formData) + .forEach(key => { + intakeMetadata.push({ + name: ChallengeMetadataName[key as keyof typeof ChallengeMetadataName], + value: formData[key] || '', + }) }) - }) // ---- End Build Metadata ---- // // --- Build the Markdown string that gets displayed in Work Manager app and others --- // @@ -433,7 +434,8 @@ function checkFormDataOptionEmpty(detail: any): boolean { || (typeof detail === 'string' && detail.trim().length === 0) || (Array.isArray(detail) && detail.length === 0) || (typeof detail === 'object' - && Object.values(detail).filter((val: any) => val && val.trim().length !== 0) + && Object.values(detail) + .filter((val: any) => val && val.trim().length !== 0) .length === 0) ) } @@ -446,7 +448,9 @@ function findOpenPhase(challenge: Challenge): ChallengePhase | undefined { // sort the phases descending by start date const sortedPhases: Array = challenge.phases - .sort((a, b) => new Date(b.actualStartDate).getTime() - new Date(a.actualStartDate).getTime()) + .sort((a, b) => new Date(b.actualStartDate) + .getTime() - new Date(a.actualStartDate) + .getTime()) const now: Date = new Date() // if we have an open phase, just use that @@ -624,7 +628,8 @@ function getProgressStepDateEnd(challenge: Challenge, phases: Array): Da return undefined } - if (phase.isOpen || moment(phase.scheduledStartDate).isAfter()) { + if (phase.isOpen || moment(phase.scheduledStartDate) + .isAfter()) { return new Date(phase.scheduledEndDate) } @@ -638,7 +643,8 @@ function getProgressStepDateStart(challenge: Challenge, phases: Array): return undefined } - if (!phase.isOpen || moment(phase.scheduledStartDate).isAfter()) { + if (!phase.isOpen || moment(phase.scheduledStartDate) + .isAfter()) { return new Date(phase.scheduledStartDate) } @@ -651,21 +657,30 @@ function getSolutionsReadyDate(challenge: Challenge): Date | undefined { function getStartDate(): string { let daysToAdd: number = 1 - switch (moment(new Date()).weekday()) { - case moment().day('Friday').weekday(): + switch (moment(new Date()) + .weekday()) { + case moment() + .day('Friday') + .weekday(): daysToAdd = 3 break - case moment().day('Saturday').weekday(): + case moment() + .day('Saturday') + .weekday(): daysToAdd = 2 break - case moment().day('Sunday').weekday(): + case moment() + .day('Sunday') + .weekday(): daysToAdd = 1 break default: daysToAdd = 1 } - return moment().add(daysToAdd, 'days').format() + return moment() + .add(daysToAdd, 'days') + .format() } function getSubmittedDate(challenge: Challenge): Date { diff --git a/src-ts/tools/work/work-self-service/intake-forms/bug-hunt/BugHuntIntakeForm.tsx b/src-ts/tools/work/work-self-service/intake-forms/bug-hunt/BugHuntIntakeForm.tsx index 7ceff9680..758e40723 100644 --- a/src-ts/tools/work/work-self-service/intake-forms/bug-hunt/BugHuntIntakeForm.tsx +++ b/src-ts/tools/work/work-self-service/intake-forms/bug-hunt/BugHuntIntakeForm.tsx @@ -115,7 +115,8 @@ const BugHuntIntakeForm: React.FC = () => { } setLoading(true) - getAndSetWork().finally(() => setLoading(false)) + getAndSetWork() + .finally(() => setLoading(false)) }, [ isLoggedIn, workId, @@ -173,7 +174,8 @@ const BugHuntIntakeForm: React.FC = () => { } setLoading(true) - return workUpdateAsync(WorkType.bugHunt, challenge, val).finally(() => setLoading(false)) + return workUpdateAsync(WorkType.bugHunt, challenge, val) + .finally(() => setLoading(false)) } const handleSaveSuccess: () => void = () => { diff --git a/src-ts/tools/work/work-self-service/intake-forms/review/Review.tsx b/src-ts/tools/work/work-self-service/intake-forms/review/Review.tsx index 9de62f10a..26cb7aab0 100644 --- a/src-ts/tools/work/work-self-service/intake-forms/review/Review.tsx +++ b/src-ts/tools/work/work-self-service/intake-forms/review/Review.tsx @@ -283,6 +283,7 @@ const output: () => JSX.Element = () => { apiVersion: EnvironmentConfig.STRIPE.API_VERSION, }) } + return ( }>