Skip to content

3.0 TCA Certifications - 2023-03-01 -> master #554

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 276 commits into from
Mar 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
276 commits
Select commit Hold shift + click to select a range
c464280
Merge remote-tracking branch 'origin/dev' into TCA-792_tc-certificati…
vas3a Jan 18, 2023
51198ce
Merge branch 'TCA-792_tc-certifications-epic' into TCA-764_certificat…
vas3a Jan 20, 2023
2f506a1
Create TcaLevelIcon and use it in cert cards
vas3a Jan 20, 2023
87c9dad
TCA-764 - update tca-certifications model with api model
vas3a Jan 20, 2023
a14e1f3
TCA-764 - mobile for tc certifications details
vas3a Jan 20, 2023
b2086d4
TCA-870 init tca certs
kkartunov Jan 23, 2023
9df003a
TCA-870 add the public user cert route
kkartunov Jan 23, 2023
0a88d8d
PROD-3808 - fix platform to platform-ui auth urls
vas3a Jan 23, 2023
beb2118
TCA-870 update TCA certs model to latest per API
kkartunov Jan 23, 2023
cfe5ce0
TCA-764 - certification details page - PR feedback, add enroll button…
vas3a Jan 23, 2023
1c83cdc
Merge pull request #469 from topcoder-platform/TCA-764_certification_…
vas3a Jan 23, 2023
3423eab
TCA-870 reusable components
kkartunov Jan 24, 2023
426a69b
Merge branch 'TCA-792_tc-certifications-epic' into TCA-870-cert-gener…
kkartunov Jan 24, 2023
d3e728d
Merge pull request #471 from topcoder-platform/PROD-3808_fix-platform…
vas3a Jan 24, 2023
107260b
TCA-870 extract canvas and print renderers to hooks
kkartunov Jan 25, 2023
199328f
TCA-858 - TC certifications - courses progress
vas3a Jan 25, 2023
be341dc
TCA-858 - import data model updates, move badge & providers component…
vas3a Jan 25, 2023
0f8c586
TCA-858 - integrate progress api
vas3a Jan 25, 2023
330bea6
TCA-858 - mobile
vas3a Jan 26, 2023
94628e3
Merge pull request #470 from topcoder-platform/TCA-870-cert-generation
kkartunov Jan 27, 2023
abe2cfc
TCA-935 homepage integration init
kkartunov Jan 27, 2023
01b9834
Fixes typo in README
testflyjets Jan 27, 2023
996a609
Merge branch 'TCA-792_tc-certifications-epic' of github.com:topcoder-…
testflyjets Jan 27, 2023
4dd0be7
remove commented code
kkartunov Jan 30, 2023
4f9718a
Merge pull request #472 from topcoder-platform/TCA-935-homepage-API-i…
kkartunov Jan 30, 2023
87fd9c4
Merge branch 'TCA-792_tc-certifications-epic' into TCA-858_tc-certif-…
vas3a Jan 31, 2023
3b3b93b
TCA-858 - mobile view
vas3a Jan 31, 2023
8c0265c
TCA-858 - integrate certs resources in certification curriculum
vas3a Jan 31, 2023
1a02692
TCA-858 - integrate course card data
vas3a Jan 31, 2023
3c821b3
TCA-858 - account for no progress
vas3a Jan 31, 2023
d7f1a37
TCA-858 - PR feedback & typos fixes
vas3a Feb 1, 2023
8077570
Merge pull request #473 from topcoder-platform/TCA-858_tc-certif-cour…
vas3a Feb 1, 2023
9e599cb
TCA-792 - api integration
vas3a Feb 3, 2023
1b81985
Merge pull request #474 from topcoder-platform/TCA-792_tc-certificati…
vas3a Feb 6, 2023
65c154b
TCA-792 - homepage api integration
vas3a Feb 6, 2023
b214c78
TCA-948 - update texts in certif details page
vas3a Feb 6, 2023
5dbb68a
Merge pull request #475 from topcoder-platform/TCA-792_tc-certificati…
kkartunov Feb 6, 2023
31956d2
Merge pull request #476 from topcoder-platform/TCA-948_minor-text-cha…
vas3a Feb 6, 2023
386f249
TCA-942 - update certification completion estimate as timerange
vas3a Feb 7, 2023
5c7f5db
update learner level icon
vas3a Feb 7, 2023
7cd0e89
TCA-941 - update homepage courses card
vas3a Feb 7, 2023
a07c6fe
TCA-945 and TCA-946
kkartunov Feb 7, 2023
2a4906d
back the correct dev URL by default - fix
kkartunov Feb 7, 2023
e7d5ea3
Merge pull request #477 from topcoder-platform/TCA-942_times-updates
vas3a Feb 7, 2023
8660c09
Merge branch 'TCA-792_tc-certifications-epic' into TCA-701--updates
kkartunov Feb 7, 2023
af2bedc
Merge pull request #478 from topcoder-platform/TCA-701--updates
kkartunov Feb 7, 2023
7c254c3
fix API config
kkartunov Feb 7, 2023
74054ff
Hotfix - homepage throws
kkartunov Feb 8, 2023
352d656
Module meta - refactor
kkartunov Feb 8, 2023
2dce7cd
fix bad API URL
kkartunov Feb 8, 2023
e7e4341
Fixes views with new LearnCourse respons struct
kkartunov Feb 8, 2023
c8e3219
connect course cards to API
kkartunov Feb 8, 2023
cc1113d
TCA-936 - enrolled modal
vas3a Feb 8, 2023
28ae98a
TCA-936 - implement enrollment flow
vas3a Feb 8, 2023
30b996d
TCA-936 - update modal title
vas3a Feb 8, 2023
7fbd4b4
Merge pull request #480 from topcoder-platform/TCA-936_tca-certs-enro…
kkartunov Feb 8, 2023
19d00c0
fixes mobile views of cert cards on home page
kkartunov Feb 8, 2023
7a95ee9
Merge pull request #479 from topcoder-platform/TCA-935--WIP
kkartunov Feb 8, 2023
e073c8d
TCA-936 - update enrolled modal
vas3a Feb 9, 2023
7d4f7cb
TCA-803 social shre for TCA certs
kkartunov Feb 9, 2023
c4d5f06
Merge pull request #481 from topcoder-platform/TCA-936_update_enrolle…
vas3a Feb 9, 2023
7c09b2a
Merge pull request #483 from topcoder-platform/TCA-803
kkartunov Feb 9, 2023
6cb01cc
TCA-956 - integrate frontend with PG api
vas3a Feb 10, 2023
98f2357
Merge remote-tracking branch 'origin/TCA-792_tc-certifications-epic' …
vas3a Feb 10, 2023
d66678c
TCA-955 init page
kkartunov Feb 10, 2023
99d577a
TCA-956 - remove api unused prop
vas3a Feb 10, 2023
a3ef46b
Merge pull request #484 from topcoder-platform/TCA-956_new-api-integr…
vas3a Feb 10, 2023
7a92891
Merge branch 'dev' into TCA-792_tc-certifications-epic
vas3a Feb 10, 2023
7196678
TCA-867 - remove my-learning-page
vas3a Feb 11, 2023
3fc7e40
TCA-935 home page certs banner images
kkartunov Feb 13, 2023
88b41ad
Merge pull request #485 from topcoder-platform/TCA-955
kkartunov Feb 13, 2023
bddd96f
Merge pull request #468 from topcoder-platform/TCA-792_tc-certificati…
vas3a Feb 13, 2023
cb6a09d
TCA-802 - fixes minor issues in cert details page
vas3a Feb 13, 2023
73b9b9d
TCA-959 - integrate certificate component into sidebar placeholder
vas3a Feb 13, 2023
ee90f83
TCA-955 adds verified member section
kkartunov Feb 13, 2023
82c66ad
Use `overline` class
kkartunov Feb 13, 2023
827d7a7
Merge pull request #487 from topcoder-platform/TCA-802_minor_cert-det…
vas3a Feb 13, 2023
9547d9e
TCA-959 - comment todo
vas3a Feb 13, 2023
ce24310
Merge pull request #488 from topcoder-platform/TCA-959_cert-placeholder
vas3a Feb 13, 2023
2967ad5
Merge pull request #489 from topcoder-platform/TCA-955
kkartunov Feb 13, 2023
2e954cf
Merge pull request #486 from topcoder-platform/TCA-935-ff
kkartunov Feb 13, 2023
2e94b01
Adds TCA certs validation support
kkartunov Feb 14, 2023
2d067d8
TCA-936 - form: dont show tooltip if success message is false
vas3a Feb 14, 2023
dab2509
TCA-936 - TcaCertProgress: use custom fetcher to better define ready …
vas3a Feb 14, 2023
71be230
TCA-936 - enrollment flow: add confirmation step
vas3a Feb 14, 2023
464ebd1
TCA-963 TCA-965 - content update
vas3a Feb 14, 2023
7722845
TCA-936 - redirct to certification page for logged out users
vas3a Feb 14, 2023
b30d447
Extract velidateUlr as function for reuse
kkartunov Feb 14, 2023
2c344f6
TCA-936 - update mobile view for enrollment page
vas3a Feb 14, 2023
3172119
Connects hiring manager view to new validate API
kkartunov Feb 14, 2023
e43d62f
Merge pull request #491 from topcoder-platform/TCA-936_enrollment-con…
kkartunov Feb 14, 2023
b3d47d2
Merge branch 'dev' into TCA-955
kkartunov Feb 14, 2023
51f7144
Merge pull request #490 from topcoder-platform/TCA-955
kkartunov Feb 14, 2023
f4970ea
ReadOnly inputs support
kkartunov Feb 14, 2023
5eaf3d0
Merge pull request #492 from topcoder-platform/TCA-955
kkartunov Feb 14, 2023
04e1f63
Implement TCA certification completed modal
vas3a Feb 15, 2023
523835c
Merge branch 'dev' of github.com:topcoder-platform/platform-ui into t…
vas3a Feb 15, 2023
04f700e
fix merge issues
vas3a Feb 15, 2023
9b7e4cc
TCA-873 cleanup old code
vas3a Feb 15, 2023
0d1f2dc
TCA-873 - implements the TCA parent certification banner for an FCC c…
vas3a Feb 15, 2023
7a20460
fix text case
vas3a Feb 15, 2023
6359dc0
Merge pull request #493 from topcoder-platform/tca-certification-comp…
vas3a Feb 15, 2023
f67f44d
fix text case
vas3a Feb 15, 2023
fe2520c
Merge pull request #495 from topcoder-platform/TCA-873_cert-progress-…
vas3a Feb 15, 2023
f5faa1d
Merge pull request #494 from topcoder-platform/TCA-867_remove-my-lear…
vas3a Feb 15, 2023
2919ccc
TCA-858 - fix course progress
vas3a Feb 15, 2023
9b086f4
Merge pull request #496 from topcoder-platform/TCA-858_fix-course-pro…
vas3a Feb 15, 2023
a6d6e43
TCA-955 short URLs support via `completionUuid`
kkartunov Feb 16, 2023
d67c036
TCA-988 fix completed date on TCA certs
kkartunov Feb 16, 2023
a0bad7d
Merge pull request #497 from topcoder-platform/TCA-955-updates
kkartunov Feb 16, 2023
a6a8a71
Minor UI fixes for responsiveness & code cleanup
vas3a Feb 16, 2023
f49bcae
TCA-979 cert card complete state
kkartunov Feb 16, 2023
70b9c85
Fix double slash in cert validate URL
kkartunov Feb 16, 2023
3503875
Merge pull request #498 from topcoder-platform/ui_fixes
vas3a Feb 16, 2023
269417d
Merge pull request #499 from topcoder-platform/TCA-979
kkartunov Feb 17, 2023
a6a0f2d
Fix cert details page
vas3a Feb 17, 2023
b5c54f2
Merge pull request #501 from topcoder-platform/cert-details-fix
vas3a Feb 17, 2023
08f7229
TCA992 fix double "Certification" wording
kkartunov Feb 17, 2023
c05af98
Merge pull request #502 from topcoder-platform/TCA-992
kkartunov Feb 17, 2023
be933b8
TCA-994 fix wrong logo on fcc certs
kkartunov Feb 17, 2023
d528f3c
Fixes the cert scaling hook: use transformScale instead of zoom
vas3a Feb 17, 2023
3c2e5ad
TCA-803 fix cert layout for large-container view
kkartunov Feb 17, 2023
4bfd884
TCA-987 - show correct badge icon for the certif's courses
vas3a Feb 17, 2023
e16686a
TCA-1010 add max size to img member avatar
kkartunov Feb 17, 2023
3be898e
Merge pull request #506 from topcoder-platform/TCA-1010
kkartunov Feb 17, 2023
1712def
fixes wide certificates view
vas3a Feb 17, 2023
70e7b65
TCA-986 - after enrollment check if user has all the requirements for…
vas3a Feb 17, 2023
06372f7
TCA-989 - update completed state for certif details page
vas3a Feb 17, 2023
cb4aa35
Merge pull request #504 from topcoder-platform/fix-scaling-hook
vas3a Feb 17, 2023
c09202d
Merge pull request #507 from topcoder-platform/TCA-986_check-for-cert…
vas3a Feb 17, 2023
0756b8c
Merge pull request #505 from topcoder-platform/TCA-987_correct-badges…
vas3a Feb 17, 2023
01fc3af
Merge pull request #509 from topcoder-platform/TCA-989_completed-cert…
vas3a Feb 17, 2023
f603964
TCA-1018 init page layout switch
kkartunov Feb 20, 2023
d25bb85
Merge branch 'dev' into TCA-994
kkartunov Feb 20, 2023
a1a4999
Merge pull request #503 from topcoder-platform/TCA-994
kkartunov Feb 20, 2023
5cbd5b5
Merge branch 'dev' into TCA-1018
kkartunov Feb 20, 2023
357b9ff
TCA-1018 fit into 900x788
kkartunov Feb 20, 2023
cd60ffc
TCA-1021 fix avatar shape
kkartunov Feb 20, 2023
eced16a
Merge pull request #511 from topcoder-platform/TCA-1021
kkartunov Feb 20, 2023
5850a64
TCA-1030 - fix ios safari issue with certif view
vas3a Feb 20, 2023
2bac12e
TCA-995 - tca certification progress on course page
vas3a Feb 17, 2023
e7319fd
TCA-995 - coure details: render progress before enrollment
vas3a Feb 20, 2023
1946e61
code cleanup
vas3a Feb 20, 2023
0ed682a
Merge pull request #510 from topcoder-platform/TCA-1018
kkartunov Feb 21, 2023
5862ce6
Merge pull request #512 from topcoder-platform/TCA-1030_safari-fix-fo…
vas3a Feb 21, 2023
00fb5b4
Merge pull request #513 from topcoder-platform/TCA-995_certif-progres…
vas3a Feb 21, 2023
e3eb441
TCA-1015 fix course time estimate from course
kkartunov Feb 21, 2023
d0f6629
Merge pull request #514 from topcoder-platform/TCA-1015
kkartunov Feb 21, 2023
93d832f
TCA-1032 - update user completed certificates method
vas3a Feb 21, 2023
504504c
Merge pull request #515 from topcoder-platform/TCA-1032_update-fetch-…
vas3a Feb 21, 2023
7e3fa99
TCA-1028 updates completed state for cords on home
kkartunov Feb 21, 2023
ee7bb81
Merge pull request #516 from topcoder-platform/TCA-1028
kkartunov Feb 21, 2023
a2dc34f
TCA-1033 - update certification progress in course details page
vas3a Feb 21, 2023
6fa66b2
TCA-1018 better modal view
kkartunov Feb 21, 2023
0036629
Use body-medium
kkartunov Feb 21, 2023
288d611
Merge pull request #518 from topcoder-platform/TCA-1018-fix
kkartunov Feb 21, 2023
5cf54d1
Merge pull request #517 from topcoder-platform/TCA-1033_progress-mess…
vas3a Feb 21, 2023
61adb02
More space on cert modal
kkartunov Feb 21, 2023
b48426e
Merge pull request #519 from topcoder-platform/TCA-1018-ff
kkartunov Feb 21, 2023
c043a41
TCA-990 fix cert layout when print/download
kkartunov Feb 22, 2023
7332737
Merge pull request #520 from topcoder-platform/TCA-990
kkartunov Feb 22, 2023
39d2a74
TCA-986 - completed modal & enrolled modal: optimize bg, move cert to…
vas3a Feb 22, 2023
18b1e57
TCA-1024 fixes breadcrumbs on mobile & optimizes cert bg
vas3a Feb 22, 2023
35b15a4
TCA-1051 - fix cert details page
vas3a Feb 22, 2023
995ca57
TCA-1023 - show tooltip near estimated time of completion
vas3a Feb 22, 2023
6b9e37f
TCA-1022 - fix vertical height on mobile for modals
vas3a Feb 22, 2023
06f796f
Merge pull request #521 from topcoder-platform/TCA-986_move-cert-to-c…
vas3a Feb 22, 2023
6ba998a
Merge pull request #522 from topcoder-platform/TCA-1024_fixes-on-cert…
vas3a Feb 22, 2023
23d1717
Merge pull request #523 from topcoder-platform/TCA-1051_fix-cert-deta…
vas3a Feb 22, 2023
2928b60
Merge pull request #524 from topcoder-platform/various-cert-details-f…
vas3a Feb 22, 2023
5818ea4
restore the certificate gradient text
vas3a Feb 22, 2023
b24711e
Merge pull request #525 from topcoder-platform/restore-certificate-gr…
vas3a Feb 22, 2023
35bae49
TCA-984 - update enrollment flow
vas3a Feb 22, 2023
f91345c
TCA-1029 fix mobile view on home cards
kkartunov Feb 23, 2023
68a7838
Merge pull request #526 from topcoder-platform/TCA-1029
kkartunov Feb 23, 2023
e797459
TCA-1037 change copy certs proposition
kkartunov Feb 23, 2023
f5186ab
TCA-1038 fix text copy
kkartunov Feb 23, 2023
81c8ef6
Merge pull request #527 from topcoder-platform/TCA-1037
kkartunov Feb 23, 2023
8285acb
Fix typo in text
kkartunov Feb 23, 2023
8f87ed6
Merge pull request #528 from topcoder-platform/TCA-1037
kkartunov Feb 23, 2023
0a7aa84
Merge pull request #529 from topcoder-platform/TCA-984_enrolled-modal…
vas3a Feb 23, 2023
f88aedd
TCA-876 - add tca-cert status in FCC sidebar
vas3a Feb 23, 2023
a97228d
TCA-1060 - remove email field;
vas3a Feb 23, 2023
80672c3
one more date to remove
vas3a Feb 23, 2023
a1348c8
TCA-1048 - remove certification wording in TCA certif curriculum
vas3a Feb 23, 2023
84de8e7
TCA-1044 - update FAQ
vas3a Feb 23, 2023
8f21f8f
TCA-1040 - replace grooming wording
vas3a Feb 23, 2023
d6b0a1f
TCA-1066
kkartunov Feb 23, 2023
66c7caa
Merge pull request #532 from topcoder-platform/TCA-1066
kkartunov Feb 23, 2023
d706a56
Merge pull request #530 from topcoder-platform/TCA-876_tca-cert-progr…
vas3a Feb 23, 2023
930df99
Merge pull request #531 from topcoder-platform/TCA-1060_remove-email-…
vas3a Feb 23, 2023
2b007d5
TCA-1063 - fix cert progress in progress box
vas3a Feb 23, 2023
896af6b
Merge pull request #534 from topcoder-platform/TCA-1063_fix-cert-prog…
vas3a Feb 23, 2023
2d91f1e
TCA-1067 - fix sidebar label
vas3a Feb 23, 2023
57442db
TCA-984 - fix enrolled modal btn label
vas3a Feb 23, 2023
57e8764
TCA-1065 - close completed modal
vas3a Feb 23, 2023
3cb24c3
TCA-1052 - hide duration in course outline if this is not provided (e…
vas3a Feb 23, 2023
2f99a03
TCA-1023 - update tooltip message
vas3a Feb 23, 2023
7ee8e21
TCA-1022 - mobile modal scroll fix
vas3a Feb 23, 2023
dd82e72
Merge pull request #533 from topcoder-platform/TCA-1048_remove-certif…
vas3a Feb 23, 2023
9c2bb60
Merge pull request #535 from topcoder-platform/miscellaneous-qa-fixes
vas3a Feb 23, 2023
6ca1843
TCA-1077 free promo
kkartunov Feb 24, 2023
ace1eb0
TCA-1078 progressbar new look&feel
kkartunov Feb 24, 2023
a9a44fd
Merge pull request #537 from topcoder-platform/TCA-1078
kkartunov Feb 24, 2023
8dab0d0
Merge pull request #536 from topcoder-platform/TCA-1077
kkartunov Feb 24, 2023
6273964
TCA-1080 - update vertical height variables
vas3a Feb 24, 2023
bd81500
TCA-1068 - update enrollment btn label
vas3a Feb 24, 2023
3fad7bb
TCA-1072 - fix tca certification certificate's bg
vas3a Feb 24, 2023
0bd6e6a
TCA-1048 - clear text on course card on homepage
vas3a Feb 24, 2023
43b6f51
fix apostrophe escape on course details page
vas3a Feb 24, 2023
b6ba817
TCA-1013 - show actual modules count & estimated time on course cards…
vas3a Feb 24, 2023
ac8296d
TCA-1070 - fixes navigate back from certificate view
vas3a Feb 24, 2023
863d5b5
Merge pull request #538 from topcoder-platform/qa-fixes
vas3a Feb 24, 2023
2c469f0
Merge pull request #539 from topcoder-platform/TCA-1070_go-back-function
vas3a Feb 24, 2023
1697222
TCA-996 - refactor certificate page layout into it's own component
vas3a Feb 26, 2023
04b7b66
Fix free label mobile styles & QR code size
kkartunov Feb 27, 2023
64f7ed2
Merge pull request #540 from topcoder-platform/TCA-1077-mobile-fix
kkartunov Feb 27, 2023
d5ddf7e
TCA-1100 updated heading
kkartunov Feb 27, 2023
f7d5fef
Merge pull request #541 from topcoder-platform/TCA-1100
kkartunov Feb 27, 2023
a53d36b
TCA-1094 update title text on hiring view
kkartunov Feb 27, 2023
c167986
Merge pull request #542 from topcoder-platform/TCA-1094
kkartunov Feb 27, 2023
1dacb5e
TCA-996 - implement certificate not found error pages for tca certifi…
vas3a Feb 27, 2023
9b6a668
TCA-982 - update faq
vas3a Feb 27, 2023
f66083f
TCA-1098 - make cert title as link
vas3a Feb 27, 2023
472cfc4
TCA-1089 - add "Certification" in certification completed modal
vas3a Feb 27, 2023
9d6efc8
TCA-1102 add ordering to course modules
kkartunov Feb 27, 2023
3dcfdfb
Merge pull request #543 from topcoder-platform/TCA-996_404-cert-page
vas3a Feb 27, 2023
58d18e1
Merge pull request #544 from topcoder-platform/TCA-982_revise-qa-answer
vas3a Feb 27, 2023
72bbdfa
Merge pull request #545 from topcoder-platform/TCA-1098_cert-link
vas3a Feb 27, 2023
842e1c0
Merge pull request #546 from topcoder-platform/TCA-1089_add-certifica…
vas3a Feb 27, 2023
c4cae24
Merge pull request #547 from topcoder-platform/TCA-1102
kkartunov Feb 27, 2023
6fe70d5
TCA-1076 adds `learnedOutcomes` property support
kkartunov Feb 27, 2023
bf93d38
Merge pull request #548 from topcoder-platform/TCA-1076
kkartunov Feb 28, 2023
d3abe1b
TCA-1078 add cross track colors&gradient
kkartunov Feb 28, 2023
7f22cd4
Merge pull request #549 from topcoder-platform/TCA-1078-fix
kkartunov Feb 28, 2023
7b17c2d
TCA-1105 move category filter to course section
kkartunov Feb 28, 2023
396fcaf
TCA-1090 - grow certificate to fit view width
vas3a Feb 28, 2023
ca29674
Merge pull request #550 from topcoder-platform/TCA-1105
kkartunov Feb 28, 2023
4bc4829
TCA-1089 - fix enrolled & completed certification modal
vas3a Feb 28, 2023
22d5a70
Enrollment page: do not call "useTCACertificationCheckCompleted" afte…
vas3a Feb 28, 2023
a884492
TCA-1112 filter corses title - hiring manager page
kkartunov Feb 28, 2023
1ba2b83
Merge pull request #551 from topcoder-platform/TCA-1112
kkartunov Feb 28, 2023
e8a0756
TCA-1113 - fix bug where certificate is not rendered
vas3a Feb 28, 2023
b35e236
TCA-1103 - show course progress as 100% once certification is completed
vas3a Feb 28, 2023
e7a4d40
Merge pull request #552 from topcoder-platform/TCA-1090_grow-to-fit-c…
vas3a Feb 28, 2023
0392ee1
Check if course data is present in cert details/course cards
vas3a Feb 28, 2023
674a0c5
Merge pull request #553 from topcoder-platform/certif-details-page-fix
vas3a Feb 28, 2023
c5c6158
Merge branch 'master' of github.com:topcoder-platform/platform-ui int…
vas3a Mar 1, 2023
47d7acf
Version bump
kkartunov Mar 1, 2023
04acd1f
Merge pull request #555 from topcoder-platform/TCA-release-3.0.0---bu…
kkartunov Mar 1, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,12 @@ By overriding the app to use <b>port 443</b>, you can use the authorized URL and

>**NOTE:** Mac users will require running the app with elevated permissions in order to use a port lower than 500.

Easy way to overcome elevated permissions is to make use of:

```
sudo setcap 'cap_net_bind_service=+ep' `which node`
```

For easier development, it is recommended that you add this certificate to your trusted root authorities and as a trused cert in your browser. Google your browser and OS for more info on how to trust cert authorities.

Otherwise, you will need to override the exception each time you load the site. Firefox users may need to user an incognito browser in order to override the exception.
Expand Down
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@topcoder-platform/platform-ui",
"version": "2.0.7",
"version": "3.0.0",
"private": true,
"scripts": {
"dev": "yarn react-app-rewired start",
Expand Down Expand Up @@ -42,6 +42,7 @@
"moment": "^2.29.4",
"moment-timezone": "^0.5.37",
"prop-types": "^15.8.1",
"qrcode.react": "^3.1.0",
"qs": "^6.11.0",
"rc-checkbox": "^2.3.2",
"react": "^18.2.0",
Expand Down
2 changes: 1 addition & 1 deletion src-ts/.eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ module.exports = {
],
'complexity': [
'error',
11
14
],
'import/extensions': 'off',
'import/no-named-default': 'off',
Expand Down
4 changes: 3 additions & 1 deletion src-ts/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { Routes } from 'react-router-dom'
import { toast, ToastContainer } from 'react-toastify'

import { Header } from './header'
import { routeContext, RouteContextData } from './lib'
import { routeContext, RouteContextData, useViewportUnitsFix } from './lib'

const App: FC<{}> = () => {

Expand All @@ -12,6 +12,8 @@ const App: FC<{}> = () => {
const routeElements: Array<ReactElement> = allRoutes
.map(route => getRouteElement(route))

useViewportUnitsFix()

return (
<>
<Header />
Expand Down
3 changes: 3 additions & 0 deletions src-ts/config/environments/environment.default.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
import { EnvironmentConfigModel } from './environment-config.model'

const COMMUNITY_WEBSITE: string = 'https://www.topcoder-dev.com'
const TCA_WEBSITE: string = 'https://platform-ui.topcoder-dev.com'

export const EnvironmentConfigDefault: EnvironmentConfigModel = {
ANALYTICS: {
Expand Down Expand Up @@ -36,11 +37,13 @@ export const EnvironmentConfigDefault: EnvironmentConfigModel = {
'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlcyI6WyJUb3Bjb2RlciBVc2VyIl0sImlzcyI6Imh0dHBzOi8vYXBpLnRvcGNvZGVyLWRldi5jb20iLCJoYW5kbGUiOiJ0ZXN0MSIsImV4cCI6MjU2MzA3NjY4OSwidXNlcklkIjoiNDAwNTEzMzMiLCJpYXQiOjE0NjMwNzYwODksImVtYWlsIjoidGVzdEB0b3Bjb2Rlci5jb20iLCJqdGkiOiJiMzNiNzdjZC1iNTJlLTQwZmUtODM3ZS1iZWI4ZTBhZTZhNGEifQ.jl6Lp_friVNwEP8nfsfmL-vrQFzOFp2IfM_HC7AwGcg',
},
TOPCODER_URLS: {
ACCOUNT_PROFILE: `${COMMUNITY_WEBSITE}/settings/profile`,
ACCOUNT_SETTINGS: `${COMMUNITY_WEBSITE}/settings/account`,
API_BASE: `${COMMUNITY_WEBSITE}/api`,
BLOG_PAGE: `${COMMUNITY_WEBSITE}/blog`,
CHALLENGES_PAGE: `${COMMUNITY_WEBSITE}/challenges`,
GIGS_PAGE: `${COMMUNITY_WEBSITE}/gigs`,
TCA: `${TCA_WEBSITE}`,
THRIVE_PAGE: `${COMMUNITY_WEBSITE}/thrive`,
USER_PROFILE: `${COMMUNITY_WEBSITE}/members`,
WP_CONTENT: `${COMMUNITY_WEBSITE}/wp-content`,
Expand Down
3 changes: 3 additions & 0 deletions src-ts/config/environments/environment.prod.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ import { EnvironmentConfigModel } from './environment-config.model'
import { EnvironmentConfigDefault } from './environment.default.config'

const COMMUNITY_WEBSITE: string = 'https://www.topcoder.com'
const TCA_WEBSITE: string = 'https://platform-ui.topcoder.com'

export const EnvironmentConfigProd: EnvironmentConfigModel = {
...EnvironmentConfigDefault,
Expand Down Expand Up @@ -34,11 +35,13 @@ export const EnvironmentConfigProd: EnvironmentConfigModel = {
'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJyb2xlcyI6WyJUb3Bjb2RlciBVc2VyIl0sImlzcyI6Imh0dHBzOi8vYXBpLnRvcGNvZGVyLWRldi5jb20iLCJoYW5kbGUiOiJ0ZXN0MSIsImV4cCI6MjU2MzA3NjY4OSwidXNlcklkIjoiNDAwNTEzMzMiLCJpYXQiOjE0NjMwNzYwODksImVtYWlsIjoidGVzdEB0b3Bjb2Rlci5jb20iLCJqdGkiOiJiMzNiNzdjZC1iNTJlLTQwZmUtODM3ZS1iZWI4ZTBhZTZhNGEifQ.jl6Lp_friVNwEP8nfsfmL-vrQFzOFp2IfM_HC7AwGcg',
},
TOPCODER_URLS: {
ACCOUNT_PROFILE: `${COMMUNITY_WEBSITE}/settings/profile`,
ACCOUNT_SETTINGS: `${COMMUNITY_WEBSITE}/settings/account`,
API_BASE: `${COMMUNITY_WEBSITE}/api`,
BLOG_PAGE: `${COMMUNITY_WEBSITE}/blog`,
CHALLENGES_PAGE: `${COMMUNITY_WEBSITE}/challenges`,
GIGS_PAGE: `${COMMUNITY_WEBSITE}/gigs`,
TCA: `${TCA_WEBSITE}`,
THRIVE_PAGE: `${COMMUNITY_WEBSITE}/thrive`,
USER_PROFILE: `${COMMUNITY_WEBSITE}/members`,
WP_CONTENT: `${COMMUNITY_WEBSITE}/wp-content`,
Expand Down
1 change: 0 additions & 1 deletion src-ts/header/Header.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,6 @@ const Header: FC = () => {

return (
<>
<div id={navElementId} />
<div
id={PageSubheaderPortalId}
className={classNames('full-width-relative', !ready && 'hidden')}
Expand Down
7 changes: 6 additions & 1 deletion src-ts/lib/breadcrumb/Breadcrumb.module.scss
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,12 @@
display: inline-flex;
align-items: center;
padding: 0;

@include ltesm {
flex: 0 1 auto;
&:first-child {
flex: 1 0 auto;
}
}
a {
@extend .overline;
display: block;
Expand Down
2 changes: 1 addition & 1 deletion src-ts/lib/button/Button.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { IconOutline } from '../svgs'
import '../styles/index.scss'

export type ButtonSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'
export type ButtonStyle = 'icon' | 'icon-bordered' | 'link' | 'primary' | 'secondary' | 'tertiary' | 'text'
export type ButtonStyle = 'icon' | 'icon-bordered' | 'link' | 'primary' | 'secondary' | 'tertiary' | 'text' | 'outline'
export type ButtonType = 'button' | 'submit'

export interface ButtonProps {
Expand Down
41 changes: 41 additions & 0 deletions src-ts/lib/default-member-icon/DefaultMemberIcon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/* eslint-disable max-len */
import { FC } from 'react'

const DefaultMemberIcon: FC = () => (
<svg
xmlns='http://www.w3.org/2000/svg'
xmlnsXlink='http://www.w3.org/1999/xlink'
width='141'
height='141'
viewBox='0 0 141 141'
>
<defs>
<rect
id='path-1'
width='140'
height='140'
x='0.8'
y='0.5'
rx='306'
/>
</defs>
<g fill='none' fillRule='evenodd' stroke='none' strokeWidth='1'>
<g transform='translate(-205 -203) translate(205 203)'>
<mask id='mask-2' fill='#fff'>
<use xlinkHref='#path-1' />
</mask>
<use fill='#F0F0F0' xlinkHref='#path-1' />
<path
fill='#A3A3AE'
stroke='#A3A3AE'
strokeWidth='3'
d='M118 137.143c0 4.345-3.501 7.857-7.833 7.857H31.833C27.51 145 24 141.488 24 137.143c0-15.714 15.142-30.376 30.62-36.174-8.937-5.54-14.953-15.377-14.953-26.683v-7.857C39.667 49.072 53.697 35 71 35c17.304 0 31.333 14.072 31.333 31.429v7.857c0 11.306-6.016 21.143-14.946 26.683 15.471 5.798 30.613 20.46 30.613 36.174h0z'
mask='url(#mask-2)'
opacity='0.2'
/>
</g>
</g>
</svg>
)

export default DefaultMemberIcon
1 change: 1 addition & 0 deletions src-ts/lib/default-member-icon/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default as DefaultMemberIcon } from './DefaultMemberIcon'
6 changes: 5 additions & 1 deletion src-ts/lib/form/Form.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import {
Dispatch,
FocusEvent,
FormEvent,
ReactNode,
RefObject,
SetStateAction,
useEffect,
Expand Down Expand Up @@ -31,6 +32,7 @@ import styles from './Form.module.scss'

interface FormProps<ValueType, RequestType> {
readonly action?: FormAction // only type submit will perform validation
readonly children?: ReactNode
readonly formDef: FormDefinition
readonly formValues?: ValueType
readonly onChange?: (inputs: ReadonlyArray<FormInputModel>) => void,
Expand Down Expand Up @@ -219,6 +221,8 @@ const Form: <ValueType extends FormValue, RequestType extends FormValue>(props:
onChange={onChange}
/>

{props.children}

<div className={classNames(styles['form-footer'], 'form-footer')}>
{!!formError && (
<div
Expand All @@ -229,7 +233,7 @@ const Form: <ValueType extends FormValue, RequestType extends FormValue>(props:
{formError}
</div>
)}
<div className={styles['button-container']}>
<div className={classNames('form-button-container', styles['button-container'])}>
<div className={styles['left-container']}>
{secondaryGroupButtons}
</div>
Expand Down
2 changes: 1 addition & 1 deletion src-ts/lib/form/form-definition.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export interface FormDefinition {
readonly groupsOptions?: FormGroupOptions
readonly shortName?: string
readonly subtitle?: string
readonly successMessage?: string
readonly successMessage?: string | boolean
readonly tabIndexStart?: number
readonly title?: string
}
11 changes: 7 additions & 4 deletions src-ts/lib/form/form-functions/form.functions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -122,10 +122,13 @@ export async function onSubmitAsync<T extends FormValue>(

return savePromise
.then(() => {
const safeSuccessMessage: string = !!successMessage
? successMessage as string
: `Your ${shortName || 'data'} has been saved.`
toast.success(safeSuccessMessage)
if (successMessage !== false) {
const safeSuccessMessage: string = !!successMessage
? successMessage as string
: `Your ${shortName || 'data'} has been saved.`
toast.success(safeSuccessMessage)
}

onSuccess?.()
})
.catch(error => Promise.reject(error.response?.data?.result?.content ?? error.message ?? error))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export interface InputTextProps {
readonly onBlur?: (event: FocusEvent<HTMLInputElement>) => void
readonly onChange: (event: FocusEvent<HTMLInputElement>) => void
readonly placeholder?: string
readonly readonly?: boolean
readonly spellCheck?: boolean
readonly tabIndex: number
readonly type: InputTextTypes
Expand Down Expand Up @@ -53,6 +54,7 @@ const InputText: FC<InputTextProps> = (props: InputTextProps) => {
onChange={props.onChange}
name={props.name}
placeholder={props.placeholder}
readOnly={props.readonly}
spellCheck={!!props.spellCheck}
tabIndex={props.tabIndex}
type={props.type || 'text'}
Expand Down
1 change: 1 addition & 0 deletions src-ts/lib/form/form-input.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ export interface FormInputModel {
readonly notTabbable?: boolean
options?: ReadonlyArray<FormRadioButtonOption>
readonly placeholder?: string
readonly readonly?: boolean
readonly spellCheck?: boolean
readonly title?: string
touched?: boolean
Expand Down
11 changes: 11 additions & 0 deletions src-ts/lib/generic-page-moved/GenericPageMoved.module.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
.wrap {
flex: 1;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;

h3 {
margin-bottom: 32px;
}
}
35 changes: 35 additions & 0 deletions src-ts/lib/generic-page-moved/GenericPageMoved.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { FC, useEffect } from 'react'

import { Button } from '../button'

import styles from './GenericPageMoved.module.scss'

interface GenericPageMovedProps {
pageTitle: string
newPageUrl: string
}

const GenericPageMoved: FC<GenericPageMovedProps> = (props: GenericPageMovedProps) => {

// setup auto redirect in 5sec.
useEffect(() => {
const to: ReturnType<typeof setTimeout> = setTimeout(() => {
window.location.href = props.newPageUrl
}, 5000)

return () => clearTimeout(to)
}, [props.newPageUrl])

return (
<div className={styles.wrap}>
<h3>This page has moved.</h3>
<Button
label={`Navigate to ${props.pageTitle}`}
url={props.newPageUrl}
/>
<p>We will automatically redirect you in 5 seconds...</p>
</div>
)
}

export default GenericPageMoved
1 change: 1 addition & 0 deletions src-ts/lib/generic-page-moved/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export { default as GenericPageMoved } from './GenericPageMoved'
2 changes: 2 additions & 0 deletions src-ts/lib/global-config.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -29,12 +29,14 @@ export interface GlobalConfig {
CUSTOMER_TOKEN: string
}
TOPCODER_URLS: {
ACCOUNT_PROFILE: string
ACCOUNT_SETTINGS: string
API_BASE: string
BLOG_PAGE: string
CHALLENGES_PAGE: string
GIGS_PAGE: string
THRIVE_PAGE: string
TCA: string
USER_PROFILE: string
WP_CONTENT: string
}
Expand Down
2 changes: 2 additions & 0 deletions src-ts/lib/hooks/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,6 @@ export * from './use-check-is-mobile.hook'
export * from './use-click-outside.hook'
export * from './use-on-hover-element.hook'
export * from './use-storage.hook'
export * from './use-viewport-units-fix.hook'
export * from './use-window-size.hook'
export * from './use-navigate-back.hook'
20 changes: 20 additions & 0 deletions src-ts/lib/hooks/use-navigate-back.hook.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { NavigateFunction, useNavigate } from 'react-router-dom'

export type NavigateBackFunction = (fallbackUrl: string) => void
type useNavigateBackType = () => NavigateBackFunction

export const useNavigateBack: useNavigateBackType = (): NavigateBackFunction => {
const navigate: NavigateFunction = useNavigate()
return (fallbackUrl: string) => {
const currentPageHref: string = window.location.href

window.history.go(-1)

setTimeout(() => {
// go back didn't work, navigate to desired fallback url
if (window.location.href === currentPageHref) {
navigate(fallbackUrl)
}
}, 30)
}
}
15 changes: 13 additions & 2 deletions src-ts/lib/hooks/use-storage.hook.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { Dispatch, SetStateAction, useCallback, useState } from 'react'
import { Dispatch, MutableRefObject, SetStateAction, useCallback, useRef, useState } from 'react'

type StorageTypes = 'localStorage' | 'sessionStorage'

Expand All @@ -8,6 +8,7 @@ export function useStorage<T>(
initialValue?: T,
): [T, Dispatch<SetStateAction<T>>] {
const storage: Storage = window[storageType]
const wasKey: MutableRefObject<string> = useRef(storageKey)

const readStoredValue: () => T = useCallback(() => {
try {
Expand All @@ -23,7 +24,17 @@ export function useStorage<T>(

// State to store our value
// Pass initial state function to useState so logic is only executed once
const [storedValue, setStoredValue]: [T, Dispatch<SetStateAction<T>>] = useState(readStoredValue())
const rawStoredValue: T = readStoredValue()
const [storedValue, setStoredValue]: [T, Dispatch<SetStateAction<T>>] = useState(rawStoredValue)

// update value when storage key changes
if (wasKey.current !== storageKey) {
wasKey.current = storageKey

if (rawStoredValue !== storedValue) {
setTimeout(setStoredValue, 0, rawStoredValue)
}
}

// Return a wrapped version of useState's setter function that
// persists the new value to local or session storage.
Expand Down
Loading