Compare commits

..

303 Commits

Author SHA1 Message Date
moeidtopcoder
e9e9611f80 Merge branch 'develop' into master 2022-10-31 17:52:31 +00:00
0c054687ba Merge pull request 'the overlay in burger resolved' (#172) from fix/burger into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/172
2022-10-31 15:03:14 +00:00
3b147e50a1 Merge pull request 'resolve animation - resolve responsive' (#171) from fix/404-page into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/171
2022-10-31 15:02:49 +00:00
“Salar
e94514ed02 the overlay in burger resolved 2022-10-31 17:13:43 +03:00
“Salar
0032e51858 resolve animation - resolve responsive 2022-10-31 13:28:55 +03:00
8d6a9ab74c Dockerfile changes 2022-10-29 16:23:34 +03:00
07c4ae8cbd Fixed # on localization button 2022-10-26 16:00:45 +03:00
a782930d3d Replace mocks to real APIs 2022-10-21 18:12:15 +03:00
4c1877caa5 Merge pull request 'feature/markdown-styling' (#169) from feature/markdown-styling into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/169
2022-10-21 15:10:44 +00:00
e9324f6c14 Merge pull request 'classnames resolved' (#170) from fix/link into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/170
2022-10-21 15:10:28 +00:00
“Salar
9fcee44e0c classnames resolved 2022-10-21 18:03:17 +03:00
“Salar
9939b1c824 resolve headers, lists, link, paragraph.. 2022-10-21 17:57:55 +03:00
00deb05850 Merge branch 'develop' into feature/markdown-styling 2022-10-21 14:44:09 +03:00
b8849945b9 Merge pull request 'resolve no break space in the english localization' (#164) from fix/english-localization into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/164
2022-10-21 11:42:39 +00:00
08f5ee272b Merge pull request 'resolve no break space in the russian localization' (#165) from fix/russian-localization into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/165
2022-10-21 11:42:25 +00:00
35aa957b35 Merge pull request 'content hardcoded resolved' (#166) from fix/filter into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/166
2022-10-21 11:42:10 +00:00
472e8c2ea5 Merge pull request 'the translation in the main section has been resolved' (#167) from fix/main-section into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/167
2022-10-21 11:41:50 +00:00
f17d5f3079 Merge pull request 'resolve article translation' (#168) from fix/category-card into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/168
2022-10-21 11:41:33 +00:00
“Salar
4f9b33e5b9 resolve article translation 2022-10-21 14:21:26 +03:00
“Salar
753223c7a9 the translation of interaction buttons has been added 2022-10-21 14:07:48 +03:00
“Salar
28cc9b1a71 the translation in the main section has been resolved 2022-10-21 13:46:47 +03:00
“Salar
47472868e1 content hardcoded resolved 2022-10-21 13:29:08 +03:00
“Salar
f965eaddbc content and filter were added 2022-10-21 13:26:23 +03:00
“Salar
2075426ff7 resolve no break space in the russian localization 2022-10-21 13:08:21 +03:00
“Salar
209507833e resolve no break space in the english localization 2022-10-21 13:00:25 +03:00
eff20ae459 Mocked correct article body 2022-10-21 12:08:29 +03:00
dcfe260f0e Merge pull request 'resolve english translation' (#161) from fix/english-localization into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/161
2022-10-20 10:02:12 +00:00
1af206c360 Merge pull request 'remove additional link' (#162) from fix/featured-articles-cards into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/162
2022-10-20 10:01:39 +00:00
“Salar
932d23befa remove additional link 2022-10-19 18:12:32 +03:00
“Salar
e52026cf86 resolve english translation 2022-10-19 17:46:33 +03:00
033a1f31ad Merge pull request 'resolve localization button in the header' (#160) from fix/header into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/160
2022-10-19 14:31:03 +00:00
9c79f449c5 Manually merge 2022-10-19 17:30:50 +03:00
24652d0908 Merge branch 'develop' into fix/header 2022-10-19 17:29:26 +03:00
944baced6c Merge pull request 'localization button feature' (#159) from feature/localization-button into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/159
2022-10-19 14:24:01 +00:00
“Salar
01a873477b resolve localization button in the header 2022-10-19 16:58:19 +03:00
“Salar
d1b17592c3 localization button feature 2022-10-19 16:52:46 +03:00
1475d2db27 Merge pull request 'feature/add-filters' (#157) from feature/add-filters into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/157
2022-10-18 16:50:53 +00:00
1ba9dc28b5 Merge branch 'develop' into feature/add-filters 2022-10-18 19:50:13 +03:00
1817946fe6 Merge pull request 'changed query to our api' (#156) from fix/search-request into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/156
2022-10-18 16:49:16 +00:00
de5b6ad60c Merge pull request 'fixed logo to actual' (#158) from fix/scipaper-logo into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/158
2022-10-18 16:48:47 +00:00
maximus
31706ca4e8 fixed logo to actual 2022-10-18 19:26:29 +03:00
filantrop
969749c0c0 Merge branch 'feature/add-filters' of http://85.143.176.51:3000/free-land/front-end into feature/add-filters 2022-10-18 17:50:31 +03:00
filantrop
5667f30a92 add translate 2022-10-18 17:34:10 +03:00
maximus
d77c1c6388 fixed article endpoint 2022-10-18 17:13:46 +03:00
maximus
bd6fbbebfd changed query to our api 2022-10-18 16:51:27 +03:00
filantrop
2ffce71e74 fix styles 2022-10-18 14:59:38 +03:00
35900bec5d Merge pull request 'fix/article-interaction-buttons' (#155) from fix/article-interaction-buttons into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/155
2022-10-18 10:43:30 +00:00
maximus
c63c19e1c7 finished styling, added filters to main page 2022-10-18 12:06:21 +03:00
maximus
b5443aa033 Merge branch 'develop' into fix/article-interaction-buttons 2022-10-18 11:07:40 +03:00
maximus
18d02945f3 add functionality to share button and localize it 2022-10-18 09:40:34 +03:00
558a1fd5a7 Merge pull request 'bold style for the link resolved' (#154) from fix/featured-articles-cards into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/154
2022-10-17 15:14:59 +00:00
“Salar
bee5499816 bold style for the link resolved 2022-10-17 15:27:28 +03:00
8a2a7f0c53 Merge pull request 'added filter (beta version)' (#147) from feature/add-filters into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/147
2022-10-17 11:58:02 +00:00
15b9ed1f20 Merge branch 'develop' into feature/add-filters 2022-10-17 14:57:33 +03:00
cad2174bc5 Merge pull request 'English localization' (#152) from feature/english-localization into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/152
2022-10-17 11:56:01 +00:00
0c0a79d81d Merge pull request 'resolve padding of featured authors' (#149) from fix/featured-authors into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/149
2022-10-17 11:55:47 +00:00
df4b4d5c32 Merge pull request 'resolve not found page' (#148) from fix/404-page into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/148
2022-10-17 11:54:25 +00:00
92dddab82a Merge pull request 'the padding of featured articles cards has been resolved' (#150) from fix/featured-articles-cards into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/150
2022-10-17 11:53:58 +00:00
93cefd9ce3 Merge pull request 'resolve the margin of topic in the article info and article content pages' (#151) from fix/fetch-article into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/151
2022-10-17 11:53:40 +00:00
373d55a543 Merge pull request 'resolve the style of link' (#153) from fix/link into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/153
2022-10-17 11:52:57 +00:00
“Salar
8a075e926e resolve the style of link 2022-10-17 14:47:21 +03:00
“Salar
705ae6471f English localization 2022-10-17 14:15:13 +03:00
“Salar
64a6e6ab20 resolve the margin of topic in the article info and article content pages 2022-10-17 13:08:24 +03:00
“Salar
3cac7c7d04 the padding of featured articles cards has been resolved 2022-10-17 12:49:21 +03:00
“Salar
9154b1fb96 resolve padding of featured authors 2022-10-17 12:41:10 +03:00
“Salar
b390ae7a2e resolve not found page 2022-10-17 12:26:23 +03:00
filantrop
3c739247d2 added filter (beta version) 2022-10-17 12:17:14 +03:00
904730dfd9 Merge pull request 'Sticly footer to the bottom of the page' (#146) from fix/footer-to-bottom into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/146
2022-10-14 12:04:15 +00:00
dcda165488 Sticly footer to the bottom of the page 2022-10-14 15:03:37 +03:00
49d15e538b Merge pull request 'feature/russian-localization' (#145) from feature/russian-localization into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/145
2022-10-14 11:21:14 +00:00
maximus
da389cc337 added localiazation 2022-10-14 14:12:24 +03:00
3f9a76815e Created navbar ru localization 2022-10-14 10:29:23 +03:00
c99e9217f1 Merge pull request 'Fixed article entity bug' (#144) from fix/resolve-merge-issues into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/144
2022-10-12 16:52:58 +00:00
4479300027 Fixed article entity bug 2022-10-12 19:50:52 +03:00
e97d3abe96 Merge pull request 'new line bug has been fixed' (#143) from fix/markdown into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/143
2022-10-12 16:12:32 +00:00
“Salar
eff1a2a04f new line bug has been fixed 2022-10-12 19:04:52 +03:00
81faa7121e Manualy merge from fix/article-interaction-buttons
Resolve interaction button link issue
2022-10-12 17:09:11 +03:00
bbe6bcca51 Merge pull request 'feature/complete-develop-merge' (#142) from feature/complete-develop-merge into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/142
2022-10-12 14:03:30 +00:00
c161606e08 Merge pull request 'article slice' (#140) from feature/article-slice into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/140
2022-10-12 14:03:08 +00:00
5550b7c241 Merge pull request 'Fetch an articl by its id, Fetch the body of the articl(content)' (#139) from feature/fetch-article into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/139
2022-10-12 13:59:49 +00:00
maximus
86073d5718 set up makefile 2022-10-12 16:59:24 +03:00
85f227f7d9 Resolve entrypoint file bug 2022-10-12 16:44:41 +03:00
“Salar
779b091bd5 article slice 2022-10-12 16:34:44 +03:00
“Salar
a26faeeb02 Fetch an articl by its id, Fetch the body of the articl(content) 2022-10-12 16:23:48 +03:00
50a42955d6 Merge pull request '(feature/complete-develop-merge) Resolving multiple merges' (#138) from feature/complete-develop-merge into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/138
2022-10-12 12:15:01 +00:00
9a3e545cf0 Resolving issues 2022-10-12 15:13:08 +03:00
87ad19fa1a Merge branch 'feature/search-results-page' into feature/complete-develop-merge 2022-10-12 14:52:55 +03:00
1d5eb72826 Merge branch 'fix/article-interaction-buttons' into feature/complete-develop-merge 2022-10-12 14:46:28 +03:00
011f1564a0 Merge branch 'fix/article-keywords' into feature/complete-develop-merge 2022-10-12 14:45:52 +03:00
89146993c7 Merge branch 'fix/logo' into feature/complete-develop-merge 2022-10-12 14:45:44 +03:00
a9895cc6dd Merge branch 'fix/base-layout' into feature/complete-develop-merge 2022-10-12 14:42:46 +03:00
“Salar
5afd4ced4d Link component has been added to the icon to referense to the home page 2022-10-12 11:50:17 +03:00
“Salar
f09cddff75 The style of the children has been modified 2022-10-12 11:43:49 +03:00
maximus
8db96d108f return markdown component 2022-10-11 14:39:45 +03:00
maximus
a7534b589f added search results page, chanhgen search bar, changed article component 2022-10-11 11:53:20 +03:00
“Salar
bd1771e234 The style of the logo has been modified 2022-10-10 20:02:17 +03:00
“Salar
6cdd4ed730 The border color of the keyword has been modified according to our design 2022-10-10 18:32:47 +03:00
“Salar
12043e9123 The distance between the buttons has been increased 2022-10-10 18:13:22 +03:00
maximus
5e46d6a098 ended search 2022-10-05 15:49:07 +03:00
maximus
18cc0084af resloving 2022-09-28 17:28:06 +03:00
Denis Gorbunov
43a73bc538 Merge pull request 'Fixed props in link component' (#130) from fix/link-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/130
2022-09-22 09:55:19 +00:00
Maximus
4c90885d92 fixed props in link component 2022-09-09 18:57:43 +03:00
Denis Gorbunov
f3c6b65b57 Merge pull request 'fixed style again' (#129) from fix/MainSection into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/129
2022-09-09 09:14:57 +00:00
filantrop
ae0f36c21e fixed style again 2022-09-08 16:38:04 +03:00
Denis Gorbunov
0e3f08dea9 Merge pull request 'Removed scroll locking' (#128) from fix/bottom-sheet-modal into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/128
2022-09-08 13:18:36 +00:00
decamel
10b501869a Merge branch 'develop' into fix/bottom-sheet-modal 2022-09-08 16:18:26 +03:00
Denis Gorbunov
6e71403869 Merge pull request 'Markdown component,package.json' (#122) from feature/markdown into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/122
2022-09-08 13:17:55 +00:00
decamel
ffb5a428a0 Merge branch 'develop' into feature/markdown 2022-09-08 16:17:42 +03:00
Denis Gorbunov
0411fed55e Merge pull request 'fix styles' (#127) from fix/MainSection into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/127
2022-09-08 13:16:05 +00:00
Denis Gorbunov
8aaff6ab7b Merge pull request 'fixed errors' (#126) from fix/clean-develop into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/126
2022-09-08 13:15:40 +00:00
Maximus
a047f1fd91 removed scroll lock from modal 2022-09-08 15:59:14 +03:00
Maximus
449b05c1a0 Merge branch 'fix/clean-develop' into fix/bottom-sheet-modal 2022-09-08 14:12:37 +03:00
filantrop
ccadb58979 fix styles 2022-09-08 13:40:54 +03:00
Maximus
00ee5788a8 fixed errors 2022-09-08 13:30:30 +03:00
Denis Gorbunov
f5251fd04b Merge pull request 'Updated link to universal component' (#124) from fix/link-update into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/124
2022-09-08 09:14:36 +00:00
Maximus
0931fa8fe5 fixed props 2022-09-08 12:13:20 +03:00
Denis Gorbunov
2d2e9905d3 Merge pull request 'Return of working develop' (#125) from fix/clean-develop into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/125
2022-09-08 08:52:51 +00:00
Maximus
956109f34a updated imports, mock authors and articles request, renamed files 2022-09-08 11:44:02 +03:00
Maximus
d108e88c65 Merge branch 'develop' into fix/clean-develop 2022-09-08 11:22:23 +03:00
Maximus
f4e83e0cc8 updated link to universal component 2022-09-08 11:11:22 +03:00
decamel
4a44157efb Main Section redundant dependencies 2022-09-07 16:40:36 +03:00
Denis Gorbunov
57b5c229a0 Merge pull request 'Search bar' (#123) from feature/search-bar into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/123
2022-09-07 13:37:07 +00:00
decamel
37bc27bbd6 Fix merge 2022-09-07 16:36:45 +03:00
decamel
ea783017a7 Dependencies fixes 2022-09-07 16:28:27 +03:00
Denis Gorbunov
aaecefb462 Merge pull request 'fix/select' (#120) from fix/select into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/120
2022-09-07 13:23:09 +00:00
“Salar
f49b9fee1a Markdown component,package.json 2022-09-07 16:22:58 +03:00
Denis Gorbunov
b5b05cd7ae Merge pull request 'feature/main-section' (#118) from feature/main-section into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/118
2022-09-07 13:22:53 +00:00
Denis Gorbunov
83ff35ce4f Merge pull request 'added SearchBar for MainSection' (#117) from feature/search-bar into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/117
2022-09-07 13:21:18 +00:00
decamel
2581ca1d88 Merge branch 'develop' into feature/search-bar 2022-09-07 16:21:00 +03:00
Denis Gorbunov
94f7a3d851 Merge pull request 'Edited Heading component' (#115) from fix/heading into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/115
2022-09-07 13:19:13 +00:00
filantrop
f7a5aaf90e fix props in component 2022-09-07 15:30:31 +03:00
Denis Gorbunov
8a64b5f0f7 Merge pull request 'Aspect ratio component' (#121) from feature/aspect-ratio-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/121
2022-09-07 12:25:35 +00:00
filantrop
f3ccb0523a fix props in component 2022-09-07 14:58:40 +03:00
Denis Gorbunov
94d23d7b0b Merge pull request 'feature/add-background-image' (#119) from feature/add-background-image into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/119
2022-09-06 09:11:26 +00:00
filantrop
4a5afdf01a fix icon button for select as new icons 2022-09-01 23:56:47 +03:00
filantrop
24f44b4352 added bacrground image for main page 2022-09-01 23:48:08 +03:00
Denis Gorbunov
ada0f450f5 Merge pull request 'Edited container - wideclass condition has been added' (#116) from fix/container-component-and/or-tailwind-class into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/116
2022-09-01 14:26:51 +00:00
Denis Gorbunov
a6d9b3e417 Merge pull request 'Edited Avatar' (#114) from fix/avatar into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/114
2022-09-01 14:25:18 +00:00
Denis Gorbunov
96027bf91a Merge pull request 'Skeleton Component' (#113) from feature/skeleton-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/113
2022-09-01 14:16:29 +00:00
Denis Gorbunov
56747b66a9 Merge pull request 'feature/featured-authors' (#111) from feature/featured-authors into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/111
2022-09-01 14:16:19 +00:00
filantrop
c34cac7cee added SearchBar for MainSection 2022-08-31 20:10:01 +03:00
“Salar
ace9e7498d Edited container - wideclass condition has been added 2022-08-30 16:19:43 +03:00
“Salar
6d36b774b2 Aspect ratio component 2022-08-30 15:31:23 +03:00
“Salar
21c858b519 Edited Heading component 2022-08-30 15:21:36 +03:00
“Salar
af62f49b27 Edited Avatar 2022-08-30 15:07:56 +03:00
“Salar
3511e6134b Skeleton Component 2022-08-30 14:24:35 +03:00
“Salar
a080bc4361 Featured articales section - Card component 2022-08-30 14:05:37 +03:00
“Salar
a2f80ad94f Featured Authors section 2022-08-30 13:50:20 +03:00
“Salar
321bb6cc9b Featured Authores section 2022-08-30 13:45:01 +03:00
Denis Gorbunov
d5e5fe995b Merge pull request 'Added two variants of logo icon' (#110) from fix/logo-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/110
2022-08-30 08:10:02 +00:00
Denis Gorbunov
4c8cb61f77 Merge pull request 'Changed colors for button variants' (#109) from fix/button-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/109
2022-08-30 08:09:39 +00:00
Denis Gorbunov
e151986782 Merge pull request 'added article with parts uses dot notation' (#108) from feature/article-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/108
2022-08-30 08:09:14 +00:00
Maximus
d5d5ca196a added two variants of logo icon 2022-08-29 13:47:38 +03:00
Maximus
6a255a2730 changed colors 2022-08-29 13:46:19 +03:00
Maximus
bd3015dcf0 added article with parts uses dot notation 2022-08-29 13:37:46 +03:00
Denis Gorbunov
28854c35b1 Merge pull request 'fix style and added inGroup props for InputGroup' (#105) from fix/select into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/105
2022-08-25 09:02:13 +00:00
Denis Gorbunov
040fecbcbf Merge pull request 'Created column layout schema' (#107) from feature/triple-column-layout into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/107
2022-08-25 09:00:34 +00:00
Maximus
3b2c3c5e9c Merge branch 'develop' into feature/triple-column-layout 2022-08-24 23:39:55 +03:00
Maximus
0c34803cfb added styles for adaptive 2022-08-24 23:37:08 +03:00
Maximus
c319c8298b added columns children and dot notation for columns 2022-08-24 22:13:47 +03:00
filantrop
5e3b000bd6 fix style and add inGroup props for InputGroup 2022-08-24 15:32:48 +03:00
Denis Gorbunov
b076b8ef69 Merge pull request 'Rename wrong icon's name' (#98) from fix/icon-factory into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/98
2022-08-23 10:45:44 +00:00
Denis Gorbunov
d448ac0110 Merge pull request 'Delete unnecessary component Logotype' (#99) from fix/unnecessary-files into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/99
2022-08-23 10:45:20 +00:00
Denis Gorbunov
bc9fc9495d Merge pull request 'Delete property from deprecated page component' (#100) from fix/deprecated-trash into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/100
2022-08-23 10:45:10 +00:00
Denis Gorbunov
faed5dd8dc Merge pull request 'Fixed header' (#101) from fix/header into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/101
2022-08-23 10:44:47 +00:00
Denis Gorbunov
30f0e02a4d Merge pull request 'Feixed navbar from header' (#102) from fix/header-navbar into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/102
2022-08-23 10:44:00 +00:00
Denis Gorbunov
cd4f5f55ca Merge pull request 'Fixed width if bottom sheet modal component' (#104) from fix/bottom-sheet-modal into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/104
2022-08-23 10:43:36 +00:00
decamel
159913fe97 Merge remote-tracking branch 'origin/develop' into fix/bottom-sheet-modal 2022-08-23 13:43:03 +03:00
Denis Gorbunov
27a769277e Merge pull request 'Fixed button component' (#103) from fix/button-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/103
2022-08-23 10:41:37 +00:00
“Salar
e0ff8095d0 Featured Authors section based on Card component 2022-08-23 12:56:59 +03:00
Denis Gorbunov
ebbb66e48a Merge pull request 'Return of the App.tsx' (#97) from fix/return-app into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/97
2022-08-23 09:42:12 +00:00
Maximus
84564a5158 Merge branch 'fix/deprecated-trash' into feature/triple-column-layout 2022-08-23 12:01:47 +03:00
Maximus
e87a920d99 fixed width of bottom modal 2022-08-23 11:57:20 +03:00
Maximus
0fa8033830 changed deprecated page component 2022-08-22 17:55:59 +03:00
Maximus
4caaa13752 removed unnecessary console.log command 2022-08-22 17:51:46 +03:00
Maximus
fa308f11d1 Created column schemd 2022-08-22 17:49:17 +03:00
Denis Gorbunov
47c4f2c113 Merge pull request 'fix errors with import footer' (#96) from fix/base-layout-schema into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/96
2022-08-22 09:29:27 +00:00
Maximus
9376f9db09 Merge branch 'myCheck/working-develop' into feature/triple-column-layout 2022-08-20 16:43:36 +03:00
Maximus
d53d32c5fa Merge branch 'fix/header-navbar' into myCheck/working-develop 2022-08-20 16:20:51 +03:00
Maximus
1aa8f104bd setup imports 2022-08-20 16:19:52 +03:00
Maximus
896ea45d23 Merge branch 'fix/header' into myCheck/working-develop 2022-08-20 16:17:01 +03:00
Maximus
f42b505136 setup imports in header 2022-08-20 16:16:18 +03:00
Maximus
118b2a8fb1 Merge branch 'fix/context-menu' into myCheck/working-develop 2022-08-20 16:14:25 +03:00
Maximus
cc36def1b5 deleted unnecessary repetable components, setup imports 2022-08-20 16:13:16 +03:00
Maximus
f8c1141e8c changed icon component, paddings 2022-08-20 16:09:27 +03:00
Maximus
87cb915f4a Merge branch 'fix/header' into myCheck/working-develop 2022-08-20 15:21:46 +03:00
Maximus
b557d05718 resolved header errors, refresh imports 2022-08-20 15:15:05 +03:00
Maximus
4247766746 replace our header to parts folder, remove deprecated header 2022-08-20 14:42:47 +03:00
Maximus
dd231a1903 Merge branch 'fix/icon-factory' into myCheck/working-develop 2022-08-20 10:36:24 +03:00
Maximus
29c5ec0f3e Merge branch 'fix/unnecessary-files' into myCheck/working-develop 2022-08-20 10:35:49 +03:00
Maximus
3421670619 Merge branch 'fix/base-layout-schema' into myCheck/working-develop 2022-08-20 10:35:18 +03:00
Maximus
f7ce6f0a07 delete unnecessary logotype 2022-08-20 10:34:08 +03:00
Maximus
d2976eb824 rename wrong icon's name 2022-08-20 10:27:34 +03:00
Maximus
8d2036207e Merge branch 'fix/return-app' into develop 2022-08-20 10:19:13 +03:00
Maximus
adf23f3b8f fix errors with import footer 2022-08-19 22:56:31 +03:00
Denis Gorbunov
c7af2deb9c Merge pull request 'added new icons, remove repetable icons, modified icon-factory' (#93) from fix/icon-factory into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/93
2022-08-19 19:02:24 +00:00
Denis Gorbunov
b6ba21be7d Merge pull request 'fix/base-layout-schema' (#91) from fix/base-layout-schema into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/91
2022-08-19 19:02:16 +00:00
Maximus
4c44a1ba2d Merge branch 'fix/icon-factory' into fix/return-app 2022-08-19 19:55:49 +03:00
Maximus
fba6faecd2 Merge branch 'fix/base-layout-schema' into fix/return-app 2022-08-19 19:55:38 +03:00
Maximus
4b9ce789f7 return of App.tsx 2022-08-19 19:49:34 +03:00
Maximus
4cd741bbf2 Merge branch 'fix/icon-factory' into feature/triple-column-layout 2022-08-19 19:39:07 +03:00
Maximus
fdbc5bff53 Merge branch 'fix/base-layout-schema' into feature/triple-column-layout 2022-08-19 19:38:48 +03:00
maximus
79f89fac3f Merge branch 'develop' into fix/base-layout-schema 2022-08-19 16:29:36 +00:00
Maximus
44de4f1195 added new icons, remove repetable icons, modified icon-factory 2022-08-19 19:24:59 +03:00
Maximus
dec8bce3e3 exactly added Footer and Header to base layout 2022-08-19 17:17:59 +03:00
Denis Gorbunov
a314782acb Merge pull request 'feature/add-featured-articles-section' (#87) from feature/add-featured-articles-section into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/87
2022-08-19 14:09:00 +00:00
decamel
79f015c5b0 Merge branch 'develop' into feature/add-featured-articles-section 2022-08-19 17:08:47 +03:00
Maximus
d38f76c38f added Footer and Header to base layout 2022-08-19 17:08:02 +03:00
Denis Gorbunov
2dcdfda4bf Merge pull request 'added possibility to turn off paddings of button' (#89) from fix/button-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/89
2022-08-19 14:07:37 +00:00
Denis Gorbunov
f3b757937b Merge pull request 'feature/all-card-components' (#86) from feature/all-card-components into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/86
2022-08-19 14:07:06 +00:00
Denis Gorbunov
9abdabf66b Merge pull request 'feature/header' (#85) from feature/header into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/85
2022-08-19 14:06:21 +00:00
Maximus
246aa98a73 added possibility to turn off paddings of button 2022-08-19 17:01:05 +03:00
Maximus
037fa4e92b added featured categories section 2022-08-19 16:49:46 +03:00
Maximus
965892818e added category card component 2022-08-19 13:29:05 +03:00
“Salar
4dd580c53f Other unwanted files have been removed from header branch 2022-08-18 14:23:36 +03:00
“Salar
41726d47ac Photos have been removed from the header branch 2022-08-18 14:13:15 +03:00
“Salar
dafbb444be Header with the navbar files - without additional files 2022-08-18 14:03:08 +03:00
Maximus
977da92786 modified icons factory added new icons 2022-08-18 13:19:37 +03:00
“Salar
3671d3d5bc Merge branch 'develop' into feature/header 2022-08-18 13:13:45 +03:00
Denis Gorbunov
eb7205025c Merge pull request 'Dropdown has been modified - Button converted to Link' (#84) from fix/dropdown into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/84
2022-08-18 09:53:36 +00:00
Denis Gorbunov
13cbdfd46d Merge pull request 'added RouterLink component setup route system' (#81) from feature/add-routes into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/81
2022-08-18 09:53:18 +00:00
Denis Gorbunov
68cfb61a1d Merge pull request 'Create footer' (#83) from feature/footer into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/83
2022-08-18 09:53:09 +00:00
“Salar
e8f8777fa8 Unimportant comments have been removed 2022-08-18 12:22:41 +03:00
Maximus
f1cbc0bae7 Merge branch 'feature/add-routes' into feature/add-featured-articles-section 2022-08-18 12:01:56 +03:00
Maximus
f56ae41235 modified footer add router and default link 2022-08-18 11:39:50 +03:00
Maximus
b82eb8290b modified router link 2022-08-18 11:34:36 +03:00
Maximus
d21ed03508 closed issue #82 - add information pages mention in footer and routes to them 2022-08-18 11:32:18 +03:00
“Salar
f39f7ab4cd Dropdown has been modified - Button converted to Link 2022-08-17 20:29:00 +03:00
Maximus
414e7e62d8 closed #62 Created footer 2022-08-17 18:53:07 +03:00
Maximus
fd3ef3fb9c added RouterLink component setup route system 2022-08-17 16:56:37 +03:00
“Salar
f082b4ce47 Merge branch 'develop' into feature/header 2022-08-17 13:01:17 +03:00
“Salar
02d7781ca7 header App.tsx 2022-08-17 12:56:34 +03:00
“Salar
2e5e57550c header without dropdown 2022-08-17 12:55:39 +03:00
Denis Gorbunov
43163a19b2 Merge pull request 'DropDownMenu without Storybook' (#74) from DropDownMenu into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/74
2022-08-16 19:52:32 +00:00
Denis Gorbunov
5c793cd813 Merge pull request 'Closed issue #65 Implemented Modal BottomSheetBar' (#75) from feature/modal-bottom-sheet-bar into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/75
2022-08-16 19:25:02 +00:00
decamel
044739fd31 Merge branch 'develop' of http://85.143.176.51:3000/free-land/front-end into feature/modal-bottom-sheet-bar 2022-08-16 22:24:40 +03:00
Denis Gorbunov
218220d672 Merge pull request 'Change favicon' (#76) from Change-favicon into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/76
2022-08-16 19:21:11 +00:00
Denis Gorbunov
a4a554fa69 Merge pull request 'added inter fonts from design' (#78) from feature/add-fonts into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/78
2022-08-16 19:20:08 +00:00
Denis Gorbunov
bf76f9b7e0 Merge pull request 'Input group - Add a new style' (#79) from feature/Input-group into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/79
2022-08-16 19:19:44 +00:00
“Salar
bdb87d715a Merge branch 'develop' of http://85.143.176.51:3000/free-land/front-end into feature/checkbox 2022-08-16 13:20:08 +03:00
“Salar
ca39dc42bf Input group - Add a new style 2022-08-16 13:06:20 +03:00
Maximus
211b7230ab added inter fonts from design 2022-08-16 12:28:56 +03:00
filantrop
976387fa5c Change favicon 2022-08-15 15:31:10 +03:00
Maximus
04b466d7ba closed issue #65 added modal bottomsheet bar 2022-08-15 15:28:47 +03:00
filantrop
15b640a3f2 DropDownMenu without Storybook 2022-08-15 15:18:18 +03:00
Denis Gorbunov
2ee7705d5c Merge pull request 'Creating a select component using HeadlessUI' (#68) from custom-select into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/68
2022-08-12 14:13:44 +00:00
Denis Gorbunov
cbc7766962 Merge pull request 'fixed #71 Changed blue color variants.' (#70) from fix/color-theme into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/70
2022-08-12 14:12:08 +00:00
Maximus
2913a3368a Merge branch 'feature/add-button-component' into feature/modal-bottom-sheet-bar 2022-08-12 17:09:05 +03:00
Maximus
a17af4002f closed issue #72 add ability to custom styles for button 2022-08-12 17:00:15 +03:00
Maximus
4083efda62 fixed #23 changed blue color variants 2022-08-12 16:40:09 +03:00
Maximus
3c035c1c11 fixed #23 changed blue color variants 2022-08-12 16:12:10 +03:00
Maximus
985efd9b14 fixed #23 changed blue color variants 2022-08-12 13:32:33 +03:00
Denis Gorbunov
a0605f1567 Merge pull request 'Button Component - Closed issues #6 and #7' (#67) from feature/add-button-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/67
2022-08-12 09:59:32 +00:00
maximus
dcd8ded4ab Merge branch 'develop' into feature/add-button-component 2022-08-12 09:47:51 +00:00
Maximus
4d07a4f1cc added new icons, changed svg properties, write script to add svg components 2022-08-12 11:57:23 +03:00
filantrop
6e4de7255a delete shadow from select 2022-08-11 13:04:06 +03:00
Denis Gorbunov
895e054e7e Merge pull request 'Avatar - image or text inside' (#66) from feature/avatar into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/66
2022-08-11 09:10:48 +00:00
filantrop
245bd8e2ba Creating a select component using HeadlessUI 2022-08-10 19:09:34 +03:00
“Salar
658b957b20 Avatar - image or text inside 2022-08-10 15:11:32 +03:00
decamel
60512bfae7 Icons path fixes 2022-08-10 15:00:50 +03:00
Maximus
0f9a33612d extend styles for svg images, added dot notation for Icon button 2022-08-10 14:17:23 +03:00
Denis Gorbunov
a16736730f Merge pull request 'Create Typography component' (#55) from create-Typography-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/55
2022-08-10 05:52:04 +00:00
decamel
9428ee7d06 Merge branch 'develop' into create-Typography-component 2022-08-10 08:51:40 +03:00
Denis Gorbunov
ac29f0c0f2 Merge pull request 'feature/checkbox' (#44) from feature/checkbox into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/44
2022-08-10 05:47:57 +00:00
Denis Gorbunov
c18cea8c89 Merge pull request 'Tooltip - onHover - Tooltip text and children can be provided' (#58) from feature/tooltip into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/58
2022-08-10 05:47:36 +00:00
Artem
ab2004d7e1 added storybook 2022-08-09 17:37:39 +03:00
“Salar
38145e0780 Tooltip - onHover - Tooltip text and children can be provided 2022-08-09 17:22:38 +03:00
Denis Gorbunov
e4b38c7118 Merge pull request 'feature/text-input-component' (#56) from feature/text-input-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/56
2022-08-09 10:52:47 +00:00
Denis Gorbunov
a6510e0e28 Merge pull request 'Input group component' (#57) from feature/Input-group into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/57
2022-08-09 10:52:21 +00:00
“Salar
9cdd859e76 Input group component 2022-08-09 11:19:38 +03:00
Artem
1bac9f26ed added React.ComponentPropsWithoutRef<div> 2022-08-08 18:27:36 +03:00
Maximus
f89be00751 added 2 views of text input component: when it in group and not in group 2022-08-08 16:27:54 +03:00
Maximus
00c29d39d0 first stylings 2022-08-08 12:10:13 +03:00
Artem
c778def905 added typography-component 2022-08-05 19:43:57 +03:00
“Salar
01d5d946e8 Merge branch 'develop' of http://85.143.176.51:3000/free-land/front-end into feature/checkbox 2022-08-05 17:22:30 +03:00
Maximus
d6d805e3dd Merge branch 'develop' into feature/text-input-component 2022-08-05 17:19:10 +03:00
“Salar
b2e0a74a5f Checkbox story 2022-08-05 17:16:33 +03:00
“Salar
a5ae4238ef Main text color fix 2022-08-05 17:13:16 +03:00
“Salar
1c2d86cc63 Fixtry 2022-08-05 17:11:23 +03:00
Denis Gorbunov
213f5bbd3d Merge pull request 'Change-Title' (#52) from Change-Title into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/52
2022-08-05 13:26:17 +00:00
Denis Gorbunov
e337cbadd6 Merge pull request 'add viewports for container' (#46) from fix-container.stories into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/46
2022-08-05 13:25:54 +00:00
Denis Gorbunov
389ed0511d Merge pull request 'create badge component' (#45) from Create-Badge-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/45
2022-08-05 13:24:58 +00:00
Denis Gorbunov
7c1e021f1c Merge pull request 'created story for all icons' (#48) from feature/icons-stories into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/48
2022-08-05 13:22:13 +00:00
Denis Gorbunov
0ae7965809 Merge pull request 'feature/radio-component' (#51) from feature/radio-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/51
2022-08-05 13:19:58 +00:00
filantrop
30b4e9f441 title has been changed to freeland 2022-08-05 14:49:04 +03:00
“Salar
f008d80b60 Radio component with its stories 2022-08-05 14:06:21 +03:00
filantrop
124216dc49 add barge to stories 2022-08-05 13:05:03 +03:00
Maximus
b3183562d1 update with develop 2022-08-05 12:38:52 +03:00
Maximus
3d6d6ce634 create raw component 2022-08-05 12:30:13 +03:00
filantrop
8b3779399b Merge remote-tracking branch 'remotes/origin/Create-Badge-component' into Create-Badge-component 2022-08-05 12:26:08 +03:00
decamel
2cb9acf6af Icon fixes 2022-08-05 10:10:40 +03:00
Denis Gorbunov
96ad8b2c8a Merge pull request 'feature/add-button-component' (#43) from feature/add-button-component into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/43
2022-08-05 05:55:28 +00:00
Maximus
06bdc87056 created story for all icons 2022-08-05 01:34:05 +03:00
filantrop
fefe2e990a create badge component 2022-08-04 18:54:15 +03:00
“Salar
e82c7116bc Checkbox component with its stories 2022-08-04 17:03:11 +03:00
filantrop
b42c3a44bb add viewports 2022-08-04 13:26:14 +03:00
“Salar
c5c65d84dc reset backup 2022-08-04 13:12:12 +03:00
Maximus
14d034211a ended styling button styles according design 2022-08-03 12:35:35 +03:00
Maximus
8f1b1d8c33 Merge branch 'develop' into feature/add-button-component 2022-08-02 16:39:56 +03:00
Denis Gorbunov
1a42b0321d Merge pull request 'change styletype variants' (#40) from feature/-create-emphasis-type into develop
Reviewed-on: http://85.143.176.51:3000/free-land/front-end/pulls/40
2022-08-02 13:18:47 +00:00
Maximus
e6c1944832 Merge branch 'feature/add-button-component' of http://85.143.176.51:3000/free-land/front-end into feature/add-button-component 2022-08-01 18:32:38 +03:00
Maximus
61746f522f added button component, story for button 2022-08-01 18:09:05 +03:00
“Salar
2395b1e2d8 Radio Component v1.0 2022-07-28 14:19:08 +03:00
496 changed files with 81929 additions and 69744 deletions

14
.dockerignore Normal file → Executable file
View File

@ -1,8 +1,8 @@
.env*
!.env.production
node_modules
build
.vscode
.cache
.nvmrc
.env*
!.env.production
node_modules
build
.vscode
.cache
.nvmrc
README.MD

12
.env.development Normal file → Executable file
View File

@ -1,6 +1,6 @@
REACT_APP_CMS_BASE_URL=https://cms.techpal.ru/api
REACT_APP_CMS_APP_NAME=techpal
REACT_APP_OPENID_PROVIDER_URL=http://auth.techpal.ru/auth/realms/master/protocol/openid-connect/auth?client_id=techpal&response_type=code
REACT_APP_INTEGRATOR_URL=http://integrator.techpal.ru
REACT_APP_INTEGRATOR_API_VERSION=/api/1
REACT_APP_GRAPHQL_URL=/graphql
REACT_APP_CMS_BASE_URL=http://scipaper.ru
REACT_APP_CMS_APP_NAME=scipaper
REACT_APP_OPENID_PROVIDER_URL=http://auth.techpal.ru/auth/realms/master/protocol/openid-connect/auth?client_id=techpal&response_type=code
REACT_APP_INTEGRATOR_URL=http://scipaper.ru
REACT_APP_INTEGRATOR_API_VERSION=/v1
REACT_APP_GRAPHQL_URL=/graphql

12
.env.production Normal file → Executable file
View File

@ -1,6 +1,6 @@
REACT_APP_CMS_BASE_URL=EXT_CMS_BASE_URL
REACT_APP_CMS_APP_NAME=EXT_CMS_APP_NAME
REACT_APP_OPENID_PROVIDER_URL=EXT_OPENID_PROVIDER_URL
REACT_APP_INTEGRATOR_URL=EXT_INTEGRATOR_URL
REACT_APP_INTEGRATOR_API_VERSION=EXT_INTEGRATOR_API_VERSION
REACT_APP_GRAPHQL_URL=EXT_GRAPHQL_URL
REACT_APP_CMS_BASE_URL=http://scipaper.ru
REACT_APP_CMS_APP_NAME=scipaper
REACT_APP_OPENID_PROVIDER_URL=http://auth.techpal.ru/auth/realms/master/protocol/openid-connect/auth?client_id=techpal&response_type=code
REACT_APP_INTEGRATOR_URL=http://scipaper.ru
REACT_APP_INTEGRATOR_API_VERSION=/v1
REACT_APP_GRAPHQL_URL=/graphql

50
.gitignore vendored Normal file → Executable file
View File

@ -1,25 +1,25 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
.vscode
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
# dependencies
/node_modules
/.pnp
.pnp.js
# testing
/coverage
# production
/build
# misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
.vscode
npm-debug.log*
yarn-debug.log*
yarn-error.log*

1
.npmrc Executable file
View File

@ -0,0 +1 @@
legacy-peer-deps=true

2
.nvmrc Normal file → Executable file
View File

@ -1 +1 @@
v16.14.0
v16.14.0

134
.storybook/index.css Executable file
View File

@ -0,0 +1,134 @@
@tailwind base;
@tailwind components;
@tailwind utilities;
@layer base {
@font-face {
font-family: "Poppins";
src: url("assets/fonts/Poppins-Bold.eot");
src: url("assets/fonts/Poppins-Bold.eot?#iefix") format("embedded-opentype"),
url("assets/fonts/Poppins-Bold.woff2") format("woff2"),
url("assets/fonts/Poppins-Bold.ttf") format("truetype");
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Poppins";
src: url("assets/fonts/Poppins-Medium.eot");
src: url("assets/fonts/Poppins-Medium.eot?#iefix") format("embedded-opentype"),
url("assets/fonts/Poppins-Medium.woff2") format("woff2"),
url("assets/fonts/Poppins-Medium.ttf") format("truetype");
font-weight: 500;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Poppins";
src: url("assets/fonts/Poppins-Regular.eot");
src: url("assets/fonts/Poppins-Regular.eot?#iefix") format("embedded-opentype"),
url("assets/fonts/Poppins-Regular.woff2") format("woff2"),
url("assets/fonts/Poppins-Regular.ttf") format("truetype");
font-weight: normal;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Poppins";
src: url("assets/fonts/Poppins-Thin.eot");
src: url("assets/fonts/Poppins-Thin.eot?#iefix") format("embedded-opentype"),
url("assets/fonts/Poppins-Thin.woff2") format("woff2"),
url("assets/fonts/Poppins-Thin.ttf") format("truetype");
font-weight: 300;
font-style: normal;
font-display: swap;
}
html {
font-family: "Poppins", -apple-system, "Segoe UI", system-ui, "Roboto",
"Helvetica Neue", "Arial";
color: var(--color-text);
}
*,
::before,
::after,
.theme-dark *,
.theme-dark::before,
.theme-dark::after {
/* ------------------------------- Body color ------------------------------- */
--color-aside: #0a0e1a;
--color-footer: 10 10 10;
--color-text: rgb(38, 38, 38);
/* -------------------------------------------------------------------------- */
--color-serv: 25 29 43;
--color-serv-50: 227 230 237;
--color-serv-100: 200 205 223;
--color-serv-200: 142 152 189;
--color-serv-300: 90 104 155;
--color-serv-400: 58 67 100;
--color-serv-500: 25 29 43;
--color-serv-600: 21 24 35;
--color-serv-700: 15 17 26;
--color-serv-800: 9 11 16;
--color-serv-900: 6 7 10;
/* ---------------------------------- Blue ---------------------------------- */
--color-blue-50: 240 247 254;
--color-blue-100: 221 237 254;
--color-blue-200: 182 216 252;
--color-blue-300: 137 192 250;
--color-blue-400: 74 158 247;
--color-blue-500: 9 109 217;
--color-blue-600: 8 99 196;
--color-blue-700: 7 87 171;
--color-blue-800: 6 69 137;
--color-blue-900: 4 49 98;
/* ---------------------------------- Gray ---------------------------------- */
--color-gray-50: 250 250 250;
--color-gray-75: 240 240 240;
--color-gray-100: 235 235 235;
;
--color-gray-200: 214 214 214;
--color-gray-300: 191 191 191;
--color-gray-400: 166 166 166;
--color-gray-500: 140 140 140;
--color-gray-600: 115 115 115;
--color-gray-700: 89 89 89;
--color-gray-800: 64 64 64;
--color-gray-900: 38 38 38;
}
/* Dark theme */
@media (prefers-color-scheme: dark) {
:root {
--bg: hsl(var(--hue), 10%, 10%);
--fg: hsl(var(--hue), 10%, 90%);
}
}
}
@layer components {
/* Separate
======================================================================== */
.separate {
@apply flex items-center text-center;
}
.separate::after,
.separate::before {
content: '';
@apply border-b border-gray-300 flex-1;
}
.separate:not(:empty)::after {
@apply ml-2;
}
.separate:not(:empty)::before {
@apply mr-2;
}
}

30
.storybook/main.js Normal file → Executable file
View File

@ -1,16 +1,16 @@
module.exports = {
"stories": [
"../src/**/*.stories.mdx",
"../src/**/*.stories.@(js|jsx|ts|tsx)"
],
"addons": [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@storybook/addon-interactions",
"@storybook/preset-create-react-app"
],
"framework": "@storybook/react",
"core": {
"builder": "@storybook/builder-webpack5"
}
module.exports = {
"stories": [
"../src/**/*.stories.mdx",
"../src/**/*.stories.@(js|jsx|ts|tsx)"
],
"addons": [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@storybook/addon-interactions",
"@storybook/preset-create-react-app"
],
"framework": "@storybook/react",
"core": {
"builder": "@storybook/builder-webpack5"
}
}

31
.storybook/main.ts Executable file
View File

@ -0,0 +1,31 @@
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
const Path = require('path');
const AppSourceDir = Path.join(__dirname, '..', 'src');
module.exports = {
stories: ["../src/**/*.stories.mdx", "../src/**/*.stories.@(js|jsx|ts|tsx)"],
addons: [
"@storybook/addon-links",
"@storybook/addon-essentials",
"@storybook/addon-interactions",
"@storybook/preset-create-react-app",
"storybook-addon-pseudo-states",
],
framework: "@storybook/react",
core: {
builder: "@storybook/builder-webpack5",
},
webpackFinal: async (config, { configType }) => {
config.resolve.plugins = [
...(config.resolve.plugins || []),
new TsconfigPathsPlugin({
extensions: config.resolve.extensions,
}),
];
config.resolve.alias["@assets"] = Path.resolve(__dirname, '..', 'src', 'assets')
console.log(config);
return config;
},
};

77
.storybook/preview.js Normal file → Executable file
View File

@ -1,68 +1,9 @@
import "../src/index.css";
/**
* Read https://storybook.js.org/docs/react/configure/overview#configure-story-rendering
* for more information about the purpose of this file.
*
* Use preview.js for global code (such as CSS imports or JavaScript mocks)
* that applies to all stories. For example, `import thirdPartyCss.css`.
*
* This file can have three exports:
* - decorators - an array of global decorators
* - parameters - an object of global parameters
* - globalTypes - definition of globalTypes
*/
/**
* Decorators
*
* A decorator is a way to wrap a story in extra rendering functionality.
*
* Example:
*
* import React from 'react';
* export const decorators = [(Story) => <div style={{ margin: '3em' }}><Story/></div>];
*
* Each story throughout the library will be wrapped in a div with a margin of 3
*/
/**
* Parameters
*
* Most Storybook addons are configured via a parameter-based API.
* You can set global parameters in this file
*
* export const parameters = {
* backgrounds: {
* values: [
* { name: 'red', value: '#f00' },
* { name: 'green', value: '#0f0' },
* ],
* },
* };
*
* With backgrounds, you configure the list of backgrounds that every story can render in.
*/
/**
* Global Types
*
* Global Types allow you to add your own toolbars by creating
* globalTypes with a toolbar annotation:
*
* For example:
*
* export const globalTypes = {
* theme: {
* name: 'Theme',
* description: 'Global theme for components',
* defaultValue: 'light',
* toolbar: {
* icon: 'circlehollow',
* // array of plain string values or MenuItem shape
* items: ['light', 'dark'],
* },
* },
* };
*
* Will add a new dropdown in your toolbar with options light and dark.
**/
export const parameters = {
actions: { argTypesRegex: "^on[A-Z].*" },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/,
},
},
}

68
.storybook/preview.ts Executable file
View File

@ -0,0 +1,68 @@
import "./index.css";
/**
* Read https://storybook.js.org/docs/react/configure/overview#configure-story-rendering
* for more information about the purpose of this file.
*
* Use preview.js for global code (such as CSS imports or JavaScript mocks)
* that applies to all stories. For example, `import thirdPartyCss.css`.
*
* This file can have three exports:
* - decorators - an array of global decorators
* - parameters - an object of global parameters
* - globalTypes - definition of globalTypes
*/
/**
* Decorators
*
* A decorator is a way to wrap a story in extra rendering functionality.
*
* Example:
*
* import React from 'react';
* export const decorators = [(Story) => <div style={{ margin: '3em' }}><Story/></div>];
*
* Each story throughout the library will be wrapped in a div with a margin of 3
*/
/**
* Parameters
*
* Most Storybook addons are configured via a parameter-based API.
* You can set global parameters in this file
*
* export const parameters = {
* backgrounds: {
* values: [
* { name: 'red', value: '#f00' },
* { name: 'green', value: '#0f0' },
* ],
* },
* };
*
* With backgrounds, you configure the list of backgrounds that every story can render in.
*/
/**
* Global Types
*
* Global Types allow you to add your own toolbars by creating
* globalTypes with a toolbar annotation:
*
* For example:
*
* export const globalTypes = {
* theme: {
* name: 'Theme',
* description: 'Global theme for components',
* defaultValue: 'light',
* toolbar: {
* icon: 'circlehollow',
* // array of plain string values or MenuItem shape
* items: ['light', 'dark'],
* },
* },
* };
*
* Will add a new dropdown in your toolbar with options light and dark.
**/

79
Dockerfile Normal file → Executable file
View File

@ -1,38 +1,41 @@
# Install dependencies only when needed
FROM node:16-alpine AS deps
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
RUN apk add --no-cache libc6-compat
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
# Rebuild the source code only when needed
FROM node:16-alpine AS builder
ENV NODE_ENV production
WORKDIR /app
# Copy dependencies from deps stage
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN npm run build
# Bundle static assets with nginx
FROM nginx:1.21.6 as production
# Copy built assets from builder
COPY --from=builder /app/build /usr/share/nginx/html
# Add nginx.config
COPY nginx.conf /etc/nginx/conf.d/default.conf
# Expose ports
EXPOSE 80
COPY entrypoint.sh .
COPY .env.production .
ENV NODE_ENV production
# Execute script
RUN ["chmod", "+x", "./entrypoint.sh"]
ENTRYPOINT ["./entrypoint.sh"]
# Start serving
CMD ["nginx", "-g", "daemon off;"]
# Install dependencies only when needed
FROM node:16-alpine AS deps
# Check https://github.com/nodejs/docker-node/tree/b4117f9333da4138b03a546ec926ef50a31506c3#nodealpine to understand why libc6-compat might be needed.
RUN apk add --no-cache libc6-compat
WORKDIR /app
COPY package.json package-lock.json ./
RUN npm ci
# Rebuild the source code only when needed
FROM node:16-alpine AS builder
ENV NODE_ENV production
WORKDIR /app
# Copy dependencies from deps stage
COPY --from=deps /app/node_modules ./node_modules
COPY . .
RUN npm run build
# Bundle static assets with nginx
FROM node:16-alpine as production
# Copy built assets from builder
WORKDIR /app
COPY --from=builder /app/build .
# Expose ports
EXPOSE 3000
COPY .env.production .
ENV NODE_ENV production
ENV USER_NAME=node_user USER_UID=2000 GROUP_NAME=node_group GROUP_UID=2000
RUN npm i -g serve \
&& deluser --remove-home node \
&& addgroup --g ${GROUP_UID} -S ${GROUP_NAME} \
&& adduser -D -S -s /sbin/nologin -u ${USER_UID} -G ${GROUP_NAME} ${USER_NAME}\
&& chown -R ${USER_NAME}:${GROUP_NAME} "/app/"
USER "${USER_NAME}"
CMD serve -s .

50
Makefile Normal file → Executable file
View File

@ -1,26 +1,26 @@
PROJECT_NAME=freeland-frontend
setup:
npm i
build: setup
npm run build
dev: setup
npm run start
test: setup
npm run test
container: setup
docker build -t ${PROJECT_NAME} .
clean:
rm -rf ./build
build-docker: build container
stories: setup
npm run storybook
PROJECT_NAME=scipaper-frontend
setup:
npm i
build: setup
npm run build
dev: setup
npm run start
test: setup
npm run test
container: setup
docker build -t ${PROJECT_NAME} .
clean:
rm -rf ./build
build-docker: build container
stories: setup
npm run storybook
.PHONY: build dev test container

222
README.md Normal file → Executable file
View File

@ -1,112 +1,112 @@
# Getting Started with Freeland
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
## Available Scripts
In the project directory, you can run:
### `make stories`
Runs the Storybook server for component-driven isolated development.
Open [http://localhost:6006](http://localhost:6006) to view it in the browser.
The page will reload on edits.\
For further information about how to create stories and UI-testing, \
please follow [this link](https://storybook.js.org/docs/react/writing-stories/introduction).
### `make dev`
Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
The page will reload if you make edits.\
You will also see any lint errors in the console.
### `make test`
Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
### `make build`
Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
### `make container`
Builds up application container for production and tags it with a `freeland-frontend` tag.\
After process completion port `80` will be exposed inside a container to access files generated by `make build`
### `make build-docker`
Creates docker container ready for deployment
## `make clean`
Drops **build** process artifacts. It will not remove docker containers due to possible other project named\
containers intercections.
## Learn More
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
To learn React, check out the [React documentation](https://reactjs.org/).
## Code sections division
We care about our code appearance in text editor. That's why we are placing some
additional comments to seperate code parts using next style:
/\* -------------------------------------------------------------------------- \*/
/\*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User service functions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\*/
/\* -------------------------------------------------------------------------- \*/
Or
/\*-------------------------------- Hello --------------------------------\*/
Or
/\*-----------------------------------------------------------------------\*/
To place such comments for division code sections use [this](https://marketplace.visualstudio.com/items?itemName=stackbreak.comment-divider) extention.
## Domain folder structure
Inside specific domain you can see that we have next folders structure:
- domain folder (e.g.: user)
- controller
- some specific or general domain models (e.g. `userViewModel.ts`)
- data
- Data transfer objects
- Possible actions (e.g. `userActions.ts`) and action types definitions
- Reducer rules for redux (e.g. `userReducer.ts`, rules to change your Redux state on specific action type)
- Service (e.g. `userService.ts`, API interactions)
- Repository/Store implementation (e.g. `userSlice.ts`)
- domain
- Entity definition
- Domain model definition
- Repository/Store interface
- useCases (e.g. `getUserUseCase.ts`, use cases of domain)
- views
- pages
- specific components
## Network layer
We use [Axios](https://github.com/axios/axios) for network interactions
## Css styles and interactive components
As a CSS framework we are using [TailwindCSS](https://tailwindcss.com/)
# Getting Started with Freeland
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
## Available Scripts
In the project directory, you can run:
### `make stories`
Runs the Storybook server for component-driven isolated development.
Open [http://localhost:6006](http://localhost:6006) to view it in the browser.
The page will reload on edits.\
For further information about how to create stories and UI-testing, \
please follow [this link](https://storybook.js.org/docs/react/writing-stories/introduction).
### `make dev`
Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
The page will reload if you make edits.\
You will also see any lint errors in the console.
### `make test`
Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
### `make build`
Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.
The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
### `make container`
Builds up application container for production and tags it with a `freeland-frontend` tag.\
After process completion port `80` will be exposed inside a container to access files generated by `make build`
### `make build-docker`
Creates docker container ready for deployment
## `make clean`
Drops **build** process artifacts. It will not remove docker containers due to possible other project named\
containers intercections.
## Learn More
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
To learn React, check out the [React documentation](https://reactjs.org/).
## Code sections division
We care about our code appearance in text editor. That's why we are placing some
additional comments to seperate code parts using next style:
/\* -------------------------------------------------------------------------- \*/
/\*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User service functions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\*/
/\* -------------------------------------------------------------------------- \*/
Or
/\*-------------------------------- Hello --------------------------------\*/
Or
/\*-----------------------------------------------------------------------\*/
To place such comments for division code sections use [this](https://marketplace.visualstudio.com/items?itemName=stackbreak.comment-divider) extention.
## Domain folder structure
Inside specific domain you can see that we have next folders structure:
- domain folder (e.g.: user)
- controller
- some specific or general domain models (e.g. `userViewModel.ts`)
- data
- Data transfer objects
- Possible actions (e.g. `userActions.ts`) and action types definitions
- Reducer rules for redux (e.g. `userReducer.ts`, rules to change your Redux state on specific action type)
- Service (e.g. `userService.ts`, API interactions)
- Repository/Store implementation (e.g. `userSlice.ts`)
- domain
- Entity definition
- Domain model definition
- Repository/Store interface
- useCases (e.g. `getUserUseCase.ts`, use cases of domain)
- views
- pages
- specific components
## Network layer
We use [Axios](https://github.com/axios/axios) for network interactions
## Css styles and interactive components
As a CSS framework we are using [TailwindCSS](https://tailwindcss.com/)
For UI/UX elements use [HeadlessUI](https://headlessui.com/)

View File

@ -1,4 +1,4 @@
#!/bin/bash
#! /bin/bash
# no verbose
set +x
# config

28
src/types/global.d.ts → global.d.ts vendored Normal file → Executable file
View File

@ -1,13 +1,15 @@
declare module '*.svg' {
import React = require('react');
export const ReactComponent: React.FC<React.SVGProps<SVGSVGElement>>;
const src: string;
export default src;
}
export declare global {
interface Window {
state: any & {idx: number}
}
}
declare module '*.svg' {
import React = require('react');
export const ReactComponent: React.FC<React.SVGProps<SVGSVGElement>>;
const src: string;
export default src;
}
export declare global {
interface Window {
state: any & {idx: number}
}
}
declare module "svg-inline-react"

40
nginx.conf Normal file → Executable file
View File

@ -1,21 +1,21 @@
server {
listen *:80;
location / {
root /usr/share/nginx/html/;
include /etc/nginx/mime.types;
try_files $uri $uri/ /index.html;
# Cache static assets
location ~* \.(?:jpg|jpeg|gif|png|ico|svg)$ {
expires 7d;
add_header Cache-Control "public";
}
# Cache css and js bundle
location ~* \.(?:css|js)$ {
add_header Cache-Control "no-cache, public, must-revalidate, proxy-revalidate";
}
}
server {
listen *:80;
location / {
root /usr/share/nginx/html/;
include /etc/nginx/mime.types;
try_files $uri $uri/ /index.html;
# Cache static assets
location ~* \.(?:jpg|jpeg|gif|png|ico|svg)$ {
expires 7d;
add_header Cache-Control "public";
}
# Cache css and js bundle
location ~* \.(?:css|js)$ {
add_header Cache-Control "no-cache, public, must-revalidate, proxy-revalidate";
}
}
}

131612
package-lock.json generated

File diff suppressed because it is too large Load Diff

227
package.json Normal file → Executable file
View File

@ -1,103 +1,124 @@
{
"name": "freeland",
"version": "0.1.0",
"private": true,
"dependencies": {
"@headlessui/react": "^1.6.6",
"@reduxjs/toolkit": "^1.8.3",
"@types/node": "^16.11.47",
"@types/react": "^18.0.15",
"@types/react-dom": "^18.0.6",
"axios": "^0.27.2",
"classnames": "^2.3.1",
"formik": "^2.2.9",
"graphql": "^16.5.0",
"graphql-tag": "^2.12.6",
"i18next": "^21.8.16",
"i18next-browser-languagedetector": "^6.1.4",
"i18next-http-backend": "^1.4.1",
"jwt-decode": "^3.1.2",
"lodash": "^4.17.21",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-hotkeys": "^2.0.0",
"react-i18next": "^11.18.3",
"react-redux": "^8.0.2",
"react-router-dom": "^6.3.0",
"react-scripts": "5.0.1",
"react-scrollbars-custom": "^4.1.0",
"typescript": "^4.7.4",
"web-vitals": "^2.1.4",
"yup": "^0.32.11"
},
"scripts": {
"dev-tools": "redux-devtools --hostname=localhost --port=8000",
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"storybook": "start-storybook -p 6006 -s public",
"build-storybook": "build-storybook -s public"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
],
"overrides": [
{
"files": [
"**/*.stories.*"
],
"rules": {
"import/no-anonymous-default-export": "off"
}
},
{
"files": [
"**/*.stories.*"
],
"rules": {
"import/no-anonymous-default-export": "off"
}
}
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@babel/preset-typescript": "^7.18.6",
"@storybook/addon-actions": "^6.5.9",
"@storybook/addon-essentials": "^6.5.9",
"@storybook/addon-interactions": "^6.5.9",
"@storybook/addon-links": "^6.5.9",
"@storybook/builder-webpack5": "^6.5.9",
"@storybook/manager-webpack5": "^6.5.9",
"@storybook/node-logger": "^6.5.9",
"@storybook/preset-create-react-app": "^4.1.2",
"@storybook/react": "^6.5.9",
"@storybook/testing-library": "^0.0.13",
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.3.0",
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.2",
"autoprefixer": "^10.4.8",
"babel-plugin-named-exports-order": "^0.0.2",
"jest": "^28.1.3",
"postcss": "^8.4.14",
"prop-types": "^15.8.1",
"react-test-renderer": "^18.2.0",
"tailwindcss": "^3.1.7",
"webpack": "^5.74.0"
}
}
{
"name": "freeland",
"version": "0.1.0",
"private": true,
"dependencies": {
"@fortawesome/fontawesome-svg-core": "^6.2.0",
"@fortawesome/free-brands-svg-icons": "^6.2.0",
"@fortawesome/free-solid-svg-icons": "^6.2.0",
"@fortawesome/react-fontawesome": "^0.2.0",
"@headlessui/react": "^1.6.6",
"@reduxjs/toolkit": "^1.8.3",
"@types/node": "^16.11.47",
"@types/react": "^18.0.15",
"@types/react-copy-to-clipboard": "^5.0.4",
"@types/react-dom": "^18.0.6",
"@uiw/react-md-editor": "^3.18.1",
"axios": "^0.27.2",
"classnames": "^2.3.1",
"formik": "^2.2.9",
"graphql": "^16.5.0",
"graphql-tag": "^2.12.6",
"i18next": "^21.8.16",
"i18next-browser-languagedetector": "^6.1.4",
"i18next-http-backend": "^1.4.1",
"jwt-decode": "^3.1.2",
"lodash": "^4.17.21",
"react": "^18.2.0",
"react-copy-to-clipboard": "^5.1.0",
"react-dom": "^18.2.0",
"react-hotkeys": "^2.0.0",
"react-i18next": "^11.18.3",
"react-loading-skeleton": "^3.1.0",
"react-lottie": "^1.2.3",
"react-markdown": "^8.0.3",
"react-redux": "^8.0.2",
"react-router-dom": "^6.3.0",
"react-scripts": "5.0.1",
"react-scrollbars-custom": "^4.1.0",
"react-syntax-highlighter": "^15.5.0",
"remark-code-blocks": "^2.0.1",
"remark-gfm": "^3.0.1",
"storybook-addon-pseudo-states": "^1.15.1",
"swiper": "^8.3.2",
"tailwindcss": "^3.1.7",
"tsconfig-paths-webpack-plugin": "^4.0.0",
"typescript": "^4.7.4",
"web-vitals": "^2.1.4",
"yup": "^0.32.11"
},
"scripts": {
"dev-tools": "redux-devtools --hostname=localhost --port=8000",
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject",
"storybook": "start-storybook -p 6006 -s public",
"build-storybook": "build-storybook -s public"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
],
"overrides": [
{
"files": [
"**/*.stories.*"
],
"rules": {
"import/no-anonymous-default-export": "off"
}
},
{
"files": [
"**/*.stories.*"
],
"rules": {
"import/no-anonymous-default-export": "off"
}
}
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"devDependencies": {
"@babel/preset-typescript": "^7.18.6",
"@storybook/addon-actions": "^6.5.9",
"@storybook/addon-essentials": "^6.5.9",
"@storybook/addon-interactions": "^6.5.9",
"@storybook/addon-links": "^6.5.9",
"@storybook/builder-webpack5": "^6.5.9",
"@storybook/manager-webpack5": "^6.5.9",
"@storybook/node-logger": "^6.5.9",
"@storybook/preset-create-react-app": "^4.1.2",
"@storybook/react": "^6.5.9",
"@storybook/testing-library": "^0.0.13",
"@svgr/webpack": "^6.3.1",
"@tailwindcss/line-clamp": "^0.4.0",
"@testing-library/jest-dom": "^5.16.4",
"@testing-library/react": "^13.3.0",
"@testing-library/user-event": "^13.5.0",
"@types/jest": "^27.5.2",
"@types/react-lottie": "^1.2.6",
"@types/react-syntax-highlighter": "^15.5.5",
"autoprefixer": "^10.4.8",
"babel-plugin-named-exports-order": "^0.0.2",
"jest": "^28.1.3",
"postcss": "^8.4.14",
"prop-types": "^15.8.1",
"react-test-renderer": "^18.2.0",
"tailwind-scrollbar": "^2.0.1",
"webpack": "^5.74.0"
}
}

12
postcss.config.js Normal file → Executable file
View File

@ -1,6 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}

12
public/favicon.svg Normal file → Executable file
View File

@ -1,5 +1,7 @@
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="11" cy="16" r="8" fill="#FF0000" />
<circle cx="25" cy="21" r="3" fill="#0075FF" />
</svg>
<svg width="40" height="40" viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M14.4144 23.7511C8.27781 15.6345 1.97719 21.8024 3.62218 27.4753C7.75871 36.521 18.4462 40.5011 27.4937 36.364C30.6123 34.9384 33.2592 32.6525 35.1232 29.7747C30.3791 34.2166 21.7659 33.4741 14.4144 23.7497V23.7511Z" fill="#003A8C"/>
<path d="M19.9003 18.1624C11.4604 5.36349 1.99988 12.1819 1.99988 20.0029C1.99656 22.5922 2.55489 25.1515 3.63638 27.5043C2.51332 22.2054 8.60318 18.1213 14.273 25.7253C22.5092 36.7685 30.5857 34.8254 35.1069 29.8009C36.5583 27.5725 37.4959 25.0493 37.8517 22.414V22.4487C35.9103 28.4695 27.3438 29.4488 19.9003 18.1624Z" fill="#0050B3"/>
<path d="M25.6847 12.4357C19.4173 2.09743 11.4696 3.03149 6.09469 8.56864C3.44128 11.7879 1.99328 15.8313 1.99989 20.0028C2.56566 12.4371 11.7164 7.16932 20.0007 20.0028C27.3643 31.4243 36.5384 28.4489 37.8432 22.4812V22.4239C37.9578 21.6113 38.0065 20.7908 37.9889 19.9703V19.1522C34.8 21.434 30.6062 20.5529 25.6832 12.435L25.6847 12.4357Z" fill="#096DD9"/>
<path d="M25.7278 14.2762C31.4676 23.5022 36.416 21.142 38.0009 19.1685C37.9371 17.7894 37.714 16.4222 37.3361 15.0943C34.6607 15.1516 34.0369 14.704 31.404 10.697C27.3806 4.53122 22.3119 0.369342 13.4568 3.23302C10.5865 4.35754 8.05111 6.19659 6.09116 8.57572C12.1761 2.97705 19.6422 4.49657 25.7278 14.2762Z" fill="#40A9FF"/>
<path d="M31.0114 11.4889C33.6359 15.5037 35.2335 15.708 37.336 15.095C34.6097 5.51969 24.6358 -0.0323048 15.0593 2.69349C14.5162 2.84763 13.982 3.02747 13.4568 3.23299C21.367 0.737706 26.9774 5.32312 31.0114 11.4889Z" fill="#91D5FF"/>
</svg>

Before

Width:  |  Height:  |  Size: 205 B

After

Width:  |  Height:  |  Size: 1.6 KiB

86
public/index.html Normal file → Executable file
View File

@ -1,43 +1,43 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>Dashboard | Techpal</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.svg" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.
Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>Scipaper</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.
You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.
To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>

211
public/locales/en/translation.json Normal file → Executable file
View File

@ -1,63 +1,148 @@
{
"serv": {
"goHome": "Home",
"noSuchPath": "We don't have this page"
},
"sidemenu": {
"dashboard": "Dashboard",
"account": "Account",
"security": "Security",
"services": "Services"
},
"dialogues": {
"confirmAction": {
"title": "Confirm action",
"description": "Enter your techpal account password",
"confirm": "Confirm"
}
},
"hellousr": "Hello, {{username}}",
"edit": "Edit",
"language": "Language",
"selectLanguage": "Select language",
"save": "Save",
"cancel": "Cancel",
"account": {
"info": "Personal information",
"mail": "Mail",
"connect": "Add account",
"connectedAccounts_one": "Connected account",
"connectedAccounts_other": "Connected accounts",
"settings": "Account settings"
},
"security": {
"password": {
"caption": "Password",
"twoFactor": "Two factor authentication (2FA)",
"description": "Keep your account secure by enabling 2FA via SMS or using a temporary one-time passcode (TOTP) from an authenticator app."
},
"activity": {
"caption": "Device activity"
}
},
"search": {
"label": "Search for something.."
},
"subscriptions": {
"subscribed": "Service have been connected"
},
"viewHistory": "View history",
"logOutEverywhere": "log out from all devices",
"back": "Back",
"logOut": "Log out",
"failures": {
"subscriptions": {
"failure": "Failed to connect service",
"exists": "Service have already been connected",
"confirmation": "Invalid confirmation information provided"
},
"services": {
"fork": "Failed to authenticate in service"
}
}
}
{
"serv": {
"goHome": "Home page",
"noSuchPath": "We don't have such a page"
},
"sidemenu": {
"dashboard": "Dashboard",
"account": "Account",
"security": "Security",
"services": "Services"
},
"dialogues": {
"confirmAction": {
"title": "Confirm action",
"description": "Enter your techpal account password",
"confirm": "Confirm"
}
},
"hellousr": "Hello, {{username}}",
"edit": "Edit",
"language": "Language",
"selectLanguage": "Select a language",
"save": "Save",
"cancel": "Cancel",
"account": {
"info": "Personal Information",
"mail": "Mail",
"connect": "Add Account",
"connectedAccounts_one": "Linked Account",
"connectedAccounts_other": "Linked Accounts",
"settings": "Account Settings"
},
"security": {
"password": {
"caption": "Password",
"twoFactor": "Two-factor authentication (2FA)",
"description": "Protect your account by enabling 2FA via SMS or using a temporary one-time password (OTP) from the authentication app."
},
"activity": {
"caption": "Device activity"
}
},
"search": {
"label": "We will find something.."
},
"subscriptions": {
"subscribed": "The service is attached to the account"
},
"viewHistory": "View history",
"logOutEverywhere": "Log out from all devices",
"back": "Back",
"logOut": "Exit",
"failures": {
"subscriptions": {
"failure": "Failed to attach the service to your account",
"exists": "The service was already attached to your account earlier",
"confirmation": "Invalid password"
},
"services": {
"fork": "Failed to perform authorization in the service"
}
},
"articlePage": {
"abstract": "Abstract",
"keywords": "Keywords",
"interactionButtons":{
"abstract": "Abstract",
"readFile": "Read File",
"download" : "Download",
"share" : "Share",
"cite" : "Cite",
"copied": "Copied"
}
},
"navbar": {
"createNew": "Create New",
"about": {
"navTitle": "About",
"aboutProject": "About Scipaper",
"contacts": "Contacts",
"help": "Help"
},
"library": {
"navTitle": "My library",
"publications": "Publications",
"favorites": "Favorites",
"collections": "Collections",
"recentViewed": "History"
},
"auth": {
"signIn": "Sign In",
"signUp": "Sign Up"
}
},
"footer": {
"accountSettings": "Account Settings",
"about": "About Scipaper",
"help": "Help",
"contactUs": "Contacts",
"allRightsReserved": "All rights reserved",
"termsOfUse": "Terms of Use",
"privacyPolicy": "Privacy Policy",
"coockiesPolicy": "coockies Usage Policy",
"supportedBy": "Created"
},
"mainPage": {
"title": "Scientific Library with Free Access",
"search": "Search",
"article_one": "Articles",
"article_few": "Articles",
"article_many": "Articles",
"advancedSearch": "Advanced search",
"featuredArticles": {
"title": "Featured articles",
"descriptionPart1": "Select the category of science you are interested in",
"descriptionPart2": "Scientific category",
"categories": {
"Medical": "Medical",
"TechnicsAndTechlonogies": "Technics and Technology",
"Fundamental": "Fundamental",
"Humanitarian": "Humanitarian",
"Agricultural": "Agricultural",
"Social": "Social"
}
},
"featuredAuthors": "Featured authors",
"more": "See More ",
"showAll": "Show all"
},
"searchResults": {
"title": "Search results",
"totalResults":"Total results",
"nothingFound": "Nothing found"
},
"filters": {
"authors":"Authors",
"publicationsType": "Publications Type",
"content":"Content",
"publisher":"Publisher",
"publicationTopic":"Publication Topic",
"appliedFitlers":"Applied Fitlers",
"clearAll":"Clear All",
"enterAuthorsName":"Enter Author Name",
"showAll":"Show All"
}
}

208
public/locales/ru/translation.json Normal file → Executable file
View File

@ -1,63 +1,145 @@
{
"serv": {
"goHome": "На главную",
"noSuchPath": "Такой страницы у нас нет"
},
"sidemenu": {
"dashboard": "Панель",
"account": "Аккаунт",
"security": "Безопасность",
"services": "Сервисы"
},
"dialogues": {
"confirmAction": {
"title": "Подтвердите действие",
"description": "Введите ваш пароль от аккаунта techpal",
"confirm": "Подтвердить"
}
},
"hellousr": "Привет, {{username}}",
"edit": "Изменить",
"language": "Язык",
"selectLanguage": "Выберите язык",
"save": "Сохранить",
"cancel": "Отмена",
"account": {
"info": "Личная информация",
"mail": "Почта",
"connect": "Добавить аккаунт",
"connectedAccounts_one": "Связанный аккаунт",
"connectedAccounts_other": "Связанные аккаунты",
"settings": "Настройки аккаунта"
},
"security": {
"password": {
"caption": "Пароль",
"twoFactor": "Двухфакторная аутентификация (2FA)",
"description": "Защитите свою учетную запись, включив 2FA с помощью SMS или используя временный одноразовый пароль (OTP) из приложения для проверки подлинности."
},
"activity": {
"caption": "Активность устройств"
}
},
"search": {
"label": "Найдём что-нибудь.."
},
"subscriptions": {
"subscribed": "Сервис прикреплён к аккаунту"
},
"viewHistory": "просмотреть историю",
"logOutEverywhere": "выйти со всех устройств",
"back": "Назад",
"logOut": "Выйти",
"failures": {
"subscriptions": {
"failure": "Не удалось прикрепить сервис к аккаунту",
"exists": "Сервис уже был прикреплён к вашему аккаунту ранее",
"confirmation": "Неверный пароль"
},
"services": {
"fork": "Не удалось выполнить авторизацию в сервисе"
}
}
}
{
"serv": {
"goHome": "На главную",
"noSuchPath": "Такой страницы у нас нет"
},
"sidemenu": {
"dashboard": "Панель",
"account": "Аккаунт",
"security": "Безопасность",
"services": "Сервисы"
},
"dialogues": {
"confirmAction": {
"title": "Подтвердите действие",
"description": "Введите ваш пароль от аккаунта techpal",
"confirm": "Подтвердить"
}
},
"hellousr": "Привет, {{username}}",
"edit": "Изменить",
"language": "Язык",
"selectLanguage": "Выберите язык",
"save": "Сохранить",
"cancel": "Отмена",
"account": {
"info": "Личная информация",
"mail": "Почта",
"connect": "Добавить аккаунт",
"connectedAccounts_one": "Связанный аккаунт",
"connectedAccounts_other": "Связанные аккаунты",
"settings": "Настройки аккаунта"
},
"security": {
"password": {
"caption": "Пароль",
"twoFactor": "Двухфакторная аутентификация (2FA)",
"description": "Защитите свою учетную запись, включив 2FA с помощью SMS или используя временный одноразовый пароль (OTP) из приложения для проверки подлинности."
},
"activity": {
"caption": "Активность устройств"
}
},
"search": {
"label": "Найдём что-нибудь.."
},
"subscriptions": {
"subscribed": "Сервис прикреплён к аккаунту"
},
"viewHistory": "просмотреть историю",
"logOutEverywhere": "выйти со всех устройств",
"back": "Назад",
"logOut": "Выйти",
"failures": {
"subscriptions": {
"failure": "Не удалось прикрепить сервис к аккаунту",
"exists": "Сервис уже был прикреплён к вашему аккаунту ранее",
"confirmation": "Неверный пароль"
},
"services": {
"fork": "Не удалось выполнить авторизацию в сервисе"
}
},
"articlePage": {
"abstract": "Введение",
"keywords": "Ключевые слова",
"interactionButtons":{
"abstract": "Развернуть",
"readFile": "Читать",
"download" : "Скачать",
"share" : "Поделиться",
"cite" : "Цитировать",
"copied": "Скопировано"
}
},
"navbar": {
"createNew": "Создать статью",
"about": {
"navTitle": "О проекте",
"aboutProject": "О Scipaper",
"contacts": "Контакты",
"help": "Помощь"
},
"library": {
"navTitle": "Моя библиотека",
"publications": "Публикации",
"favorites": "Избранное",
"collections": "Коллекции",
"recentViewed": "История"
},
"auth": {
"signIn": "Вход",
"signUp": "Регистрация"
}
},
"footer": {
"accountSettings": "Настройки аккаунта",
"about": "О scipaper",
"help": "Помощь",
"contactUs": "Контакты",
"allRightsReserved": "Все права защищены",
"termsOfUse": "Правила использования",
"privacyPolicy": "Политика конфиденциальности",
"coockiesPolicy": "Политика использования coockies",
"supportedBy": "Создано"
},
"mainPage": {
"title": "Библиотека научных статей с бесплатным доступом",
"search": "Поиск",
"article_one": "статьи",
"article_few": "статей",
"article_many": "статей",
"advancedSearch": "Расширенный поиск",
"featuredArticles": {
"title": "Популярные статьи",
"descriptionPart1": "Выберете интересующую вас ",
"descriptionPart2": "научную категорию",
"categories": {
"Medical": "Медицина",
"TechnicsAndTechlonogies": "Техника и технологии",
"Fundamental": "Естественые",
"Humanitarian": "Гуманитарные",
"Agricultural": "Аuрокультурa",
"Social": "Социальные"
}
},
"featuredAuthors": "Популярные авторы",
"more": "Больше",
"showAll": "Показать все"
},
"searchResults": {
"title": "Результаты поиска",
"totalResults":"Всего найдено",
"nothingFound": "Ничего не найдено"
},
"filters": {
"authors":"Авторы",
"publicationsType": "Публикации",
"publisher":"Издатель",
"publicationTopic":"Тема публикации",
"appliedFitlers":"Фильтры",
"clearAll":"Очистить всё",
"enterAuthorsName":"Введите имя автора",
"showAll":"Показать все"
}
}

0
public/logo192.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

0
public/logo512.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 9.4 KiB

After

Width:  |  Height:  |  Size: 9.4 KiB

50
public/manifest.json Normal file → Executable file
View File

@ -1,25 +1,25 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}
{
"short_name": "React App",
"name": "Create React App Sample",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
"display": "standalone",
"theme_color": "#000000",
"background_color": "#ffffff"
}

6
public/robots.txt Normal file → Executable file
View File

@ -1,3 +1,3 @@
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:
# https://www.robotstxt.org/robotstxt.html
User-agent: *
Disallow:

23
src/.storybook/main.js Executable file
View File

@ -0,0 +1,23 @@
module.exports = {
stories: ['../**/*.stories.mdx', '../**/*.stories.@(js|jsx|ts|tsx)'],
/** Expose public folder to storybook as static */
staticDirs: ['../public'],
addons: [
'@storybook/addon-links',
'@storybook/addon-essentials',
'@storybook/addon-interactions',
'storybook-css-modules-preset',
{
name: '@storybook/addon-postcss',
options: {
postcssLoaderOptions: {
implementation: require('postcss'),
},
},
},
],
framework: '@storybook/react',
core: {
builder: '@storybook/builder-webpack5',
},
};

3
src/.storybook/preview.js Executable file
View File

@ -0,0 +1,3 @@
export const parameters = {
actions: { argTypesRegex: "^on[A-Z].*" },
}

76
src/App.css Normal file → Executable file
View File

@ -1,38 +1,38 @@
.App {
text-align: center;
}
.App-logo {
height: 40vmin;
pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
.App-logo {
animation: App-logo-spin infinite 20s linear;
}
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}
.App-link {
color: #61dafb;
}
@keyframes App-logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.App {
text-align: center;
}
.App-logo {
height: 40vmin;
pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
.App-logo {
animation: App-logo-spin infinite 20s linear;
}
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}
.App-link {
color: #61dafb;
}
@keyframes App-logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}

18
src/App.test.tsx Normal file → Executable file
View File

@ -1,9 +1,9 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
import App from './App';
test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();
});
import React from 'react';
import { render, screen } from '@testing-library/react';
import App from './App';
test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();
});

36
src/App.tsx Normal file → Executable file
View File

@ -1,18 +1,18 @@
/* -------------------------------------------------------------------------- */
/* Libraries */
/* -------------------------------------------------------------------------- */
import React from "react";
/* -------------------------------------------------------------------------- */
/* Application root component */
/* -------------------------------------------------------------------------- */
/**
* Application root component
* @return {JSX.Element}
*/
function App() {
return (
<div>Hello world!</div>
);
}
export default App;
/* -------------------------------------------------------------------------- */
/* Libraries */
/* -------------------------------------------------------------------------- */
import React from "react";
import MainPage from "pages/MainPage";
/* -------------------------------------------------------------------------- */
/* Application root component */
/* -------------------------------------------------------------------------- */
/**
* Application root component
* @return {JSX.Element}
*/
function App() {
return <MainPage />;
}
export default App;

View File

@ -0,0 +1,24 @@
import type { ArticleStore } from "../domain/articleStore";
import { getArticleUseCase } from "../useCases/getArticleUseCase";
import { useCallback, useEffect } from "react";
function useArticleViewModel(store: ArticleStore) {
const _getArticle = useCallback(
(id: string) => getArticleUseCase(store.getArticle, store.setArticle, id),
[store.getArticle, store.setArticle]
);
useEffect(() => {
if (store.article != undefined) {
_getArticle(store.article.id);
}
}, [store.article?.id]);
return {
article: store.article,
shouldShowLoading: typeof store.article === "undefined" || store.isLoading,
hasError: store.hasError,
};
}
export { useArticleViewModel };

View File

@ -0,0 +1,36 @@
import axios from "axios";
import { Article } from "../domain/articleEntity";
import { create } from "../domain/articleModel";
import { FetchArticleByIdDTO } from "./dto/fetch_article_by_id_dto";
import Failure from "core/failure";
import { integratorApiClient } from "core/httpClient";
const articleEndpoint = "/papers/"
async function getArticle(id: string): Promise<Article> {
try {
const response = await integratorApiClient.get<FetchArticleByIdDTO>(
// `https://run.mocky.io/v3/62cd4581-d864-4d46-b1d6-02b45b5d1994/${id}`
// `https://jsonplaceholder.typicode.com/posts/${id}`
// `https://run.mocky.io/v3/066be3d8-0568-439a-8b20-062deed49a97`
articleEndpoint + id
);
const dto = response.data;
return create({
id: dto.id,
topic: [dto.topic],
title: dto.title,
authors: dto.authors,
tags: dto.tags,
summary: dto.summary,
content: dto.content,
});
} catch (reason) {
if (axios.isAxiosError(reason)) {
throw Failure.fromReason(reason, "failures.services.load");
}
throw reason;
}
}
export { getArticle };

View File

@ -0,0 +1,4 @@
export const SET_ARTICLE = "SET_ARTICLE";
export const GET_ARTICLE = "GET_ARTICLE";
export const GET_ARTICLE_SUCCESS = "GET_ARTICLE.success";
export const GET_ARTICLE_FAILURE = "GET_ARTICLE.failure";

View File

@ -0,0 +1,23 @@
import type { Article } from "../domain/articleEntity";
import { getArticle as getArticleAPI } from "./articleAPIService";
import * as actionTypes from "./articleActionTypes";
import { dispatchStatus } from "../../store/index";
const setArticleAction = (article: Article) => (dispatch: any) =>
dispatch({ type: actionTypes.SET_ARTICLE, article });
const getArticleAction = (id: string) => (dispatch: any) => {
dispatch({ type: actionTypes.GET_ARTICLE });
return getArticleAPI(id)
.then((article) => {
dispatchStatus(actionTypes.GET_ARTICLE, ".success", article)(dispatch);
return article;
})
.catch((reason) => {
dispatchStatus(actionTypes.GET_ARTICLE, ".failure", reason)(dispatch);
return reason;
});
};
export { setArticleAction, getArticleAction };

View File

@ -0,0 +1,39 @@
import React, { useCallback, useState } from "react";
import { useDispatch } from "react-redux";
import { ArticleStore } from "../domain/articleStore";
import type { Article } from "../domain/articleEntity";
import { getArticle as getArticleAPI } from "./articleAPIService";
const useArticleCommonStore = (): ArticleStore => {
const [isLoading, setLoading] = useState<boolean>(false);
const [hasError, setError] = useState<boolean>(false);
const [article, setArticleState] = useState<Article | undefined>();
const dispatch = useDispatch();
const getArticle = useCallback(
async (id: string) => {
setLoading(true);
try {
const article = await getArticleAPI(id);
setArticleState(article);
setLoading(false);
return article;
} catch (error) {
setError(true);
return null;
}
},
[dispatch]
);
return {
article: article,
isLoading,
hasError,
setArticle: setArticleState,
getArticle,
};
};
export { useArticleCommonStore };

View File

@ -0,0 +1,32 @@
import { AnyAction } from "@reduxjs/toolkit";
import type { ArticleStore } from "../domain/articleStore";
import * as actionTypes from "./articleActionTypes";
type ArticleStoreState = Omit<ArticleStore, "getArticle" | "setArticle">;
const INITIAL_STATE: ArticleStoreState = {
article: undefined,
isLoading: false,
hasError: false,
};
const articleReducer = (
state: ArticleStoreState = INITIAL_STATE,
action: AnyAction
): ArticleStoreState => {
switch (action.type) {
case actionTypes.SET_ARTICLE:
return { ...state, article: action.article };
case actionTypes.GET_ARTICLE:
return { ...state, isLoading: true };
case actionTypes.GET_ARTICLE_SUCCESS:
return { ...state, isLoading: false, article: action.payload };
case actionTypes.GET_ARTICLE_FAILURE:
return { ...state, hasError: true, isLoading: false };
default:
return state;
}
};
export { articleReducer };
export type { ArticleStoreState };

View File

@ -0,0 +1,35 @@
import React, { useCallback, useState } from "react";
import { useDispatch, useSelector } from "react-redux";
import { ArticleStore } from "../domain/articleStore";
import type { Article } from "../domain/articleEntity";
import type { ArticleStoreState } from "../data/articleReducer";
import { getArticleAction, setArticleAction } from "./articleActions";
import { RootState, useAppSelector } from "store";
const articleSelector = (state: RootState): ArticleStoreState => state.article;
const useArticleStore = (): ArticleStore => {
const { isLoading, article, hasError } = useAppSelector(articleSelector);
const dispatch = useDispatch();
const setArticle = useCallback(
(article: Article) => setArticleAction(article)(dispatch),
[dispatch]
);
const getArticle = useCallback(
(id: string) => getArticleAction(id)(dispatch),
[dispatch]
);
return {
article: article,
isLoading,
hasError,
setArticle,
getArticle,
};
};
export { useArticleStore };

View File

@ -0,0 +1,9 @@
export interface FetchArticleByIdDTO {
id: string;
topic: string;
title: string;
authors: string[];
tags: string[];
summary: string;
content: string;
}

View File

@ -0,0 +1,9 @@
export interface Article {
id: string;
title: string;
content: string;
topic?: string[];
authors?: string[];
tags?: string[];
summary?: string;
}

View File

@ -0,0 +1,14 @@
import { CreateArticleParams } from "article/useCases/params/create_article_params";
import { Article } from "./articleEntity";
const create = (props: CreateArticleParams): Article => ({
id: props.id,
topic: props.topic,
title: props.title,
authors: props.authors,
tags: props.tags,
summary: props.summary,
content: props.content,
});
export { create };

View File

@ -0,0 +1,13 @@
import { Article } from './articleEntity';
interface ArticleStore {
// State
article: Article | undefined;
isLoading: boolean;
hasError: boolean;
// Actions
setArticle(article?: Article): void;
getArticle(identifier: string): Promise<Article | null>;
}
export type { ArticleStore };

View File

@ -0,0 +1,16 @@
import { Article } from "article/domain/articleEntity";
import type { ArticleStore } from "../domain/articleStore";
const getArticleUseCase = async (
getArticle: ArticleStore["getArticle"],
setArticle: ArticleStore["setArticle"],
id: Article["id"]
): Promise<Article | null> => {
const article = await getArticle(id);
if (article) {
await setArticle(article);
}
return article;
};
export { getArticleUseCase };

View File

@ -0,0 +1,9 @@
export interface CreateArticleParams {
id: string;
topic: string[];
title: string;
authors: string[];
tags: string[];
summary: string;
content: string;
}

BIN
src/assets/fonts/Inter-Black.ttf Executable file

Binary file not shown.

BIN
src/assets/fonts/Inter-Bold.ttf Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
src/assets/fonts/Inter-Light.ttf Executable file

Binary file not shown.

BIN
src/assets/fonts/Inter-Medium.ttf Executable file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
src/assets/fonts/Inter-Thin.ttf Executable file

Binary file not shown.

0
src/assets/fonts/Poppins-Bold.eot Normal file → Executable file
View File

0
src/assets/fonts/Poppins-Bold.ttf Normal file → Executable file
View File

0
src/assets/fonts/Poppins-Bold.woff2 Normal file → Executable file
View File

0
src/assets/fonts/Poppins-Medium.eot Normal file → Executable file
View File

0
src/assets/fonts/Poppins-Medium.ttf Normal file → Executable file
View File

0
src/assets/fonts/Poppins-Medium.woff2 Normal file → Executable file
View File

0
src/assets/fonts/Poppins-Regular.eot Normal file → Executable file
View File

0
src/assets/fonts/Poppins-Regular.ttf Normal file → Executable file
View File

0
src/assets/fonts/Poppins-Regular.woff2 Normal file → Executable file
View File

0
src/assets/fonts/Poppins-Thin.eot Normal file → Executable file
View File

0
src/assets/fonts/Poppins-Thin.ttf Normal file → Executable file
View File

0
src/assets/fonts/Poppins-Thin.woff2 Normal file → Executable file
View File

File diff suppressed because one or more lines are too long

View File

@ -1,4 +0,0 @@
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 0.707107 0.707107 -0.707107 10.2001 16)"/>
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 -0.707107 -0.707107 -0.707107 12 17.8)"/>
</svg>

Before

Width:  |  Height:  |  Size: 323 B

View File

@ -1,4 +0,0 @@
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(-0.707107 0.707107 0.707107 0.707107 8.79997 10.2001)"/>
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 0.707107 0.707107 -0.707107 6.99998 12)"/>
</svg>

Before

Width:  |  Height:  |  Size: 329 B

View File

@ -1,5 +0,0 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17.0689 21H6.93112C6.40648 21 5.97104 20.5946 5.93366 20.0712L5.07652 8.07125C5.03517 7.49238 5.49363 7 6.07398 7H17.926C18.5064 7 18.9648 7.49238 18.9235 8.07125L18.0663 20.0712C18.029 20.5946 17.5935 21 17.0689 21Z" stroke-width="2"/>
<path d="M3 7H21" stroke-width="2" stroke-linecap="round"/>
<path d="M7 7V4C7 3.44772 7.44772 3 8 3H16C16.5523 3 17 3.44772 17 4V7" stroke-width="2" stroke-linecap="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 501 B

View File

@ -1,5 +0,0 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M12 22C17.5228 22 22 17.5228 22 12C22 6.47715 17.5228 2 12 2C6.47715 2 2 6.47715 2 12C2 17.5228 6.47715 22 12 22Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12 8V12" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12 16H12.01" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 444 B

View File

@ -1,7 +0,0 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4 20V4C4 2.89543 4.89543 2 6 2H13.1716C13.702 2 14.2107 2.21071 14.5858 2.58579L19.4142 7.41421C19.7893 7.78929 20 8.29799 20 8.82843V20C20 21.1046 19.1046 22 18 22H6C4.89543 22 4 21.1046 4 20Z" stroke-width="2" stroke-linecap="round"/>
<path d="M8 14H16" stroke-width="2" stroke-linecap="round"/>
<path d="M14 8L19 8" stroke-width="2" stroke-linecap="round"/>
<path d="M14 3V8" stroke-width="2" stroke-linecap="round"/>
<path d="M8 18H16" stroke-width="2" stroke-linecap="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 572 B

View File

@ -1,5 +0,0 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M20 19H4C3.44772 19 3 18.5523 3 18V6C3 5.44772 3.44772 5 4 5H8.58579C8.851 5 9.10536 5.10536 9.29289 5.29289L11.7071 7.70711C11.8946 7.89464 12.149 8 12.4142 8H20C20.5523 8 21 8.44772 21 9V18C21 18.5523 20.5523 19 20 19Z" fill="none" stroke-width="2"/>
<path d="M13 11C13 10.4477 12.5523 10 12 10C11.4477 10 11 10.4477 11 11H13ZM11 16C11 16.5523 11.4477 17 12 17C12.5523 17 13 16.5523 13 16H11ZM11 11V16H13V11H11Z" stroke="none" />
<path d="M14.5 14.5C15.0523 14.5 15.5 14.0523 15.5 13.5C15.5 12.9477 15.0523 12.5 14.5 12.5L14.5 14.5ZM9.5 12.5C8.94772 12.5 8.5 12.9477 8.5 13.5C8.5 14.0523 8.94772 14.5 9.5 14.5L9.5 12.5ZM14.5 12.5L9.5 12.5L9.5 14.5L14.5 14.5L14.5 12.5Z" stroke="none" />
</svg>

Before

Width:  |  Height:  |  Size: 778 B

View File

@ -1,6 +0,0 @@
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.704 3.70394C15.0989 2.09889 12.4966 2.09889 10.8915 3.70395C9.28647 5.309 9.28647 7.91132 10.8915 9.51638L14.379 13.0038C15.984 14.6089 18.5864 14.6089 20.1914 13.0038C21.7965 11.3988 21.7965 8.79647 20.1914 7.19141L16.704 3.70394ZM15.3387 5.28955C14.5485 4.49935 13.2673 4.49935 12.4771 5.28955C11.6869 6.07975 11.6869 7.36091 12.4771 8.15111L15.7442 11.4182C16.5344 12.2084 17.8156 12.2084 18.6058 11.4182C19.396 10.628 19.396 9.34689 18.6058 8.55669L15.3387 5.28955Z" />
<path d="M12.7875 11.2568L4.59995 19.4443" stroke-width="2" stroke-linecap="round"/>
<path d="M6.42353 17.6207L8.8798 20.077" stroke-width="2" stroke-linecap="round"/>
<path d="M9.25196 14.7923L12.527 18.0673" stroke-width="2" stroke-linecap="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 875 B

View File

@ -1,8 +0,0 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="2" y="3" width="4" height="4" rx="2"/>
<rect x="9" y="4" width="13" height="2" rx="1"/>
<rect x="2" y="10" width="4" height="4" rx="2"/>
<rect x="9" y="11" width="13" height="2" rx="1"/>
<rect x="2" y="17" width="4" height="4" rx="2"/>
<rect x="9" y="18" width="13" height="2" rx="1"/>
</svg>

Before

Width:  |  Height:  |  Size: 375 B

View File

@ -1,5 +0,0 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="21" y="10" width="4" height="4" rx="2" transform="rotate(90 21 10)" />
<rect x="14" y="10" width="4" height="4" rx="2" transform="rotate(90 14 10)" />
<rect x="7" y="10" width="4" height="4" rx="2" transform="rotate(90 7 10)" />
</svg>

Before

Width:  |  Height:  |  Size: 318 B

View File

@ -1,5 +0,0 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M9 18H5C3.89543 18 3 17.1046 3 16V11C3 9.89543 3.89543 9 5 9H14.25H19C20.1046 9 21 9.89543 21 11V11.7V16C21 17.1046 20.1046 18 19 18H15" stroke-width="2" stroke-linecap="round"/>
<path d="M7 9V5C7 3.89543 7.89543 3 9 3H13.25H15.2C16.1941 3 17 3.80589 17 4.8V9H7Z" stroke-width="2" stroke-linecap="round"/>
<path d="M9 20V15C9 14.4477 9.44772 14 10 14H12.75H14C14.5523 14 15 14.4477 15 15V16.1V20C15 20.5523 14.5523 21 14 21H10C9.44772 21 9 20.5523 9 20Z" stroke-width="2" stroke-linecap="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 587 B

View File

@ -1,3 +0,0 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.5 2C15.567 2 14 3.567 14 5.5C14 5.76819 14.0302 6.02934 14.0873 6.28023L8.87961 9.2237C8.15209 8.46927 7.13084 8 6 8C3.79086 8 2 9.79086 2 12C2 14.2091 3.79086 16 6 16C7.13084 16 8.15208 15.5307 8.87961 14.7763L14.0873 17.7198C14.0302 17.9707 14 18.2318 14 18.5C14 20.433 15.567 22 17.5 22C19.433 22 21 20.433 21 18.5C21 16.567 19.433 15 17.5 15C16.5572 15 15.7014 15.3728 15.0721 15.979L9.86462 13.0357C9.95292 12.7054 10 12.3582 10 12C10 11.6418 9.95292 11.2946 9.86462 10.9643L15.0721 8.02097C15.7014 8.6272 16.5572 9 17.5 9C19.433 9 21 7.433 21 5.5C21 3.567 19.433 2 17.5 2ZM6 10C4.89543 10 4 10.8954 4 12C4 13.1046 4.89543 14 6 14C7.10457 14 8 13.1046 8 12C8 10.8954 7.10457 10 6 10ZM16 5.5C16 4.67157 16.6716 4 17.5 4C18.3284 4 19 4.67157 19 5.5C19 6.32843 18.3284 7 17.5 7C16.6716 7 16 6.32843 16 5.5ZM17.5 17C16.6716 17 16 17.6716 16 18.5C16 19.3284 16.6716 20 17.5 20C18.3284 20 19 19.3284 19 18.5C19 17.6716 18.3284 17 17.5 17Z"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

View File

@ -0,0 +1,3 @@
<svg viewBox="0 0 40 40" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M16.5495 18.1523C20.0358 21.1083 21.1165 25.66 19.7396 29.9152H30.4102C31.4258 26.9366 34.4857 25.2281 37.9199 26.6722L39.1536 19.4836C39.362 18.2715 38.138 17.2497 36.8978 17.2497H30.0098V11.8372C30.0098 11.415 29.668 11.0636 29.2448 11.0442V8.24616H28.1901V11.0442C27.7767 11.0733 27.4479 11.4182 27.4479 11.834V17.2497H22.0703C23.099 12.4304 21.8978 10.7831 21.2044 5.88004C20.931 5.1773 20.3939 5.01934 19.7884 5H7.25586C6.6276 5.00645 6.19141 5.31591 5.96354 5.96063L5.11393 14.068L3.42122 16.0473C2.68229 16.8951 2.89714 16.6984 3.57747 17.7106C3.69466 17.6268 3.81185 17.543 3.93229 17.4656C7.49349 15.1576 13.1966 15.5734 16.5495 18.1523ZM29.0951 6.74397C29.1439 6.69561 29.222 6.69239 29.2741 6.74074C29.3229 6.7891 29.3262 6.86646 29.2773 6.91804C29.1829 7.01475 29.2188 7.15336 29.2513 7.28231C29.3099 7.50151 29.362 7.70137 29.0951 7.85288C29.0332 7.88834 28.9583 7.86578 28.9225 7.80775C28.8867 7.74973 28.9128 7.67236 28.9714 7.6369C29.069 7.5821 29.0397 7.46928 29.0072 7.34678C28.9583 7.15336 28.903 6.94383 29.0951 6.74397ZM28.3333 6.74397C28.3822 6.69561 28.4603 6.69239 28.5124 6.74074C28.5612 6.7891 28.5645 6.86646 28.5156 6.91804C28.4212 7.01475 28.457 7.15336 28.4896 7.28231C28.5482 7.50151 28.6003 7.70137 28.3333 7.85288C28.2715 7.88834 28.1966 7.86578 28.1608 7.80775C28.125 7.7465 28.1478 7.67236 28.2064 7.6369C28.304 7.5821 28.2747 7.46928 28.2422 7.34678C28.1934 7.15336 28.138 6.94383 28.3333 6.74397ZM14.4694 7.68203V13.6618C15.8659 13.9745 17.2461 14.4032 18.6035 14.9512C19.3132 15.2381 20.1497 14.313 20 13.5683L19.0885 9.06173C18.9388 8.31708 18.4603 7.67881 17.6921 7.67881H14.4694V7.68203ZM13.0827 13.3878V7.68203H9.63216C8.86393 7.68203 8.41146 8.32353 8.23568 9.06496L7.63021 11.6503C7.45768 12.3917 8.25846 13.0203 9.02669 13.0332C10.3939 13.0461 11.7448 13.1654 13.0827 13.3878ZM35.7585 27.2428C38.099 27.2428 40 29.1222 40 31.4432C40 33.7609 38.1022 35.6403 35.7585 35.6403C33.4147 35.6403 31.5202 33.7609 31.5202 31.4432C31.5202 29.1222 33.418 27.2428 35.7585 27.2428ZM9.05925 17.8267C14.0625 17.8267 18.1185 21.8433 18.1185 26.798C18.1185 31.7526 14.0625 35.7692 9.05925 35.7692C4.05599 35.7692 0 31.7526 0 26.798C0 21.8433 4.05599 17.8267 9.05925 17.8267ZM9.05925 21.9755C11.748 21.9755 13.929 24.1353 13.929 26.798C13.929 29.4607 11.748 31.6205 9.05925 31.6205C6.37044 31.6205 4.18945 29.4607 4.18945 26.798C4.18945 24.1353 6.37044 21.9755 9.05925 21.9755ZM35.7585 29.3124C36.9466 29.3124 37.9069 30.2666 37.9069 31.4399C37.9069 32.6166 36.9434 33.5675 35.7585 33.5675C34.5703 33.5675 33.61 32.6133 33.61 31.4399C33.61 30.2666 34.5736 29.3124 35.7585 29.3124ZM29.4564 19.8737H34.8112L34.6908 20.4862H29.3522L29.4564 19.8737ZM27.5781 23.1746H34.8112L34.6908 23.7871H27.4707L27.5781 23.1746ZM28.2454 21.5242H34.8145L34.694 22.1366H28.138L28.2454 21.5242Z" fill="#8C8C8C"/>
</svg>

After

Width:  |  Height:  |  Size: 2.9 KiB

6
src/assets/svg/arrow-big-right.svg Normal file → Executable file
View File

@ -1,3 +1,3 @@
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M3 10.5C2.44772 10.5 2 10.9477 2 11.5C2 12.0523 2.44772 12.5 3 12.5V10.5ZM20.7071 12.2071C21.0976 11.8166 21.0976 11.1834 20.7071 10.7929L14.3431 4.42893C13.9526 4.03841 13.3195 4.03841 12.9289 4.42893C12.5384 4.81946 12.5384 5.45262 12.9289 5.84315L18.5858 11.5L12.9289 17.1569C12.5384 17.5474 12.5384 18.1805 12.9289 18.5711C13.3195 18.9616 13.9526 18.9616 14.3431 18.5711L20.7071 12.2071ZM3 12.5H20V10.5H3V12.5Z"/>
</svg>
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M3 10.5C2.44772 10.5 2 10.9477 2 11.5C2 12.0523 2.44772 12.5 3 12.5V10.5ZM20.7071 12.2071C21.0976 11.8166 21.0976 11.1834 20.7071 10.7929L14.3431 4.42893C13.9526 4.03841 13.3195 4.03841 12.9289 4.42893C12.5384 4.81946 12.5384 5.45262 12.9289 5.84315L18.5858 11.5L12.9289 17.1569C12.5384 17.5474 12.5384 18.1805 12.9289 18.5711C13.3195 18.9616 13.9526 18.9616 14.3431 18.5711L20.7071 12.2071ZM3 12.5H20V10.5H3V12.5Z" stroke="none" />
</svg>

Before

Width:  |  Height:  |  Size: 507 B

After

Width:  |  Height:  |  Size: 513 B

4
src/assets/svg/arrow-down.svg Executable file
View File

@ -0,0 +1,4 @@
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 0.707107 0.707107 -0.707107 10.2001 16)" stroke="none" />
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 -0.707107 -0.707107 -0.707107 12 17.8)" stroke="none" />
</svg>

After

Width:  |  Height:  |  Size: 345 B

4
src/assets/svg/arrow-left.svg Executable file
View File

@ -0,0 +1,4 @@
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(-0.707107 0.707107 0.707107 0.707107 8.80005 10.2001)" stroke="none" />
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 0.707107 0.707107 -0.707107 7 12)" stroke="none" />
</svg>

After

Width:  |  Height:  |  Size: 345 B

8
src/assets/svg/arrow-right.svg Normal file → Executable file
View File

@ -1,4 +1,4 @@
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<rect x="16" y="10.2001" width="2.54558" height="12.7279" rx="1.27279" transform="rotate(45 16 10.2001)"/>
<rect x="17.8" y="12" width="2.54558" height="12.7279" rx="1.27279" transform="rotate(135 17.8 12)"/>
</svg>
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<rect x="16" y="10.2001" width="2.54558" height="12.7279" rx="1.27279" transform="rotate(45 16 10.2001)" stroke="none" />
<rect x="17.8" y="12" width="2.54558" height="12.7279" rx="1.27279" transform="rotate(135 17.8 12)" stroke="none" />
</svg>

Before

Width:  |  Height:  |  Size: 289 B

After

Width:  |  Height:  |  Size: 311 B

4
src/assets/svg/arrow-up.svg Executable file
View File

@ -0,0 +1,4 @@
<svg viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<rect x="10.2001" y="8.79999" width="2.54558" height="12.7279" rx="1.27279" transform="rotate(-45 10.2001 8.79999)" stroke="none" />
<rect x="12" y="7" width="2.54558" height="12.7279" rx="1.27279" transform="rotate(45 12 7)" stroke="none" />
</svg>

After

Width:  |  Height:  |  Size: 315 B

7
src/assets/svg/background.svg Executable file
View File

@ -0,0 +1,7 @@
<svg width="1187" height="1234" viewBox="0 0 1187 1234" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M408.998 745.256C206.829 467.159 -0.745132 678.488 53.4493 872.858C189.728 1182.79 541.828 1319.16 839.898 1177.41C942.643 1128.57 1029.84 1050.24 1091.25 951.643C934.96 1103.83 651.196 1078.4 408.998 745.208V745.256Z" fill="#F0F0F0"/>
<path d="M589.732 553.768C311.677 115.242 0.000483082 348.859 0.000483082 616.83C-0.108684 705.549 18.2856 793.237 53.9153 873.85C16.9159 692.296 217.547 552.363 404.339 812.896C675.684 1191.27 941.763 1124.69 1090.72 952.538C1138.53 876.188 1169.42 789.736 1181.14 699.443V700.63C1117.18 906.92 834.959 940.474 589.732 553.768Z" fill="#F5F5F5"/>
<path d="M780.298 357.556C573.819 3.33809 311.98 35.3415 134.904 225.06C47.4877 335.363 -0.21692 473.901 0.000741558 616.829C18.6403 357.604 320.112 177.116 593.041 616.829C835.635 1008.16 1137.87 906.216 1180.86 701.744V699.781C1184.64 671.939 1186.24 643.826 1185.66 615.715V587.685C1080.6 665.864 942.439 635.678 780.252 357.532L780.298 357.556Z" fill="#FAFAFA"/>
<path d="M781.72 420.618C970.818 736.727 1133.84 655.859 1186.06 588.242C1183.96 540.989 1176.61 494.146 1164.16 448.648C1076.01 450.611 1055.46 435.275 968.721 297.983C836.17 86.7264 669.183 -55.8716 377.451 42.2463C282.888 80.7758 199.359 143.787 134.788 225.303C335.256 33.4762 581.228 85.5393 781.72 420.618Z" fill="white"/>
<path d="M955.787 325.116C1042.25 462.675 1094.88 469.676 1164.15 448.672C1074.33 120.595 745.743 -69.6327 430.245 23.761C412.352 29.0424 394.753 35.204 377.449 42.2459C638.053 -43.2499 822.887 113.86 955.787 325.116Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -0,0 +1,5 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18 8C18 6.4087 17.3679 4.88258 16.2426 3.75736C15.1174 2.63214 13.5913 2 12 2C10.4087 2 8.88258 2.63214 7.75736 3.75736C6.63214 4.88258 6 6.4087 6 8C6 15 3 17 3 17H21C21 17 18 15 18 8Z" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M13.73 21C13.5542 21.3031 13.3018 21.5547 12.9982 21.7295C12.6946 21.9044 12.3504 21.9965 12 21.9965C11.6496 21.9965 11.3054 21.9044 11.0018 21.7295C10.6981 21.5547 10.4458 21.3031 10.27 21" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<rect x="13" y="1" width="10" height="10" rx="5" stroke="white" fill="#FF4D4F" stroke-width="2"/>
</svg>

After

Width:  |  Height:  |  Size: 735 B

4
src/assets/svg/bell.svg Executable file
View File

@ -0,0 +1,4 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M18 8C18 6.4087 17.3679 4.88258 16.2426 3.75736C15.1174 2.63214 13.5913 2 12 2C10.4087 2 8.88258 2.63214 7.75736 3.75736C6.63214 4.88258 6 6.4087 6 8C6 15 3 17 3 17H21C21 17 18 15 18 8Z" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M13.73 21C13.5542 21.3031 13.3018 21.5547 12.9982 21.7295C12.6946 21.9044 12.3504 21.9965 12 21.9965C11.6496 21.9965 11.3054 21.9044 11.0018 21.7295C10.6981 21.5547 10.4458 21.3031 10.27 21" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>

After

Width:  |  Height:  |  Size: 637 B

View File

@ -1,3 +1,3 @@
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M6 21.3242V4C6 3.44772 6.44772 3 7 3H17C17.5523 3 18 3.44771 18 4V21.3242C18 21.5563 17.7112 21.6631 17.5602 21.4869L12.7593 15.8858C12.3602 15.4202 11.6398 15.4202 11.2407 15.8858L6.43981 21.4869C6.28876 21.6631 6 21.5563 6 21.3242Z" stroke-width="2"/>
</svg>
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M6 21.3242V4C6 3.44772 6.44772 3 7 3H17C17.5523 3 18 3.44771 18 4V21.3242C18 21.5563 17.7112 21.6631 17.5602 21.4869L12.7593 15.8858C12.3602 15.4202 11.6398 15.4202 11.2407 15.8858L6.43981 21.4869C6.28876 21.6631 6 21.5563 6 21.3242Z" stroke-width="2" />
</svg>

Before

Width:  |  Height:  |  Size: 343 B

After

Width:  |  Height:  |  Size: 347 B

View File

@ -0,0 +1,3 @@
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="M6 21.3242V4C6 3.44772 6.44772 3 7 3H17C17.5523 3 18 3.44771 18 4V21.3242C18 21.5563 17.7112 21.6631 17.5602 21.4869L12.7593 15.8858C12.3602 15.4202 11.6398 15.4202 11.2407 15.8858L6.43981 21.4869C6.28876 21.6631 6 21.5563 6 21.3242Z" stroke-width="2" fill="none" />
</svg>

After

Width:  |  Height:  |  Size: 359 B

View File

@ -1,3 +1,3 @@
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.1315 4.6875H2.86897C2.56116 4.6875 2.38929 5.0125 2.57991 5.23438L7.71116 11.1844C7.85804 11.3547 8.14085 11.3547 8.28929 11.1844L13.4205 5.23438C13.6112 5.0125 13.4393 4.6875 13.1315 4.6875Z"/>
</svg>
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.1315 4.6875H2.86897C2.56116 4.6875 2.38929 5.0125 2.57991 5.23438L7.71116 11.1844C7.85804 11.3547 8.14085 11.3547 8.28929 11.1844L13.4205 5.23438C13.6112 5.0125 13.4393 4.6875 13.1315 4.6875Z" stroke="none" />
</svg>

Before

Width:  |  Height:  |  Size: 288 B

After

Width:  |  Height:  |  Size: 306 B

View File

@ -1,3 +1,3 @@
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3125 13.131L11.3125 2.86855C11.3125 2.56073 10.9875 2.38886 10.7657 2.57948L4.81566 7.71073C4.64534 7.85761 4.64534 8.14042 4.81566 8.28886L10.7657 13.4201C10.9875 13.6107 11.3125 13.4389 11.3125 13.131Z" />
</svg>
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M11.3125 13.131L11.3125 2.86855C11.3125 2.56073 10.9875 2.38886 10.7657 2.57948L4.81566 7.71073C4.64534 7.85761 4.64534 8.14042 4.81566 8.28886L10.7657 13.4201C10.9875 13.6107 11.3125 13.4389 11.3125 13.131Z" stroke="none" />
</svg>

Before

Width:  |  Height:  |  Size: 301 B

After

Width:  |  Height:  |  Size: 318 B

View File

@ -1,3 +1,3 @@
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.68793 2.86853L4.68793 13.131C4.68793 13.4388 5.01293 13.6107 5.2348 13.4201L11.1848 8.28884C11.3551 8.14196 11.3551 7.85915 11.1848 7.71071L5.2348 2.57946C5.01293 2.38884 4.68793 2.56071 4.68793 2.86853Z" />
</svg>
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M4.68793 2.86853L4.68793 13.131C4.68793 13.4388 5.01293 13.6107 5.2348 13.4201L11.1848 8.28884C11.3551 8.14196 11.3551 7.85915 11.1848 7.71071L5.2348 2.57946C5.01293 2.38884 4.68793 2.56071 4.68793 2.86853Z" stroke="none" />
</svg>

Before

Width:  |  Height:  |  Size: 300 B

After

Width:  |  Height:  |  Size: 317 B

View File

@ -1,3 +1,3 @@
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.1315 11.3121H2.86897C2.56116 11.3121 2.38929 10.9871 2.57991 10.7653L7.71116 4.81526C7.85804 4.64495 8.14085 4.64495 8.28929 4.81526L13.4205 10.7653C13.6112 10.9871 13.4393 11.3121 13.1315 11.3121Z" />
</svg>
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M13.1315 11.3121H2.86897C2.56116 11.3121 2.38929 10.9871 2.57991 10.7653L7.71116 4.81526C7.85804 4.64495 8.14085 4.64495 8.28929 4.81526L13.4205 10.7653C13.6112 10.9871 13.4393 11.3121 13.1315 11.3121Z" stroke="none" />
</svg>

Before

Width:  |  Height:  |  Size: 295 B

After

Width:  |  Height:  |  Size: 312 B

6
src/assets/svg/chart.svg Executable file
View File

@ -0,0 +1,6 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="5" y="12" width="2" height="8" rx="1" stroke="none" />
<rect x="9" y="6" width="2" height="14" rx="1" stroke="none" />
<rect x="13" y="8" width="2" height="12" rx="1" stroke="none" />
<rect x="17" y="4" width="2" height="16" rx="1" stroke="none" />
</svg>

After

Width:  |  Height:  |  Size: 345 B

View File

@ -1,6 +1,6 @@
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12.8 10.2001)"/>
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 0.707107 0.707107 -0.707107 11 12)"/>
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(-0.707107 0.707107 0.707107 0.707107 3.79999 10.2001)"/>
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 0.707107 0.707107 -0.707107 2 12)"/>
</svg>
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(-0.707107 0.707107 0.707107 0.707107 12.8 10.2001)" stroke="none" />
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 0.707107 0.707107 -0.707107 11 12)" stroke="none" />
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(-0.707107 0.707107 0.707107 0.707107 3.79999 10.2001)" stroke="none"/>
<rect width="2.54558" height="12.7279" rx="1.27279" transform="matrix(0.707107 0.707107 0.707107 -0.707107 2 12)" stroke="none" />
</svg>

Before

Width:  |  Height:  |  Size: 580 B

After

Width:  |  Height:  |  Size: 645 B

View File

@ -1,6 +1,6 @@
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="2" height="10" rx="1" transform="matrix(0.707107 -0.707107 -0.707107 -0.707107 13.8284 9.41425)" />
<rect width="2" height="10" rx="1" transform="matrix(-0.707107 -0.707107 -0.707107 0.707107 15.2426 8.00006)" />
<rect width="2" height="10" rx="1" transform="matrix(0.707107 -0.707107 -0.707107 -0.707107 7.82843 9.41425)" />
<rect width="2" height="10" rx="1" transform="matrix(-0.707107 -0.707107 -0.707107 0.707107 9.24265 8.00006)" />
</svg>
<svg viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="2" height="10" rx="1" transform="matrix(0.707107 -0.707107 -0.707107 -0.707107 13.8284 9.41425)" stroke="none" />
<rect width="2" height="10" rx="1" transform="matrix(-0.707107 -0.707107 -0.707107 0.707107 15.2426 8.00006)" stroke="none" />
<rect width="2" height="10" rx="1" transform="matrix(0.707107 -0.707107 -0.707107 -0.707107 7.82843 9.41425)" stroke="none" />
<rect width="2" height="10" rx="1" transform="matrix(-0.707107 -0.707107 -0.707107 0.707107 9.24265 8.00006)" stroke="none" />
</svg>

Before

Width:  |  Height:  |  Size: 532 B

After

Width:  |  Height:  |  Size: 594 B

3
src/assets/svg/circle.svg Executable file
View File

@ -0,0 +1,3 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect x="3" y="3" width="18" height="18" rx="9" stroke="none" />
</svg>

After

Width:  |  Height:  |  Size: 148 B

18
src/assets/svg/Cite.svg → src/assets/svg/cite.svg Normal file → Executable file
View File

@ -1,9 +1,9 @@
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path fill="none" d="M19 12V4C19 2.89543 18.1046 2 17 2H5C3.89543 2 3 2.89543 3 4V20C3 21.1046 3.89543 22 5 22H8" stroke-width="2" stroke-linecap="round"/>
<path fill="none" d="M7 6H15" stroke-width="2" stroke-linecap="round"/>
<path fill="none" d="M7 10H11" stroke-width="2" stroke-linecap="round"/>
<path d="M11.5 19.5H15C15.2761 19.5 15.5 19.7239 15.5 20V22C15.5 22.2761 15.2761 22.5 15 22.5H12C11.7239 22.5 11.5 22.2761 11.5 22V19.5Z"/>
<path fill="none" d="M12 20V18C12 16.8954 12.8954 16 14 16L15 16" stroke-width="2" stroke-linecap="round"/>
<path d="M17.5 19.5H21C21.2761 19.5 21.5 19.7239 21.5 20V22C21.5 22.2761 21.2761 22.5 21 22.5H18C17.7239 22.5 17.5 22.2761 17.5 22V19.5Z"/>
<path fill="none" d="M18 20V18C18 16.8954 18.8954 16 20 16L21 16" stroke-width="2" stroke-linecap="round"/>
</svg>
<svg fill="none" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path fill="none" d="M19 12V4C19 2.89543 18.1046 2 17 2H5C3.89543 2 3 2.89543 3 4V20C3 21.1046 3.89543 22 5 22H8" stroke-width="2" stroke-linecap="round"/>
<path fill="none" d="M7 6H15" stroke-width="2" stroke-linecap="round"/>
<path fill="none" d="M7 10H11" stroke-width="2" stroke-linecap="round"/>
<path d="M11.5 19.5H15C15.2761 19.5 15.5 19.7239 15.5 20V22C15.5 22.2761 15.2761 22.5 15 22.5H12C11.7239 22.5 11.5 22.2761 11.5 22V19.5Z"/>
<path fill="none" d="M12 20V18C12 16.8954 12.8954 16 14 16L15 16" stroke-width="2" stroke-linecap="round"/>
<path d="M17.5 19.5H21C21.2761 19.5 21.5 19.7239 21.5 20V22C21.5 22.2761 21.2761 22.5 21 22.5H18C17.7239 22.5 17.5 22.2761 17.5 22V19.5Z"/>
<path fill="none" d="M18 20V18C18 16.8954 18.8954 16 20 16L21 16" stroke-width="2" stroke-linecap="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 906 B

After

Width:  |  Height:  |  Size: 915 B

8
src/assets/svg/Copy.svg → src/assets/svg/copy.svg Normal file → Executable file
View File

@ -1,4 +1,4 @@
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17 8V20C17 21.1046 16.1046 22 15 22H10H5C3.89543 22 3 21.1046 3 20V8C3 6.89543 3.89543 6 5 6H15C16.1046 6 17 6.89543 17 8Z" stroke-width="2" stroke-linecap="round"/>
<path d="M7 6V4C7 2.89543 7.89543 2 9 2H19C20.1046 2 21 2.89543 21 4V17C21 18.1046 20.1046 19 19 19H17" stroke-width="2" stroke-linecap="round"/>
</svg>
<svg viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17 8V20C17 21.1046 16.1046 22 15 22H10H5C3.89543 22 3 21.1046 3 20V8C3 6.89543 3.89543 6 5 6H15C16.1046 6 17 6.89543 17 8Z" fill="none" stroke-width="2" stroke-linecap="round"/>
<path d="M7 6V4C7 2.89543 7.89543 2 9 2H19C20.1046 2 21 2.89543 21 4V17C21 18.1046 20.1046 19 19 19H17" fill="none" stroke-width="2" stroke-linecap="round"/>
</svg>

Before

Width:  |  Height:  |  Size: 403 B

After

Width:  |  Height:  |  Size: 430 B

Some files were not shown because too many files have changed in this diff Show More