Compare commits

...

1552 Commits
main ... dev

Author SHA1 Message Date
a95c78fd60 unused-rm
Some checks failed
deploy / test (push) Failing after 6m54s
deploy / Update templates on Mailgun (push) Has been skipped
2024-10-03 00:01:01 +03:00
4e050198c5 pathfix2
Some checks failed
deploy / test (push) Failing after 6m52s
deploy / Update templates on Mailgun (push) Has been skipped
2024-10-02 23:33:58 +03:00
36810d688c fmt2
Some checks failed
deploy / test (push) Failing after 1m13s
deploy / Update templates on Mailgun (push) Has been skipped
2024-10-02 23:24:32 +03:00
abc1f184a1 fmt
Some checks failed
deploy / test (push) Failing after 1m10s
deploy / Update templates on Mailgun (push) Has been skipped
2024-10-02 23:21:35 +03:00
244c91fb02 pathfix
Some checks failed
deploy / test (push) Failing after 43s
deploy / Update templates on Mailgun (push) Has been skipped
2024-10-02 23:17:12 +03:00
6bd919f16b views-refactored
Some checks failed
deploy / test (push) Failing after 1m9s
deploy / Update templates on Mailgun (push) Has been skipped
2024-10-02 23:12:14 +03:00
Tony
04878bec0b
Merge pull request #487 from Discours/hotfix/sv-artical-component
Fix slug updating in ArticlePage component by managing currentSlug signal
2024-10-02 23:10:32 +03:00
b791de3d4e fmt
Some checks failed
deploy / test (push) Failing after 1m7s
deploy / Update templates on Mailgun (push) Has been skipped
2024-10-02 21:29:51 +03:00
6f26e09bef drafts-view-refactoring+fix
Some checks failed
deploy / Update templates on Mailgun (push) Waiting to run
deploy / test (push) Has been cancelled
2024-10-02 21:29:32 +03:00
Stepan Vladovskiy
55e2b34466 feat: fix slug updating in ArticlePage component by managing curentSlug signal 2024-10-01 20:50:01 +00:00
217c027044 ..
Some checks failed
deploy / test (push) Failing after 1m12s
deploy / Update templates on Mailgun (push) Has been skipped
2024-10-01 22:52:45 +03:00
8106bae0c2 editor-refactored
Some checks failed
deploy / test (push) Failing after 1m15s
deploy / Update templates on Mailgun (push) Has been skipped
2024-10-01 22:39:17 +03:00
ae1a93469b bubble-menu-used
Some checks failed
deploy / test (push) Failing after 6m42s
deploy / Update templates on Mailgun (push) Has been skipped
2024-10-01 21:11:07 +03:00
67e8c80d9a fmt 2024-10-01 20:19:40 +03:00
abdc419aa8 mini+micro-fix 2024-10-01 20:18:27 +03:00
Stepan Vladovskiy
32ebcff5fe feat: improve component structure and addded signal managment. Extract Article page Content into a separate block. Added createSignal and CreateEffect to track slug dynamically. Replace ifelse with Switch and Match. 2024-09-30 16:35:15 +00:00
Stepan Vladovskiy
b91a1be989 Merge branch 'dev' into hotfix/sv-author-empty 2024-09-30 14:30:21 +00:00
21b3903062 minor-fix 2024-09-30 14:00:02 +03:00
fab8a5ed53 minor
Some checks failed
deploy / test (push) Failing after 1m6s
deploy / Update templates on Mailgun (push) Has been skipped
2024-09-30 13:38:44 +03:00
845490d5db Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into dev 2024-09-27 21:12:07 +03:00
30de1ddb3e editor-refactored-2 2024-09-27 21:09:50 +03:00
90cd3988a1 editor-toolbar 2024-09-27 21:00:45 +03:00
258b579d05 editor-toolbar 2024-09-27 20:57:49 +03:00
76dea4341d toolbar-appear-fix 2024-09-27 20:21:52 +03:00
595e2b8a4b editor-refactoring 2024-09-27 19:31:54 +03:00
b393810f7a cleanup-stories 2024-09-27 17:28:50 +03:00
90057a2d0e fmt 2024-09-27 17:27:01 +03:00
7aa01d6152 MiniEditor-fix 2024-09-27 17:26:40 +03:00
962140e755 microeditor-wip 2024-09-27 16:46:43 +03:00
0c61445293 config-fix
Some checks failed
deploy / test (push) Failing after 48s
deploy / Update templates on Mailgun (push) Has been skipped
2024-09-27 10:51:51 +03:00
29dbd67c27 debugL 2024-09-25 21:15:17 -03:00
a144d7051b expo-fixes 2024-09-26 01:48:30 +03:00
c165742fbf debug: replace createAsync for slugloader to createSignal in slug/tab for trying avoid complex repeating of async functions 2024-09-25 19:16:13 -03:00
bbab1e4cb8 debug: Added logic for robust reload data forslug before render 2024-09-25 17:25:08 -03:00
dc2b6a5ab1 debug: with reset data if slug is changes in slug/tab articalpage 2024-09-25 17:04:08 -03:00
91d8fdf746 debug: add logs in dev variant of slug/tab 2024-09-25 16:20:42 -03:00
db8b53f9bd debug: back to dev version. Investigate UserPage Artcicle Render 2024-09-25 10:21:08 -03:00
aa11c8d8b8 debug: With load topics and logs in slug tab to see why it is not loading topic from user page 2024-09-25 09:59:12 -03:00
6dc25260bb debug: break everythig, rename Artile Page and add logs 2024-09-24 22:25:56 -03:00
a805493b27 debug: used version only with useParam and with logging for slug tab 2024-09-24 22:14:46 -03:00
996153bbc2 debug: more pres logs for slug tab.tsx 2024-09-24 22:03:57 -03:00
c26f960d9b debug: slug with logging to async and useParam for fetching data and slugs 2024-09-24 21:47:19 -03:00
ef7ceb5d33 debug: backed slug to dev code just rename ArticlePage inner function 2024-09-24 20:51:32 -03:00
22575cc7fa expo-showup 2024-09-24 14:56:16 +03:00
a52ee5a90f Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into dev 2024-09-24 14:26:58 +03:00
2fef053029 canedit-fix 2024-09-24 14:24:53 +03:00
5e2b4a7ae6 canedit-fix 2024-09-24 13:09:24 +03:00
6e3871cd5a link-fix1 2024-09-24 12:38:53 +03:00
a451a6bf4e Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into dev 2024-09-24 12:19:40 +03:00
317d4a004c graphql-client-unmemo
Some checks failed
deploy / test (push) Failing after 6m50s
deploy / Update templates on Mailgun (push) Has been skipped
2024-09-24 12:15:50 +03:00
29d1661993 new-shout-desc-fix
Some checks failed
deploy / test (push) Failing after 6m49s
deploy / Update templates on Mailgun (push) Has been skipped
2024-09-24 11:03:40 +03:00
7288725480 new-draft-store-fix 2024-09-24 10:59:54 +03:00
c959a2bba4 fmt
Some checks failed
deploy / test (push) Failing after 7m1s
deploy / Update templates on Mailgun (push) Has been skipped
2024-09-24 09:51:58 +03:00
d7a5a188ff editor-showup+fixes
Some checks failed
deploy / Update templates on Mailgun (push) Waiting to run
deploy / test (push) Has been cancelled
2024-09-24 09:48:39 +03:00
b3b8e51d2d devruntime-fix 2024-09-24 06:50:44 +03:00
343b71defd feat: renamed ArticalPage to component, added useParam for slug and reactivity 2024-09-24 00:40:57 -03:00
Tony
545728ac84
Merge pull request #485 from Discours/hotfix/sv-author-empty
Author Profile when logged in infinity load resolve bugFix
2024-09-23 14:17:46 +03:00
fe76bb46e6 Merge branch 'dev' into hotfix/sv-author-empty 2024-09-23 10:17:24 +03:00
1f0e91d2b9 bump 2024-09-23 10:14:33 +03:00
Stepan Vladovskiy
76366a01d9 feat: with setFollowingsLoaded(true) in Author View component. It is need if user already loaded, then after changeFollowing for unsetting Loading and show page 2024-09-20 23:56:25 +00:00
d496760fdb sbtest 2024-09-19 20:26:58 +03:00
3da600dacc packages-update 2024-09-19 20:24:11 +03:00
f9ed111d8e stylefixes 2024-09-19 20:08:22 +03:00
392581f50d linted 2024-09-19 19:58:23 +03:00
c40a357815 Merge branch 'storybook' of https://github.com/discours/discoursio-webapp into storybook 2024-09-19 19:57:55 +03:00
6ca29a351f editor-wip 2024-09-19 19:51:56 +03:00
d6c6545726 Merge branch 'dev' of https://github.com/discours/discoursio-webapp into dev 2024-09-19 19:15:57 +03:00
1db4224827 editor-wip 2024-09-19 19:15:51 +03:00
98f03c2296 linted 2024-09-19 19:15:05 +03:00
Tony
9491f7c504
Merge pull request #483 from Discours/hotfix/sv-author-empty
Author empty for logged in user (user profile)
2024-09-19 18:12:14 +03:00
Raksana Karlova
fac7451fc4 added styles for button in SB 2024-09-17 19:52:57 +04:00
64224720f5 build-tuning 2024-09-16 16:50:44 +03:00
d1ff340e0e makePersisted-update 2024-09-16 16:35:48 +03:00
92ec0da0bc Merge branch 'dev' of https://github.com/discours/discoursio-webapp into dev 2024-09-16 15:57:24 +03:00
d3cd027910 build-fix+const-fix+icon-fix+expo-fix 2024-09-16 15:57:00 +03:00
Tony
146f41e167
Merge pull request #480 from Discours/fix/style
Style fixes
2024-09-16 14:28:07 +03:00
08cbfa1d57 vite535 2024-09-16 14:07:30 +03:00
8345d858ed vite535 2024-09-16 13:52:33 +03:00
5e73863679 local-build-ok 2024-09-16 13:45:30 +03:00
ff541b4456 freezefix 2024-09-16 13:34:17 +03:00
d210587b74 bun-ci 2024-09-16 13:21:45 +03:00
64658f5175 versions... 2024-09-16 13:14:08 +03:00
b201163ab9 buildable 2024-09-16 13:02:34 +03:00
11c94da20d lockfix 2024-09-16 12:39:55 +03:00
63e159822a build-fix 2024-09-16 12:31:12 +03:00
d5c5eaf57b packages-revert-fix 2024-09-16 12:25:28 +03:00
6a48b53216 patch-fix 2024-09-16 12:03:43 +03:00
20e7588019 force-use-dart 2024-09-16 11:56:22 +03:00
80dbe410ab try-patch-sass 2024-09-16 11:53:14 +03:00
d00084183d ci-failok 2024-09-16 11:09:27 +03:00
bf09277822 sass-embedded-downgrade 2024-09-16 10:50:47 +03:00
35febd9ac4 noapi 2024-09-16 04:06:17 +03:00
35cae9415d scss-fixes 2024-09-16 03:42:55 +03:00
74725df0ff editor-storybook-fix 2024-09-16 03:09:07 +03:00
5eded9f143 lock-restored 2024-09-16 03:03:25 +03:00
afa69fc86f editor-fix 2024-09-16 02:53:49 +03:00
6e0a830168 abc-sort-fix 2024-09-16 02:41:48 +03:00
433a74a58a linted 2024-09-15 23:17:21 +03:00
53299fc183 simplified-story-fixes 2024-09-15 23:17:02 +03:00
ebed7f38c3 sass-fixes+minieditor-storybooked 2024-09-15 22:39:39 +03:00
199f845610 Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into dev 2024-09-15 21:54:40 +03:00
2fad5b8db9 bad update 2 2024-09-15 21:47:21 +03:00
344f716d1d bad update 2024-09-15 21:47:14 +03:00
ba55780246 linted-update 2024-09-15 21:44:10 +03:00
512c65aeef Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into dev 2024-09-15 19:41:05 +03:00
ad4bda3c24 prestorybook 2024-09-15 19:41:02 +03:00
Tony
7d895aa343
Merge pull request #481 from Discours/storybook
Storybook
2024-09-15 19:38:22 +03:00
Stepan Vladovskiy
49001bb63c style: with small readme at top, and small coment in code 2024-09-15 15:37:27 +00:00
Stepan Vladovskiy
bef13a9bde feat: router/author/slug with err_ in console , and Placeholder handle undefinde in slug for users with empty slug 2024-09-14 16:30:47 +00:00
09243925b4 vite-conf-connection-fix 2024-09-12 09:56:53 +03:00
Raksana Karlova
1da37e7a52 config 2024-09-11 16:50:28 +04:00
479a4ea852 Fixed paddings on the feed page 2024-09-10 22:49:09 +03:00
Raksana Karlova
e4a1679052 Storybook update 2024-09-10 17:58:19 +04:00
8824fbab2f reactions-store-fix 2024-09-06 08:33:44 +03:00
6ec271fe7c reactions-store-fix 2024-09-06 08:27:48 +03:00
260b95f692 scrollto+shoutreaction 2024-09-06 08:13:24 +03:00
1ec368eae7 minor fixes 2024-09-06 07:55:57 +03:00
e03971193e url-backward-compat 2024-09-06 07:52:39 +03:00
6e11e19f0a Style fixes 2024-09-04 22:48:18 +03:00
d003df96f2 preload-trans 2024-09-03 20:12:46 +03:00
dd02c46174 typefix 2024-09-03 20:07:46 +03:00
9319c8d526 locnochunk 2024-09-03 19:59:53 +03:00
7a2043f223 comments-view-fix 2024-09-03 19:50:26 +03:00
a2999e3851 chunk-merged 2024-09-03 19:24:50 +03:00
23e9ca9838 fmt 2024-09-03 19:22:52 +03:00
b868c7282d postmerge 2024-09-03 19:22:33 +03:00
124ae3dece Merge remote-tracking branch 'origin/dev' into dev 2024-09-03 19:20:56 +03:00
a4e5d8f332 revert-manual-chunks 2024-09-03 19:19:24 +03:00
7fa17cee3c manual-chunked 2024-09-03 18:37:57 +03:00
6bfaa3fb51 topic-feed-revised 2024-09-03 14:36:33 +03:00
30ff30d099 fmt 2024-09-03 13:29:01 +03:00
7714977391 commentsByAuthor 2024-09-03 13:21:59 +03:00
e176544e36 author-shouts-loadmore 2024-09-03 11:07:32 +03:00
33a81d8ee7 storybook 2024-09-03 10:06:39 +03:00
7c614c66d9 minor-ref 2024-08-30 16:45:17 +03:00
cd436dd34d about-title-fix 2024-08-29 18:34:13 +03:00
0698900f8d fmt 2024-08-29 17:40:31 +03:00
090295327f profile-settings-fix 2024-08-29 16:11:51 +03:00
f808bd2394 topic+author-loadmore-fix 2024-08-28 16:10:00 +03:00
22f44ee0ec tab-navigation-fix 2024-08-28 12:50:04 +03:00
7ca7acc487 loadmore+viewed-fix 2024-08-28 11:53:40 +03:00
3d2125d99f undefer-fix 2024-08-28 08:12:44 +03:00
e695c7847f loading-error-fix 2024-08-28 01:02:55 +03:00
95198e9791 topic-page-fix 2024-08-28 00:51:17 +03:00
71772ae0d6 all-authors-revert 2024-08-27 20:17:24 +03:00
28f3d6619d fix from 'origin/demo-fix3' 2024-08-26 21:22:27 +03:00
Igor Lobanov
5bf8340f13 topic articles fix 2024-08-26 14:55:01 +02:00
tony
1c2b53cfe8 topics-fmt-fix 2024-08-26 15:26:00 +03:00
tony
0748aa342c header-auth-nav-fix 2024-08-26 15:23:51 +03:00
e360cdf1ba header-links-fix 2024-08-22 16:27:09 +03:00
17750a7630 fixd 2024-08-22 15:56:12 +03:00
b80a497e4d bump-deploy 2024-08-22 15:45:36 +03:00
ae3473312a nitro-timing-log 2024-08-14 15:50:01 +03:00
a186dc4d3f vercel-edge-deploy-test 2024-08-12 14:42:31 +03:00
e6e19d74cd netlify-runtime 2024-08-12 01:21:01 +03:00
6a105b24fc api-up 2024-08-07 13:39:39 +03:00
50d98deadf api-revert
Some checks failed
deploy / test (push) Failing after 14s
deploy / Update templates on Mailgun (push) Has been skipped
2024-08-06 18:19:38 +03:00
582a80d34d apifix 2024-08-06 15:08:04 +03:00
c6ea1eb8b7 e2e-testing 2024-08-05 15:09:57 +03:00
e797e8ca96 lock+fmt 2024-08-05 15:02:13 +03:00
e07ace8741 all-topics-cache-fix 2024-08-05 14:03:30 +03:00
b53f83947c inbox-route 2024-08-02 00:32:52 +03:00
a39190e2b1 editor fixed 2024-08-01 00:41:42 +03:00
e875212ae7 editor-fixed 2024-07-31 02:20:54 +03:00
ca629e8c26 tests 2024-07-31 01:39:24 +03:00
8db9f4c93f signup-e2e 2024-07-31 00:52:25 +03:00
ae4ec7b6b7 e2e-wip 2024-07-30 22:44:53 +03:00
6db49c2296 e2e 2024-07-30 22:28:28 +03:00
a5bb138fc7 editor-wip 2024-07-30 22:18:16 +03:00
142c5bfb41 graphql-fix 2024-07-30 22:06:17 +03:00
81ed60a52f Merge branch 'dev' of github.com:Discours/discoursio-webapp into dev 2024-07-30 20:59:30 +03:00
418572af88 author-profile-preload-fix 2024-07-30 20:59:12 +03:00
Tony
4902096e48
Merge pull request #478 from Discours/router-upgrade
update router workflow
2024-07-30 06:04:14 +03:00
5846d24c10 alltopics-title-fix 2024-07-30 05:55:12 +03:00
4cb888262d restored-all-authors 2024-07-30 05:35:27 +03:00
1e4138e40e reset1 2024-07-26 18:49:15 +03:00
219e3e2325 :Merge branch 'dev' of github.com:Discours/discoursio-webapp into dev 2024-07-26 01:19:05 +03:00
3e25997d2a version 2024-07-26 01:17:24 +03:00
38f6cbbdca
Debug: cleaning, back to last configs 2024-07-25 09:33:32 -03:00
15233db9a5
Debug: trying to follower read me file and place config.ts in utils 2024-07-24 22:20:38 -03:00
87dd66ad4b biomepass 2024-07-23 17:00:33 +03:00
0de087d999 comments-tree-fix 2024-07-23 16:58:57 +03:00
42d8e7598c empty-files-removed 2024-07-22 17:40:26 +03:00
b5e25e0d6d fixtest 2024-07-22 17:15:47 +03:00
1f58385b95 noauthor-vercelbuildtest 2024-07-22 17:11:43 +03:00
9733eff104 postmerge 2024-07-22 17:07:04 +03:00
607d986293 Merge branch 'router-upgrade' of github.com:Discours/discoursio-webapp into router-upgrade 2024-07-22 15:31:18 +03:00
Stepan Vladovskiy
e6aa3a881f feat: page AllAuthors show sorted list and ABC nav is working. But pagination not yet 2024-07-22 11:43:56 +00:00
b61b19a119 fmt 2024-07-22 14:29:33 +03:00
01e7dec615 author-feed-debug 2024-07-22 14:24:36 +03:00
1a9529d9fc debug... 2024-07-22 09:57:48 +03:00
85e0a92b31 editor... 2024-07-22 09:29:57 +03:00
751157b421 clued 2024-07-22 08:41:23 +03:00
0061b68257 postmerge: loadmorewrappers 2024-07-21 17:26:03 +03:00
87d08dcb75 Merge branch 'router-upgrade' into feature/rating 2024-07-21 15:48:38 +03:00
1d540f28b7 bump 2024-07-21 15:43:45 +03:00
cad695dc59 struct 2024-07-21 05:17:42 +03:00
77d8ca352a upd
Some checks failed
deploy / test (push) Failing after 5m41s
deploy / Update templates on Mailgun (push) Has been skipped
2024-07-18 15:29:23 +03:00
a8d778b2e4 buildfix2
Some checks failed
deploy / test (push) Failing after 13s
deploy / Update templates on Mailgun (push) Has been skipped
2024-07-18 14:26:57 +03:00
8f9dea9bfb buildfix 2024-07-18 14:22:59 +03:00
1eb9c57f0d loadmore-main-fix 2024-07-18 13:22:58 +03:00
7573c6334c mainpage-loadmore-hide 2024-07-18 12:22:28 +03:00
ab05a9e539 typefix 2024-07-18 07:34:55 +03:00
8c5ef2fd54 mainpage-deploy 2024-07-18 07:33:23 +03:00
8fbc85615c author-feed+comments-paginate 2024-07-16 03:14:08 +03:00
82904bd1da @-patch
Some checks failed
deploy / test (push) Failing after 14s
deploy / Update templates on Mailgun (push) Has been skipped
2024-07-16 02:11:01 +03:00
19bae3b2dd edit-new-wip 2024-07-16 01:57:44 +03:00
c79b0451cb linking-fix 2024-07-16 01:13:19 +03:00
8cce8d897e loadmore+feed+my 2024-07-15 23:56:40 +03:00
4fe2768329 load-more-main-ok 2024-07-15 23:35:33 +03:00
f6f012449d load-wrapper-debug 2024-07-15 19:51:52 +03:00
789a7497a3 load-more-wrapper-wip 2024-07-15 17:28:08 +03:00
2b7a825bc5 sortfn-type 2024-07-13 20:22:32 +03:00
4efec31fec https 2024-07-13 20:15:41 +03:00
03787196a9 minor-configs 2024-07-13 19:29:17 +03:00
35c5a0ebcf getThumbUrl 2024-07-13 15:25:56 +03:00
7c9c155f5b sort 2024-07-13 14:47:31 +03:00
2d7fbc42a8 utils-refactored 2024-07-13 14:42:53 +03:00
95612eb7b8 topic-outing+fixes 2024-07-13 13:33:49 +03:00
24e594138f topic-!-routing 2024-07-13 13:32:27 +03:00
17d2600142 filerouter-import-workaround 2024-07-13 12:45:10 +03:00
fde2335a02 @-routing-fix 2024-07-13 12:36:23 +03:00
ef1408327f isolate-utils-authors-with-@ 2024-07-13 12:06:49 +03:00
645e65751b typecheck-fix 2024-07-13 10:53:35 +03:00
f916e9f9ae nostat 2024-07-13 10:44:51 +03:00
e5a3788f71 vercel-fix2 2024-07-13 10:44:07 +03:00
98461b8d09 vercel-fix 2024-07-13 10:34:21 +03:00
0192acb8a4 author-page-view 2024-07-13 10:02:05 +03:00
b7e775eeea author-page-wip 2024-07-13 10:01:41 +03:00
25d217389b sass-depr-suppres 2024-07-12 19:00:30 +03:00
e68741efa1 stylelint-order-fmt 2024-07-12 16:19:49 +03:00
3041ee2fd6 some-reverts 2024-07-12 15:10:22 +03:00
41f989024c lock-fix 2024-07-12 14:38:54 +03:00
c2b56ed745 biomed2 2024-07-12 14:20:31 +03:00
7623f719a5 biomed 2024-07-12 14:19:58 +03:00
65798a7f60 Merge branch 'router-upgrade' of github.com:Discours/discoursio-webapp into router-upgrade 2024-07-12 14:18:28 +03:00
27653a4db2 stylelint-fix 2024-07-12 14:18:10 +03:00
Stepan Vladovskiy
d9a0badedd feat: app.tsx now with AutorsPaginator wrap, AllAuthors with logs and some dont needed changes, working on it. authors witrh minor changes 2024-07-12 06:46:12 +00:00
Stepan Vladovskiy
b677cb3493 feat: step to all authors, with debug level an dsome minor changes in memo 2024-07-11 23:00:00 +00:00
Stepan Vladovskiy
59885486eb feat: local server starts on https://localhost = true 2024-07-09 20:53:28 +00:00
edbd7ec3b2 :topic-page-fix
Some checks failed
deploy / test (push) Failing after 6m0s
deploy / Update templates on Mailgun (push) Has been skipped
2024-07-09 20:41:50 +03:00
481e4292b5 e2e-title-check-fix 2024-07-09 17:32:48 +03:00
6602f48693 one-article-fix 2024-07-09 17:13:36 +03:00
d255f6f0b1 one-article-fixes 2024-07-09 17:12:13 +03:00
bfc78d9df3 fmt 2024-07-09 15:27:50 +03:00
d4deef9bb6 does not provide reactions where not needed 2024-07-09 15:26:24 +03:00
ec1aacc010 404-fix 2024-07-09 14:58:38 +03:00
878f0036ab styles+error-new-fix 2024-07-09 13:35:57 +03:00
0c000b8b6e fmt 2024-07-09 12:57:40 +03:00
7e3499fbb3 all-topics-styling-fix 2024-07-09 12:56:56 +03:00
e3ac3cc406 meta-refactored 2024-07-09 12:13:13 +03:00
b204204a31 prep 2024-07-08 17:51:55 +03:00
327cd514d6 Merge branch 'router-upgrade' of github.com:Discours/discoursio-webapp into router-upgrade 2024-07-08 17:41:29 +03:00
0abb85ee28 fix-translation 2024-07-08 17:41:04 +03:00
Stepan Vladovskiy
c6816b9271 feat: With e2e tests on CI github worflow. README+. After tuned page need to move auth tests to main test dir 2024-07-08 10:37:56 +00:00
Stepan Vladovskiy
3bfa4adf68 fix: playwright config with baseURL env bar. 2024-07-08 10:24:07 +00:00
Stepan Vladovskiy
32519d5ee9 fix: without auth playwright tests, they are in tests-with-auth dir. testing 2024-07-08 10:10:35 +00:00
Stepan Vladovskiy
9686619243 feat: e2e_tests job is started in case if ci all jobs are successeful. In output return github.event.depolyment ststus for debug. (not a prod mode) 2024-07-08 09:52:32 +00:00
e7bcb4c6d4 fmt 2024-07-07 17:07:11 +03:00
f4f4e80816 authors-all-fix+slug-404 2024-07-07 16:48:53 +03:00
d64f68579c window-fix2 2024-07-06 09:51:25 +03:00
e627bae06c window-fix 2024-07-06 09:41:16 +03:00
fa79a0cd5d localstorage-fix 2024-07-06 09:24:37 +03:00
47622f996b lsusage-fix 2024-07-06 04:35:03 +03:00
c623356893 editpage-fix 2024-07-06 04:29:59 +03:00
90691aa650 profile-view-refactored 2024-07-06 04:25:10 +03:00
6d3629592a vercel-asks 2024-07-06 04:08:16 +03:00
d8e9dd62ce typofix 2024-07-06 04:04:55 +03:00
6ba51ad83e showup-2 2024-07-06 04:03:00 +03:00
2d89f62864 showup 2024-07-06 03:59:01 +03:00
6104079f09 fmt 2024-07-06 01:46:07 +03:00
0323c913b3 home-fetch-all-topics 2024-07-06 01:45:42 +03:00
35f39da99e topics-render-fix2 2024-07-06 01:24:56 +03:00
2d5e9877ee topics-render-fix 2024-07-06 01:24:22 +03:00
de29d435ec intl-rev-2 2024-07-06 00:40:33 +03:00
6fc2d107e9 intl-improve 2024-07-06 00:09:56 +03:00
28c66a564a preprocess-text-fix 2024-07-05 22:40:54 +03:00
a5d15f2808 router fixes 2024-07-05 20:23:07 +03:00
587c2a961a .. 2024-07-05 18:10:19 +03:00
7a499ae2e5 404-route 2024-07-05 17:22:49 +03:00
7c2d97053b utils-refactored 2024-07-05 17:08:12 +03:00
546d1bd743 minor 2024-07-05 16:37:13 +03:00
a767ce7fd1 fmt 2024-07-05 16:35:13 +03:00
bff5de0c8e lang-fix 2024-07-05 16:34:19 +03:00
22f45d8bd9 fmt 2024-07-05 11:12:17 +03:00
3433ba0aac page-titles 2024-07-05 11:11:57 +03:00
6354bb8d47 footer-translation-fix 2024-07-05 10:38:53 +03:00
cc60bb99ce fmt 2024-07-05 10:32:15 +03:00
545c25d305 Merge branch 'router-upgrade' of github.com:Discours/discoursio-webapp into router-upgrade 2024-07-05 10:26:07 +03:00
b5c63fbbb0 .. 2024-07-05 10:26:02 +03:00
e83fd35b85 static-routes-fixes 2024-07-05 10:23:59 +03:00
Stepan Vladovskiy
35e282fb18 fix: merge github workflows in one file, trying github deploy status triger, drink tea and eat cookies 2024-07-04 21:36:20 +00:00
Stepan Vladovskiy
a7e1a1763c feat: AGAIN changed metology of starting e2e tests, now after deployment-status is changed and url is active. No more certs in tests dir, aliluya, and all for github only. Gitea CI was made not by dufok, so let it be 2024-07-04 21:12:34 +00:00
Stepan Vladovskiy
7383433b58 feat: changed metology of starting e2e tests, now after deployment-status is changed and url is active. No more certs in tests dir, aliluya, and all for github only. Gitea CI was made not by dufok, so let it be 2024-07-04 21:09:15 +00:00
Stepan Vladovskiy
7d921cee2f feat: e2e tests are tuned for using CI script not only with localhost. But CI logic ssr not used in CI, need to generate frontend 2024-07-04 12:02:36 +00:00
874654f0eb merged 2024-07-04 10:52:37 +03:00
8b773e5fed refactored-folder-structure+imports-alias 2024-07-04 10:51:15 +03:00
e5950417ea lock-upgrade 2024-07-04 10:33:11 +03:00
Stepan Vladovskiy
82e8d0d00e fix: change output build directory to output/public 2024-07-04 01:22:10 +00:00
Stepan Vladovskiy
1cac091a1c style: refactor tests code to make it clean. But maybe this is can solve the problem in 404 2024-07-04 01:11:10 +00:00
Stepan Vladovskiy
fd4233f907 fix: in package var BASE url for e2e tests ci is correted to https 2024-07-04 00:58:40 +00:00
Stepan Vladovskiy
d321cb21b7 fix: add certs 2024-07-04 00:54:33 +00:00
Stepan Vladovskiy
105b286b37 fix: crzy dev, not use this, certs in tests/certs dir for https deploy e2e server 2024-07-04 00:50:41 +00:00
Stepan Vladovskiy
49d6f17779 feat: playwright tests withability tio test running or not server not lonly in localhost mode 2024-07-04 00:29:23 +00:00
Stepan Vladovskiy
bd4aa9c0ac feat: if start e2e script is has CI var set to any, than playwright not checks local http is run and dont truing to run local dev on 2024-07-04 00:17:48 +00:00
Stepan Vladovskiy
272d9caa67 fix: default value changed to actual ip:port config in packges 2024-07-03 23:49:30 +00:00
Stepan Vladovskiy
f7294c96d1 fix: separated e2e tests in mode of local testing and CI testing 2024-07-03 23:46:46 +00:00
Stepan Vladovskiy
b36983b583 fix: with not global http-serv install. Fingercross and last try' 2024-07-03 23:38:53 +00:00
Stepan Vladovskiy
0e5cc90648 fix: with http-server start on github actions 2024-07-03 23:33:49 +00:00
Stepan Vladovskiy
24f4a22110 fix: need to deploy before e2e. Right now without e2e 2024-07-03 23:18:21 +00:00
Stepan Vladovskiy
9106f45f53 feat: with e2e tests in github workflow node-ci 2024-07-03 22:48:37 +00:00
3e8efdcae5 e2e-merged 2024-07-04 01:33:50 +03:00
0a997bdcae Merge branch 'feature/e2e-tests' into router-upgrade 2024-07-04 01:25:07 +03:00
f7b39687da import-fix 2024-07-04 00:39:29 +03:00
d8144c4a4d fmt 2024-07-04 00:35:53 +03:00
b909f83411 links-minor-fixes 2024-07-04 00:35:34 +03:00
a2514735f9 links-fix 2024-07-04 00:31:39 +03:00
0f8744dc5d thanks-page+route-fix 2024-07-04 00:27:58 +03:00
c9a8c1aa8e routing-structure-fin 2024-07-04 00:25:03 +03:00
3fa235cd16 feed-wip 2024-07-03 20:38:43 +03:00
020768f5b1 guide-static 2024-07-03 10:23:36 +03:00
5711b26644 navheader-fix 2024-07-03 10:03:48 +03:00
e1275b76ea navheader-fix 2024-07-03 10:02:46 +03:00
e4390d83e6 header-links-fix 2024-07-01 18:30:45 +03:00
d2771ac2a4 vercel-adapt 2024-07-01 16:57:30 +03:00
c8ab5ef4f6 solid-start-deploy 2024-07-01 16:57:03 +03:00
2f2c4af161 Merge branch 'router-upgrade' into feature/rating 2024-07-01 16:54:31 +03:00
f55fad3d76 deploy.sh 2024-07-01 16:54:01 +03:00
c1d6b4498a Merge branch 'router-upgrade' into feature/rating 2024-07-01 16:46:49 +03:00
b855e1c11f all-authors-dummy 2024-07-01 16:41:22 +03:00
a8d7a28297 draft abstract topic slug page 2024-07-01 16:27:45 +03:00
deeb7c58cf linted 2024-06-28 18:26:00 +03:00
4e631f5f91 home-fix+topics-wip 2024-06-28 18:05:45 +03:00
a616f97fe4 topics-context-fix 2024-06-28 14:45:25 +03:00
ed145ad447 undouble-main-layout-2 2024-06-28 13:48:11 +03:00
c0c379a918 undouble-main-layout 2024-06-28 13:45:44 +03:00
6837bd3d48 pkg-bump 2024-06-28 13:35:03 +03:00
305bd23f9f home-tops 2024-06-28 10:47:38 +03:00
ae207a02f2 preload-only-body 2024-06-26 14:42:35 +03:00
fcc7d19f59 search-fix2 2024-06-26 11:25:37 +03:00
2bc87b5e99 search-fix 2024-06-26 11:23:21 +03:00
e38fce68c6 ga-integration 2024-06-26 11:22:05 +03:00
a5eaeab5cd langswitch-fix 2024-06-26 01:52:46 +03:00
4c7839aaff apiurl-fix+modal-fmt 2024-06-25 22:56:42 +03:00
c6ae893403 modal-fix, media-query-fix 2024-06-25 22:10:00 +03:00
1d38c12509 connect-page 2024-06-25 20:36:45 +03:00
81a85f7da7 styles-fix 2024-06-25 19:43:02 +03:00
0a193d340a footer-loc-fix 2024-06-25 18:30:45 +03:00
35ab9abe06 Merge branch 'feature/e2e-tests' of github.com:Discours/discoursio-webapp into feature/e2e-tests 2024-06-25 18:17:07 +03:00
9eb30da07c Merge branch 'dev' into feature/e2e-tests 2024-06-25 18:16:26 +03:00
d002a494e8 ftr-fix 2024-06-25 18:14:48 +03:00
71e38d233a fns-back 2024-06-25 17:32:32 +03:00
1f326c7611 try-no-api 2024-06-25 17:22:28 +03:00
876e342f4c edge-try 2024-06-25 17:17:02 +03:00
7ceb9db77f ssr-fix 2024-06-25 16:47:28 +03:00
e697f041ff trig-deploy-2 2024-06-25 15:59:58 +03:00
2f73152829 trig-deploy 2024-06-25 14:52:21 +03:00
f3681a2b1b ci-lint-fix 2024-06-25 14:31:05 +03:00
bc52dcc653 tsc-ok 2024-06-25 14:25:20 +03:00
bbff52019b lockfix-2 2024-06-25 14:09:26 +03:00
7591c3d40f pkgcmd 2024-06-24 22:16:49 +03:00
b2bf8335ca engine 2024-06-24 21:57:24 +03:00
4043b83aca addlock 2024-06-24 21:03:28 +03:00
8d39c74242 gigantic-wip 2024-06-24 20:50:27 +03:00
Stepan Vladovskiy
c1bd614845 style: Readme with worker 1 info 2024-06-19 01:10:27 +00:00
Stepan Vladovskiy
d5e95eb7bd feat: added in gitignore devcontainers 2024-06-19 01:06:59 +00:00
Stepan Vladovskiy
94520bc57b feat: Playwright now can start all from comand line, tests are placed in separate files for use workers, webServer is starts before all workers 2024-06-19 01:06:34 +00:00
Stepan Vladovskiy
6fcd0105de feat: with two script now, instead of one. e2e 2024-06-19 01:03:31 +00:00
Stepan Vladovskiy
250947a8d1 style: with info in README 2024-06-19 01:02:05 +00:00
3e214d0352 nosentry-hotfix-2
Some checks failed
deploy / test (push) Failing after 3m39s
deploy / Update templates on Mailgun (push) Has been skipped
2024-06-17 17:23:49 +03:00
4901a761b3 nosentry-hotfix 2024-06-17 17:23:21 +03:00
9c530c4180 .. 2024-06-17 14:45:58 +03:00
Stepan Vladovskiy
86c091f366 feat: With auth e2e test scenarios, not fully done. With debug mode playwright in main yml for gitea 2024-06-13 08:38:43 -03:00
914f9a6a7b bad-creds-show 2024-06-11 23:06:02 +03:00
8b5b5a609f posts-string-fix 2024-06-09 12:36:47 +03:00
95232f8358 meta-context-fix+counter-strings-fix 2024-06-09 12:08:59 +03:00
7fc67c07a4 client-id-session 2024-06-09 08:58:09 +03:00
Tony
ab61c1e35a
Merge pull request #466 from Discours/hotfix/following
hotfix following status update
2024-06-06 17:50:01 +03:00
2a3fe3b89e Merge branch 'dev' into hotfix/following 2024-06-06 17:46:35 +03:00
Tony
1ce6c9cd63
Merge pull request #463 from Discours/hotfix/expo
Expo fixes
2024-06-06 17:42:27 +03:00
dog
e40df167d8 fix all expo path 2024-06-06 13:25:39 +03:00
1a2d197e0c profile-hotfix 2024-06-06 13:20:10 +03:00
9ba7bfada8 Fixed code style 2024-06-06 13:20:10 +03:00
0e8e8f5d20 Add icons to the feed context popup 2024-06-06 13:20:10 +03:00
fa54d89d53 Table of contents minor fixes 2024-06-06 13:20:10 +03:00
fd76d98d96 editor-autosave-fix 2024-06-06 13:20:10 +03:00
f288cc3388 multierror 2024-06-06 13:20:10 +03:00
2952e15591 login-validations-fixes 2024-06-06 13:20:10 +03:00
8a36b21e6e handle-auth-errors 2024-06-06 13:20:10 +03:00
2cbd54d440 defer-fix 2024-06-06 13:15:54 +03:00
fc8d48436a topic-profile-fixed 2024-06-06 12:27:49 +03:00
c8ebb699e2 render-sync 2024-06-06 12:04:01 +03:00
89a55f7d15 topic-fix 2024-06-06 11:36:07 +03:00
f1b705633c minor 2024-06-06 11:01:56 +03:00
121a71873b domain-fix 2024-06-06 10:59:36 +03:00
9dd9bc7cab debug-session 2024-06-06 10:06:36 +03:00
85e21b0fc3 domains-prepare 2024-06-06 09:59:10 +03:00
79d8835c89 subscounter-fix 2024-06-06 09:34:30 +03:00
d338510454 subscounter-fix 2024-06-06 09:32:35 +03:00
c4be770375 ci-fix-2 2024-06-06 09:18:23 +03:00
e286aee46c ci-fix 2024-06-06 09:16:45 +03:00
4e71a2e748 try-e2e 2024-06-06 09:14:48 +03:00
3ec7420eb8 webkit2e2 2024-06-06 09:10:36 +03:00
d249cb050d e2e tests fine 2024-06-06 09:05:23 +03:00
cada98f135 refactoring: subscribe-term separated to newsletter and following 2024-06-06 08:44:59 +03:00
35cb6c1a44 Merge branch 'fix/topic-header' into hotfix/following 2024-06-06 07:57:18 +03:00
6b0fa86c21 Merge branch 'fix/topic-header' of github.com:Discours/discoursio-webapp into fix/topic-header 2024-06-06 07:56:04 +03:00
48a8e88b15 linted 2024-06-05 20:54:56 +03:00
823ff181c6 Merge branch 'feature/empty-feed' into hotfix/following 2024-06-05 20:49:31 +03:00
2ff29b9e0f profile-fix 2024-06-05 19:31:31 +03:00
603ebbb4a5 session-patch 2024-06-05 19:11:48 +03:00
409e64ddaf lock 2024-06-05 18:11:09 +03:00
2a80dce98a splice-stab-patch 2024-06-02 13:37:54 +03:00
b9705ab8ba merged-empty-header 2024-05-31 15:18:14 +03:00
e6a4db2eb5 Merge remote-tracking branch 'hub/fix/topic-header' into hotfix/following 2024-05-30 21:58:52 +03:00
4fe0d8e841 linted-fix 2024-05-30 21:35:51 +03:00
83656fedb5 warnfix 2024-05-30 21:33:54 +03:00
aa0fc4ad95 About-fix 2024-05-30 13:37:14 +03:00
fc25522516 profile-hotfix 2024-05-27 22:13:55 +03:00
7ba6bb2f97 Merge branch 'feature/empty-feed' of https://github.com/Discours/discoursio-webapp into feature/empty-feed 2024-05-25 19:58:23 +03:00
3f8f3492c8 Fixed placeholder image size 2024-05-25 19:57:14 +03:00
309b07c596 Fixed code style 2024-05-25 19:35:02 +03:00
65d7645374 Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into feature/empty-feed 2024-05-25 19:30:35 +03:00
3319bfe973 Fixed subscribers style 2024-05-25 19:27:15 +03:00
8caef5b1f0 Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into fix/topic-header 2024-05-24 21:38:33 +03:00
4e7cfa9241 profile-fixes 2024-05-24 18:07:27 +03:00
ac9fd8d313 Merge branch 'dev' into feature/empty-feed 2024-05-24 18:00:41 +03:00
5f194c7a3b Merge branch 'feature/empty-feed' of github.com:Discours/discoursio-webapp into feature/empty-feed 2024-05-24 18:00:30 +03:00
b7ce071ee9 Merge branch 'dev' of github.com:Discours/discoursio-webapp into hotfix/following 2024-05-24 17:59:29 +03:00
9a42086f08 auth-minor-fixes 2024-05-24 17:59:15 +03:00
Tony
ba6d29ef59
Merge pull request #474 from Discours/hotfix/context-popup-icons
Add icons to the feed context popup
2024-05-22 14:23:31 +03:00
b53aa85337 hardcoded-config-fix 2024-05-21 16:51:36 +03:00
144db5c0e8 hardcoded-config 2024-05-21 16:51:13 +03:00
36ca02dc1b hardcoded-apiurl 2024-05-21 14:13:37 +03:00
e327238678 result-fix6 2024-05-21 04:49:49 +03:00
7b546ecbc8 stab 2024-05-21 04:20:08 +03:00
46b80a3182 rlbk 2024-05-21 04:11:47 +03:00
068fadd19b testdomains 2024-05-21 04:10:34 +03:00
0b01f41edc redeploy 2024-05-21 04:03:29 +03:00
79f94876f0 subs-refactoring 2024-05-21 02:15:52 +03:00
be4d16b1a5 Merge branch 'fix/topic-header' of https://github.com/Discours/discoursio-webapp into fix/topic-header 2024-05-21 00:36:00 +03:00
27d3496423 Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into fix/topic-header 2024-05-21 00:31:38 +03:00
2e6e1abad7 Fixed banners style 2024-05-21 00:26:55 +03:00
0631ecf8c9 Fixed line breaks 2024-05-20 23:51:33 +03:00
417c57e338 Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into feature/empty-feed 2024-05-20 23:41:56 +03:00
8397facc5e Fixed code style 2024-05-20 23:39:59 +03:00
5bde0bc7d0 Add icons to the feed context popup 2024-05-20 23:37:56 +03:00
bec333f7c3 packaging-upgrade 2024-05-20 18:53:48 +03:00
652d0b647a refactoring:following 2024-05-20 14:16:54 +03:00
a25d50d99b sorted, subscribe -> follow 2024-05-20 13:48:38 +03:00
0a5e5eca95 tiptap deprecated warning fix 2024-05-20 11:31:55 +03:00
58ec520c3e Merge branch 'dev' into hotfix/following 2024-05-20 11:17:06 +03:00
Tony
fe2db946b4
Merge pull request #473 from Discours/hotfix/contents
Table of contents minor fixes
2024-05-20 10:51:04 +03:00
9b76a52430 editor-autosave-fix 2024-05-19 02:22:19 +03:00
8f330ab914 multierror 2024-05-19 01:41:50 +03:00
319136474e Table of contents minor fixes 2024-05-19 01:38:56 +03:00
7e2f2d5192 Fixed article cover animation 2024-05-19 01:26:07 +03:00
38899ad8cb login-validations-fixes 2024-05-19 01:18:55 +03:00
59eaf3837d handle-auth-errors 2024-05-19 01:14:28 +03:00
e4f7675606 Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into hotfix/expo 2024-05-19 01:04:49 +03:00
22f0c9052d auth-errors-fix 2024-05-19 01:04:18 +03:00
f22d10a535 Placeholders fixes 2024-05-19 01:03:06 +03:00
135e0d215f error-catch 2024-05-19 00:55:30 +03:00
4a55271a79 edit-hotfix 2024-05-19 00:48:58 +03:00
18a23ee0f8 Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into feature/empty-feed 2024-05-18 23:54:08 +03:00
60664581bd logfix 2024-05-18 20:50:27 +03:00
95c4d777b2 connect-fox 2024-05-18 20:43:20 +03:00
c8517c85c6 edit-hotfix 2024-05-18 20:36:22 +03:00
18bd07291d edit-effect 2024-05-18 20:36:06 +03:00
0b06e41670 authors added 2024-05-18 20:16:45 +03:00
af806590fb postmerge 2024-05-18 19:55:24 +03:00
2e82eec82c Merge branch 'feature/empty-feed' into fix/topic-header 2024-05-18 19:47:01 +03:00
74f7469c7d topic followers + shouts counter 2024-05-18 19:45:36 +03:00
0ecbf07ef6 Merge branch 'dev' into feature/empty-feed 2024-05-18 17:45:51 +03:00
40b2c80b54 Merge branch 'dev' into fix/topic-header 2024-05-18 17:17:22 +03:00
Tony
6c99aa1adf
Merge pull request #469 from Discours/fix/all-topics-page
Fix/all topics page
2024-05-18 17:15:37 +03:00
de7afc2691 Merge branch 'dev' into fix/all-topics-page 2024-05-18 17:13:04 +03:00
Tony
8adff4629f
Merge pull request #468 from Discours/fix/popups
Enlarge profile popup
2024-05-18 17:09:44 +03:00
f14ba82a29 Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into feature/empty-feed 2024-05-18 17:07:53 +03:00
Tony
2c5ba6edab
Merge pull request #470 from Discours/hotfix/header-navigation-style
Hotfix/header navigation style
2024-05-18 17:04:22 +03:00
Tony
0fa881dd6e
Merge pull request #471 from Discours/hotfix/scroll-to-comments
Hotfix/scroll to comments
2024-05-18 17:02:24 +03:00
412360f87f Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into hotfix/scroll-to-comments 2024-05-18 16:59:50 +03:00
39d555c490 Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into hotfix/header-navigation-style
 Conflicts:
	src/components/Nav/HeaderAuth.tsx
2024-05-18 16:58:10 +03:00
Tony
e16f20db81
Merge pull request #467 from Discours/hotfix/snackbar
Fixed snackbar position
2024-05-18 16:52:01 +03:00
c61ad86234 sse 2024-05-18 16:44:57 +03:00
3f96850948 connect-logs-fix 2024-05-18 16:44:57 +03:00
150903ecbd update-token-fix 2024-05-18 16:44:57 +03:00
aa8d5973ee swiper-fix 2024-05-18 16:44:57 +03:00
ed2b4ebfbf stab-hotfix 2024-05-18 16:44:57 +03:00
Ilya Y
cb5c78790b Feature/profile settings page (#452)
* Init change password form
2024-05-18 16:44:57 +03:00
0bb4465e87 Merge branch 'dev' into hotfix/following 2024-05-18 16:38:16 +03:00
f98bfa2d39 Merge branch 'dev' into feature/rating
All checks were successful
deploy / test (push) Successful in 2m56s
deploy / Update templates on Mailgun (push) Has been skipped
2024-05-18 16:35:41 +03:00
6a83aa6f87 sse 2024-05-18 15:47:37 +03:00
91d6e0d41b connect-logs-fix 2024-05-18 15:46:51 +03:00
65b0667a26 logs-connect-fix 2024-05-18 15:46:29 +03:00
ae90118045 session-add 2024-05-18 15:13:43 +03:00
e7f17c3cc9 Merge branch 'dev' into hotfix/following 2024-05-18 15:10:30 +03:00
909c9a2983 Merge branch 'dev' of github.com:Discours/discoursio-webapp into feature/rating 2024-05-18 15:01:43 +03:00
07f2770a98 update-token-fix 2024-05-18 14:25:37 +03:00
abec4043a3 swiper-fix 2024-05-18 13:45:35 +03:00
50387738f8 stab-hotfix 2024-05-18 13:44:43 +03:00
5bbd29ddd2 Fixed style on hovered article card 2024-05-17 23:45:53 +03:00
49ff3ccbe3 Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into hotfix/expo 2024-05-17 23:28:57 +03:00
c261c8cad0 nopublic 2024-05-16 17:22:26 +03:00
Ilya Y
a9f732d1a4
Feature/profile settings page (#452)
* Init change password form
2024-05-13 02:36:46 +03:00
399deaec86 Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into feature/empty-feed 2024-05-11 20:34:47 +03:00
7d69c55963 Code style fixes 2024-05-11 20:33:40 +03:00
0664b5c933 Placeholders on the user profile page 2024-05-11 20:27:57 +03:00
79749bd95e about-hotfix 2024-05-11 19:11:34 +03:00
2334c6b58c Merge branch 'dev' of github.com:Discours/discoursio-webapp into dev 2024-05-11 17:55:05 +03:00
bc6b35c374 hotifx-profile 2024-05-11 17:54:40 +03:00
90c47a0177 Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into fix/topic-header 2024-05-10 20:17:59 +03:00
9542fd0209 Fixes props type in the Placeholder.tsx 2024-05-10 20:14:51 +03:00
be7e31dbd2 Feed page fixes 2024-05-10 20:09:37 +03:00
e53181ef2d Links in the placeholders for authorized users 2024-05-10 19:57:34 +03:00
6a789d4a0e Feed placeholders 2024-05-10 19:52:13 +03:00
Tony
aebff60263
Merge pull request #460 from Discours/hotfix/author-profile
Hotfix/author profile
2024-05-10 17:41:19 +03:00
9ec36168ae Topic header fixes 2024-05-10 17:14:06 +03:00
1e33d18c54 Expo fixes 2024-05-10 15:59:21 +03:00
ab7dda6c14 safari-regexp-fix 2024-05-10 15:44:36 +03:00
53d3e2d836 nounswiped 2024-05-09 18:08:54 +03:00
7d24fe5598
Fixed snackbar position (#461) 2024-05-09 14:26:48 +03:00
Kosta
30672fc1af
Enlarge profile popup (#462)
Co-authored-by: kvakazyambra <kvakazyambra@gmail.com>
2024-05-09 14:26:16 +03:00
7d490c91aa Fixed snackbar position 2024-05-09 12:15:39 +03:00
2fa5a98933 Enlarge profile popup 2024-05-09 12:04:55 +03:00
605dae2127 common-result 2024-05-08 23:43:38 +03:00
7ffb568661 author-debug 2024-05-08 00:12:53 +03:00
08533f4d1f debug-author-profile 2024-05-08 00:10:54 +03:00
Tony
138403dfc3
Merge pull request #459 from Discours/hotfix/topic-reopen
Hotfix/topic reopen
2024-05-07 19:22:56 +03:00
67004a889f typed-2 2024-05-07 18:59:49 +03:00
0b8ee33ed5 typed 2024-05-07 18:56:46 +03:00
c52e79faf0 import-typo-fix 2024-05-07 18:49:39 +03:00
9c1ed4a04b orig-meta 2024-05-07 18:38:03 +03:00
ec0c2cf136 isorted-fmt 2024-05-07 18:17:31 +03:00
f992cf9377 my-meta 2024-05-07 18:05:22 +03:00
f6043ad223 lock-fix 2024-05-07 16:47:03 +03:00
e1a69d97c2 vike-downgrade 2024-05-07 16:16:43 +03:00
8df9e3c356 bump-ver 2024-05-07 15:59:07 +03:00
78210d558f seen-usecontext 2024-05-07 11:51:17 +03:00
a03c26dd5a seen-fix 2024-05-07 11:15:20 +03:00
1f3b52258d topics renew every hour 2024-05-07 03:05:04 +03:00
56b292c817 refactoring: topics context provider 2024-05-07 02:44:25 +03:00
a885686ae4 stab 2024-05-07 02:44:06 +03:00
06ce5266e2 refactoring: seen context provider 2024-05-07 02:43:23 +03:00
a75401b802 swiper-1-2-fix 2024-05-07 02:32:49 +03:00
Tony
73b42dbf09
Merge pull request #457 from Discours/fix/popups
Unified popups style
2024-05-07 01:37:31 +03:00
1aa1dd3648 Remove redundant params for popup 2024-05-07 01:16:28 +03:00
8ea55b3632 header-hotfix 2024-05-07 01:15:57 +03:00
b7f19353f3 Fixed code style 2024-05-07 01:13:16 +03:00
ce86896c1d Unified popups style 2024-05-07 01:01:20 +03:00
52ef17dc6d hotfix-onecard-swiper 2024-05-07 00:51:07 +03:00
75c415aece Merge branch 'dev' of github.com:Discours/discoursio-webapp into dev 2024-05-06 23:47:04 +03:00
e6888d2549 hotifx-dx 2024-05-06 23:45:54 +03:00
8fc86b9bd9 linted 2024-05-06 23:36:27 +03:00
417af2fc20 comment-rating-rebased 2024-05-06 23:26:16 +03:00
7d515c4fe2 Merge branch 'dev' of github.com:Discours/discoursio-webapp into feature/rating 2024-05-06 23:22:29 +03:00
Tony
94a9eb4fff
Merge pull request #456 from Discours/hotfix/comments-renew
load-after-create
2024-05-06 22:41:51 +03:00
502dcfae6d is-posting-comment-feature 2024-05-06 21:45:17 +03:00
dcbeb55ac9 draft-permission-error-msg 2024-05-06 21:37:54 +03:00
3ce53728ea drafts-reload-session 2024-05-06 21:16:13 +03:00
6e8b6043d7 Merge branch 'dev' of github.com:Discours/discoursio-webapp into hotfix/comments-renew 2024-05-06 19:20:59 +03:00
3fadd719b2 load-after-create 2024-05-06 19:17:34 +03:00
Tony
764ad4ea08
Merge pull request #455 from Discours/hotfix/header
Hotfix/header
2024-05-06 19:00:08 +03:00
d8f61e5b66 styles-fixme 2024-05-06 18:43:10 +03:00
500e8132dd fix nav header 2024-05-06 18:39:01 +03:00
Tony
a024080661
Merge pull request #436 from Discours/feature/glitchtip
error collector connected
2024-05-06 17:46:15 +03:00
1c02d3f29b login-error-fix 2024-05-06 17:42:18 +03:00
75c7ef00f6 Merge branch 'dev' into feature/glitchtip 2024-05-06 17:36:20 +03:00
Tony
8f09d6fc54
Merge pull request #447 from Discours/hotfix/editor-permission
use-session in editor
2024-05-06 17:33:04 +03:00
fe695f427f postmerge 2024-05-06 17:26:03 +03:00
82e2abf8e3 Merge branch 'dev' into hotfix/editor-permission 2024-05-06 17:23:24 +03:00
Tony
afd9bba005
Merge pull request #454 from Discours/hotfix/uploader
Hotfix/uploader
2024-05-06 17:16:57 +03:00
Tony
1c61692802
Merge pull request #453 from Discours/hotfix/linted
Hotfix/linted
2024-05-06 14:53:32 +03:00
8e69c3979e fmt 2024-05-06 14:08:41 +03:00
83379c53ae auth-upload 2024-05-06 14:07:19 +03:00
56f46c18dd shuffle-topic-fix-3 2024-05-06 13:53:35 +03:00
3f8d495076 shuffle-topic-fix-2 2024-05-06 13:50:15 +03:00
28022607e3 topics-fix-2 2024-05-06 13:46:00 +03:00
1b1f3441dd shuffle-tolerate 2024-05-06 13:33:57 +03:00
0cbd3aedba following-debug 2024-05-05 20:04:47 +03:00
9a475b8d0c Merge branch 'hotfix/linted' into feature/rating 2024-05-05 19:32:25 +03:00
eb17b5185f Merge branch 'hotfix/linted' into feature/glitchtip 2024-05-05 19:30:45 +03:00
7d17d63b5d buffer-fix 2024-05-05 19:20:49 +03:00
26b7afae66 vite-fix 2024-05-05 19:19:14 +03:00
be9a4ff275 fmt 2024-05-05 19:17:06 +03:00
39b15320b7 isolated-type 2024-05-05 19:15:56 +03:00
fa78483a38 biomed 2024-05-05 19:13:48 +03:00
629c2ad3de fmt 2024-05-04 23:35:36 +03:00
3161c2b2ec fix 2024-05-04 22:56:26 +03:00
dee6cfbd34 pkg-fix 2024-05-04 22:54:33 +03:00
848d791e42 postmerge 2024-05-04 22:52:31 +03:00
193015a912 postmerge 2024-05-04 22:20:16 +03:00
9277d652e9 postmerge 2024-05-04 22:17:36 +03:00
21c216d19c lock-fix-2 2024-05-04 22:10:10 +03:00
ce670d0ff7 lock-fix 2024-05-04 20:23:51 +03:00
7cfe63b790 lock-fix 2024-05-04 20:23:28 +03:00
fbeceb820d postmegred-2 2024-05-04 20:22:29 +03:00
7af4e91792 postmerge 2024-05-04 20:21:00 +03:00
9f6e2c7893 postmerge 2024-05-04 20:18:08 +03:00
b36e39edf0 postmerge 2024-05-04 20:17:47 +03:00
b1cd3d917b Merge remote-tracking branch 'hub/dev' into feature/glitchtip 2024-05-04 14:57:33 +03:00
b4d6171cea Merge remote-tracking branch 'hub/dev' into feature/rating 2024-05-04 14:54:06 +03:00
df90953138 Merge branch 'hotfix/editor-permission' into feature/rating 2024-05-04 14:52:24 +03:00
27a9662143 Merge branch 'hotfix/editor-permission' into feature/glitchtip 2024-05-04 14:51:13 +03:00
39dd78e25d checkfix 2024-05-04 14:39:05 +03:00
95fb194a96 condition0fix 2024-05-04 14:33:14 +03:00
3835618f3a save-draft-fix 2024-05-04 14:31:52 +03:00
439be16fa1 draft-save-debug 2024-05-03 16:38:12 +03:00
6aa84c17be
Fix/all topics page (#432)
* Fixed topics page

* linted

* Topics list fixes

* Revert styles for user descriptions

* Fixed author badge in the following modal

---------

Co-authored-by: ilya-bkv <i.yablokov@ccmp.me>
2024-05-03 11:49:05 +03:00
ad2f6be1ae
Fixed header icons (#451)
* Fixed header icons

* Code style fixes
2024-05-03 11:48:49 +03:00
7dc2efca66 isAuthenticate memo removed 2024-05-03 11:36:15 +03:00
e0ed344218 fmt 2024-05-03 01:43:13 +03:00
b7939dead0 saving-draft-fix 2024-05-03 01:40:33 +03:00
bd0fdeeb1f saveDraft-fix 2024-05-03 01:39:28 +03:00
3bb0044f6e Code style fixes 2024-05-03 00:06:03 +03:00
f0b2ef0ef9 Fixed header icons 2024-05-03 00:02:48 +03:00
a89a9bb1f4 Merge branch 'hotfix/editor-permission' into feature/rating 2024-05-02 17:05:46 +03:00
571e475445 Merge branch 'dev' into feature/rating 2024-05-02 17:05:31 +03:00
ilya-bkv
004baba591 Merge remote-tracking branch 'origin/fix/all-topics-page' into fix/all-topics-page 2024-05-02 17:02:09 +03:00
ilya-bkv
3539ab500e Merge remote-tracking branch 'origin/dev' into fix/all-topics-page 2024-05-02 16:58:34 +03:00
e6ff073e29 buffer-poly-fix 2024-05-02 01:27:34 +03:00
2500206a9d vite-poly 2024-05-02 01:24:03 +03:00
7896950ec8 nodeversion 2024-05-01 23:07:46 +03:00
3075626d57 buffer-fix-2 2024-05-01 22:05:15 +03:00
f77f0f08eb sessionfix+bufferfix 2024-05-01 21:34:35 +03:00
18b7b22270 suspense-fix 2024-05-01 20:40:40 +03:00
4b1d21b15e buffer-added 2024-05-01 18:59:38 +03:00
284c728b61 defer-fixed 2024-05-01 18:54:40 +03:00
e29188726c popup-fix 2024-05-01 18:23:47 +03:00
f02abc3ba0 lock-fix 2024-05-01 18:23:47 +03:00
702865b0e6 postmerge biomed 2024-05-01 18:23:47 +03:00
98e0bb1078 revised changes 2024-05-01 18:23:47 +03:00
Tony
ecd038a306
Merge pull request #448 from Discours/hotfix/header-navigation-style
Header navigation style fixes
2024-05-01 11:32:24 +03:00
04978ebc7c
Feed style fixes (#450)
* Feed style fixes

* Change subscriptions list icon
2024-04-30 20:22:44 +03:00
a4d6466392
Fixed scrolling to comments (#449) 2024-04-30 18:58:27 +03:00
11b932c30e Fixed scrolling to comments 2024-04-30 18:43:38 +03:00
12ca2b9a97 Fixed author badge in the following modal 2024-04-30 18:14:10 +03:00
c1a7291401 Fixed paddings in the header 2024-04-30 17:27:38 +03:00
e1484e0aa9 Revert styles for user descriptions 2024-04-30 16:56:39 +03:00
867acd4b90 Fixed code style 2024-04-30 16:26:31 +03:00
3eebc0b7ed Fixed style setting 2024-04-30 16:21:56 +03:00
c907e6ffa5 Header navigation style fixes 2024-04-30 16:16:30 +03:00
4c787fe49c Topics list fixes 2024-04-30 15:26:53 +03:00
ece5f2505f Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into fix/all-topics-page 2024-04-26 09:19:33 +03:00
ilya-bkv
b3155c4535 fix author view 2024-04-26 06:13:23 +03:00
ilya-bkv
ac39230271 update 2024-04-26 06:05:10 +03:00
7c9ecd1e3a Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into fix/all-topics-page 2024-04-25 23:38:04 +03:00
Tony
b9f7d01339
Merge pull request #427 from Discours/hotfix/correct-following-status
Hotfix/correct following status
2024-04-25 19:36:32 +03:00
Ilya Y
1c94638ce8
Add pagination on Expo (#441)
* Add pagination on Expo

* update Expo load articles method
2024-04-25 16:55:34 +03:00
84fb665f9d postmerge-fix-2 2024-04-25 13:55:58 +03:00
23326b10f7 postmerge-fix 2024-04-25 13:53:51 +03:00
e38d3b39b7 Merge branch 'dev' into hotfix/correct-following-status 2024-04-25 13:46:36 +03:00
3174c9d83c Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into fix/all-topics-page 2024-04-24 22:31:11 +03:00
ilya-bkv
5334291878 fix feed dropdown 2024-04-24 15:48:37 +03:00
Ilya Y
9028618067
Add gallery description (#434)
Add gallery description
2024-04-24 12:30:17 +03:00
Ilya Y
c1d1f05edf
Hotfix/author comments render (#446)
Fix comments fetching
2024-04-24 11:08:00 +03:00
Arkadzi Rakouski
4a7a052d67
fix falsy active header (#444)
fix falsy active header
2024-04-24 11:07:07 +03:00
Tony
036443d7ee
Merge pull request #445 from Discours/feature/getImage-refactoring
getImageUrl.ts refactoring
2024-04-24 10:31:37 +03:00
ilya-bkv
fc056f14b8 fix biome 2024-04-24 10:23:42 +03:00
ilya-bkv
59561ec26b add unsafe 2024-04-24 10:22:05 +03:00
ilya-bkv
437e666b3c getImageUrl.ts refactoring 2024-04-24 09:44:01 +03:00
Ilya Y
c9f494d2c1
Hide autofill in profile settings (#442)
* hide autofill in profile settings
2024-04-22 16:59:39 +03:00
Ilya Y
36fff73af6
Hotfix/remove state params after login (#443)
* hide autofill in profilr settings

* fix Image width

* Remove state search params after login

* fix biome
2024-04-22 16:47:37 +03:00
ilya-bkv
cca858dadf fix image width 2024-04-22 16:37:47 +03:00
6030e665eb Merge branch 'dev' into feature/rating 2024-04-19 18:30:41 +03:00
Ilya Y
16e3e75381
Add hash navigation in slider (#440)
Sliders with search params
2024-04-18 16:34:07 +03:00
36970c03c4 profile-fix 2024-04-17 19:26:26 +03:00
0f28fe891a post-oauth-fix 2024-04-17 18:47:24 +03:00
69fc0ffd07 less-code 2024-04-17 16:44:53 +03:00
6fbe9603fe conditional 2024-04-16 07:08:20 +03:00
f2012bca18 load-fix 2024-04-16 07:07:36 +03:00
f7c33c167a fmt 2024-04-16 07:03:05 +03:00
bd4fedc6c7 preloaded-author-fix 2024-04-16 07:01:18 +03:00
Tony
bb7d289ff7
Merge pull request #438 from Discours/hotfix/provile-dala-load
Load user profile
2024-04-15 21:05:13 +03:00
5ddbb0dd1b biome-ignore 2024-04-15 21:02:58 +03:00
6e48e64497 -npm-run-format 2024-04-15 21:01:00 +03:00
ilya-bkv
e3a2aaf73a Load user profile 2024-04-15 15:39:34 +03:00
ilya-bkv
78cde31943 Swiper (init with promise) 2024-04-15 07:43:48 +03:00
ec58279d5c biome-action- 2024-04-10 17:16:55 +03:00
51cd05ba64 biome-action 2024-04-10 17:15:25 +03:00
0eb72b9534 gh-action-fix-2 2024-04-10 17:12:22 +03:00
36a3606557 gh-action-fix 2024-04-10 17:09:40 +03:00
fe41845271 biome-setup 2024-04-10 17:06:45 +03:00
e1cfa376c5 fmt 2024-04-10 17:02:58 +03:00
e47650fe84 biome-fix 2024-04-10 16:57:19 +03:00
d6121efeb1 vite-bump 2024-04-10 16:54:57 +03:00
306d197d74 lock 2024-04-10 16:51:19 +03:00
8b95ae2f85 lock-fix 2024-04-10 16:40:00 +03:00
ec70a078ad connected 2024-04-10 16:37:09 +03:00
Tony
66ed666b90
Merge pull request #435 from Discours/feature/session-upgrade
app-data-author
2024-04-08 22:15:12 +03:00
44b9c98ffc Merge branch 'dev' into feature/session-upgrade 2024-04-08 20:34:50 +03:00
ilya-bkv
499341baea fix syule types 2024-04-08 18:28:08 +03:00
455006f627 fmt 2024-04-08 18:19:43 +03:00
cf0214563d use-following-data-2 2024-04-08 17:48:58 +03:00
aeb42de908 use-following-data 2024-04-08 16:14:19 +03:00
79961b7f47 fdata-fix 2024-04-08 16:04:10 +03:00
adae4c0144 Merge branch 'dev' into feature/session-upgrade 2024-04-08 15:59:50 +03:00
6d12b01d56 author-type-fix 2024-04-08 15:54:01 +03:00
58c4d6eae7 app-data-author 2024-04-08 15:49:40 +03:00
6851c3af6a
Feature/header (#408)
New header
2024-04-08 14:26:20 +03:00
69340e4b87 Merge branch 'dev' into feature/rating 2024-04-08 12:53:29 +03:00
ilya-bkv
c3495ed0b3 Fil lint 2024-04-04 09:02:34 +03:00
ilya-bkv
b752357224 Fix profile settings Is Floating PanelVisible 2024-04-04 09:01:26 +03:00
ilya-bkv
b9591d7364 Cleanup code 2024-04-02 14:28:43 +03:00
ilya-bkv
d55be2505d load Random Topics on Mount 2024-04-02 14:27:56 +03:00
ilya-bkv
e93cb76a78 Disallow in robots txt 2024-04-02 06:12:29 +03:00
24cd1c54a8 Merge branch 'dev' of https://github.com/Discours/discoursio-webapp into fix/all-topics-page 2024-04-01 23:32:43 +03:00
6d30964a8b linted 2024-04-01 23:31:16 +03:00
ilya-bkv
9d5ddcfccc Show saving status in ProfileSettings 2024-04-01 07:16:53 +03:00
ilya-bkv
d5aa083a2f Fix Topic Top Articles 2024-03-29 20:25:17 +03:00
ilya-bkv
70bc237e2c Fix Topic Top Articles 2024-03-29 20:25:07 +03:00
ilya-bkv
5e5693332c Load more fix 2024-03-29 16:53:26 +03:00
ilya-bkv
ce0c2c0f0a Fix expo types 2024-03-29 12:58:32 +03:00
ilya-bkv
bbd8ef798c Fix expo types 2024-03-29 12:47:56 +03:00
ilya-bkv
75d929efda Fix expo 2024-03-29 12:35:01 +03:00
ilya-bkv
0b88357f7c Fix expo 2024-03-29 12:30:38 +03:00
a95686d12b Fixed topics page 2024-03-27 23:10:49 +03:00
Ilya Y
78dd43a497
Fix expo article length (#431) 2024-03-27 03:54:15 +03:00
ddaed0557d
Fixed topic body render (#429)
Fixed topic body render
2024-03-26 16:57:24 +03:00
Ilya Y
b84e7f43f7
Fix reload page after foute from profile to another profile (#430) 2024-03-25 16:07:14 +03:00
e3c00cc6cd and 2024-03-22 08:29:37 +03:00
db830308e9 fix 2024-03-22 08:28:11 +03:00
0c078a7bc1 get-image-url-hotfix 2024-03-22 08:25:01 +03:00
ilya-bkv
c80b2f044a Merge dev 2024-03-21 15:48:54 +03:00
ilya-bkv
4c655509df Merge remote-tracking branch 'origin/dev' into hotfix/correct-following-status
# Conflicts:
#	src/components/Views/Author/Author.tsx
2024-03-21 15:48:36 +03:00
ilya-bkv
d4ce74b491 Hide modal after route to profile from another profile 2024-03-21 11:42:28 +03:00
ilya-bkv
97b1ec4386 Audio player fix (play by track click) 2024-03-20 14:59:07 +03:00
5a7e416700 linted 2024-03-19 14:54:40 +03:00
e33faa049e linted 2024-03-19 14:53:59 +03:00
d36603a57c Merge branch 'dev' into feature/rating 2024-03-19 14:53:03 +03:00
5f939839fb public-env-urls 2024-03-19 14:23:20 +03:00
d9b3d18e95 Merge branch 'dev' of github.com:Discours/discoursio-webapp into dev 2024-03-19 10:15:40 +03:00
ilya-bkv
a88d200109 Biome fix 2024-03-18 14:57:55 +03:00
ilya-bkv
546d3d2659 Fix userpic upload mutation 2024-03-18 14:55:07 +03:00
ilya-bkv
96685507ea Fix response Update reaction 2024-03-18 14:25:10 +03:00
ilya-bkv
084bd29d2b Change Expo article's count 2024-03-18 14:22:10 +03:00
Ilya Y
6812ecd187
One request for random topics (#428) 2024-03-18 14:07:28 +03:00
ilya-bkv
896c180dd1 [FIX] Show reaction after submit 2024-03-18 10:40:31 +03:00
ilya-bkv
4fdd025e44 [FIX] Show more shouts 2024-03-18 10:22:12 +03:00
ilya-bkv
8d78ba2c62 fix preload author 2024-03-15 19:42:55 +03:00
ilya-bkv
dd4065036f cleanup code 2024-03-15 18:24:33 +03:00
ilya-bkv
00a0436835 cleanup code 2024-03-15 17:58:34 +03:00
ilya-bkv
d202845aab run fix checks 2024-03-15 17:57:03 +03:00
ilya-bkv
edf4400627 Change follow logic 2024-03-15 17:55:37 +03:00
ilya-bkv
5c4d605724 [WIP] 2024-03-15 15:58:22 +03:00
ilya-bkv
b44008b229 [WIP] 2024-03-14 09:22:43 +03:00
ilya-bkv
75caee909e [WIP] 2024-03-12 11:52:39 +03:00
36120abda5 validation-fix 2024-03-11 16:23:06 +03:00
ilya-bkv
96d6e6bd0c Fix login password onBlur 2024-03-11 10:41:31 +03:00
ilya-bkv
80ffc564a9 [WiP] 2024-03-11 08:20:00 +03:00
3b033be2b6 lint-fix 2024-03-07 15:52:03 +03:00
4e2152b8b0 postmerge-fix 2024-03-07 15:49:28 +03:00
cc951c305b Merge branch 'dev' into feature/rating 2024-03-07 15:38:35 +03:00
Tony
ae589e39fa
Merge pull request #414 from Discours/hotfix/posting-author
posting author fixes
2024-03-07 15:35:30 +03:00
b31d0deed4 merged 2024-03-07 15:31:09 +03:00
ilya-bkv
248d06decd cleanup code 2024-03-07 15:14:58 +03:00
ilya-bkv
2280a776b3 Improve draft saving process in EditView 2024-03-07 15:13:52 +03:00
Tony
bf9f0d9c7b
Merge branch 'dev' into hotfix/posting-author 2024-03-07 14:09:00 +03:00
db7825fab8 onmount-fix 2024-03-07 13:58:12 +03:00
0b905eb635 merged-2 2024-03-07 13:14:22 +03:00
171458a83a merged 2024-03-07 13:04:02 +03:00
a59ee6260c create-fx-fix 2024-03-07 13:03:19 +03:00
Ilya Y
1d64d97f9f
Hotfix/parse auth errors (#423)
Add fixes to login form parse errors
2024-03-07 11:07:46 +03:00
Tony
aed9952b61
Merge pull request #426 from Discours/feature/delete-comment-error
Comment delete message
2024-03-07 10:24:55 +03:00
ilya-bkv
41e40ada9b Comment delete message 2024-03-07 10:20:50 +03:00
d7f00cd962 query-fix 2024-03-06 22:16:55 +03:00
af0c7fa712 get-my-shout-fix 2024-03-06 16:01:46 +03:00
56a83dc8ba fmt 2024-03-06 15:55:33 +03:00
e252ce464b fmt 2024-03-06 15:53:51 +03:00
3e2d7416b7 merged 2024-03-06 15:37:16 +03:00
4f6169f16d merged 2024-03-06 15:36:54 +03:00
626624ddb4 topics-comments 2024-03-06 15:36:12 +03:00
Tony
4a1ad2b5af
Merge pull request #425 from Discours/hotfix/delete-reaction-in-profile
Add delete function to Comment component
2024-03-06 15:07:06 +03:00
ilya-bkv
45e8f2ba02 Refactor Comment component and improve debug logging
Implemented a delete function in the Comment component that filters out the selected comment in real time, enhancing the user experience by providing immediate feedback upon deletion. Also, refactor the authorFollows function in the GraphQL client core to use standardized string quotations for better code consistency.
2024-03-06 15:02:32 +03:00
ilya-bkv
eb03dc1d05 Add delete function to Comment component
The Comment component has been updated to include a delete function which removes the selected comment from the displayed list in real time. This update enhances user experience by providing instant feedback when a comment is deleted. Additionally, debug logging was added to authorFollows function for testing purposes.
2024-03-06 14:56:32 +03:00
136ecda3b1 topics-comments 2024-03-06 13:57:39 +03:00
57a9fe42a8 bypass-linter 2024-03-06 12:56:00 +03:00
e2c98ded5e reaction-error-handling 2024-03-06 12:49:06 +03:00
5b97ea3746 delete-reaction-fix 2024-03-06 12:04:33 +03:00
ce66874089 no-created-by-unwrap 2024-03-06 10:30:07 +03:00
449154bd1b get-shouts-drafts 2024-03-05 18:52:34 +03:00
dc719120b2 debug-update-shout 2024-03-05 18:20:47 +03:00
2d7fd38d82 get-my-shout 2024-03-05 16:44:51 +03:00
4ed15f405e access+userpic-fix 2024-03-05 16:07:14 +03:00
f8bf3d86a0 edit-access+redirect 2024-03-05 16:01:47 +03:00
9b7079def5 naming-fix 2024-03-04 18:06:40 +03:00
50e8093fee Merge branch 'hotfix/posting-author' of github.com:Discours/discoursio-webapp into hotfix/posting-author 2024-03-04 17:10:34 +03:00
0160dec607 Merge branch 'dev' of github.com:Discours/discoursio-webapp into hotfix/posting-author 2024-03-04 17:09:26 +03:00
Tony
780c3571e4
Merge pull request #424 from Discours/feature/notifier
notifications 2.0
2024-03-04 17:07:06 +03:00
ca66517d6a update-reaction-fix 2024-03-04 16:31:31 +03:00
dbec93aee1 Merge branch 'feature/notifier' into feature/rating 2024-03-04 16:29:30 +03:00
ca41467f68 merged 2024-03-04 16:28:48 +03:00
372012badf Merge branch 'dev' into feature/rating 2024-03-04 16:28:10 +03:00
ed23e1f7a8 updated-schema 2024-03-04 15:51:34 +03:00
1e27546b3e group-index-fix 2024-03-04 15:35:34 +03:00
a207aeeb44 new-api 2024-03-04 15:32:48 +03:00
ilya-bkv
4196bb0f1e Fix comment edit without refresh (update editor state) 2024-03-04 15:18:24 +03:00
ilya-bkv
bc1ea82127 Fix comment edit without refresh 2024-03-04 13:47:11 +03:00
ilya-bkv
e0503f593f Remove comment edited date 2024-03-04 11:54:09 +03:00
96f72f00ee reactions-context-fix 2024-03-03 20:06:58 +03:00
f0bddfe461 rating-update-fix 2024-03-03 19:39:25 +03:00
1397cc9b84 fixd 2024-03-03 18:10:30 +03:00
7f5553316c merged 2024-03-03 17:40:11 +03:00
Tony
b43ba41f9e
Merge branch 'dev' into hotfix/posting-author 2024-03-03 17:36:14 +03:00
Tony
312f0f5cc9
Merge pull request #422 from Discours/hotfix/all-authors-ssr
Hotfix/all authors ssr
2024-03-03 17:27:33 +03:00
6bee204280 myrate-update-fix 2024-03-03 17:26:39 +03:00
bbb5ad435a merged 2024-03-03 17:19:17 +03:00
Tony
9a7c973bb2
Merge branch 'dev' into hotfix/all-authors-ssr 2024-03-02 10:32:59 +03:00
780f59f517 feed-comments-order-fix 2024-03-01 16:04:28 +03:00
d0be8ffb6a minor 2024-03-01 00:11:59 +03:00
72610d10b5 wip 2024-02-29 23:54:34 +03:00
423af46377 fixed 2024-02-29 23:46:15 +03:00
deebe79f55 comments-hotfix 2024-02-29 20:51:07 +03:00
a87efec9dc Merge branch 'dev' of github.com:Discours/discoursio-webapp into dev 2024-02-29 18:10:56 +03:00
abc2d01485 comments-order-hotfix 2024-02-29 18:05:05 +03:00
ilya-bkv
72cb6325d9 Fix comments date in Feed page 2024-02-29 17:33:17 +03:00
ilya-bkv
c9d79088d8 Fix link border bottom color 2024-02-29 17:24:34 +03:00
9e513b2430 drafts-order-fix 2024-02-29 16:08:35 +03:00
1a3d7a9520 Merge branch 'dev' of github.com:Discours/discoursio-webapp into dev 2024-02-29 09:53:00 +03:00
147417d172 gql-hotfix 2024-02-29 09:51:39 +03:00
Ilya Y
b1b3f8b435
auth modals fix logic (#420)
auth modals fix logic
2024-02-27 17:42:54 +03:00
Ilya Y
8b066104e6
Hotfix/can edit fix (#421)
Fix canEdit() in Commetns
2024-02-27 14:41:49 +03:00
ilya-bkv
0d1aaebfa5 clearSearchParams fix 2024-02-26 15:24:03 +03:00
ilya-bkv
1d8ffe64b5 Div 2024-02-26 15:18:56 +03:00
ilya-bkv
6e1e46fca2 Cleanup code 2024-02-26 14:56:40 +03:00
ilya-bkv
80e338a60d Cleanup code 2024-02-26 14:38:48 +03:00
ilya-bkv
e34aa5e70b fix authors list pages 2024-02-26 14:38:23 +03:00
ilya-bkv
507cfebd48 Cleanup code 2024-02-26 14:19:12 +03:00
55ebc1c634 space-fix 2024-02-26 01:43:15 +03:00
bfc7ed15d8 sort-order-fix 2024-02-26 01:40:09 +03:00
96c52ae2b4 load-author-hotfix 2024-02-26 01:29:26 +03:00
132418d539 version-sync 2024-02-26 00:50:26 +03:00
5092a98fba merged 2024-02-26 00:44:58 +03:00
f5295d2c3d stat-api-hotfix 2024-02-26 00:20:55 +03:00
Ilya Y
73e1f575f8
Hotfix/all authors bugfix (#418)
bufgix to authors
2024-02-25 10:31:11 +03:00
Ilya Y
fe9fd37d9d
Fix getRandomTopics (#419) 2024-02-25 10:04:05 +03:00
7a57c39a75 follows-queries-hotfix 2024-02-23 22:31:33 +03:00
3d4f542cdf session-modal-hotfix 2024-02-23 10:44:50 +03:00
7c0759945b Merge branch 'hotfix/author-follows' into dev 2024-02-23 10:41:41 +03:00
5ca261710c Merge branch 'dev' of github.com:Discours/discoursio-webapp into dev 2024-02-23 10:40:13 +03:00
4b73ace2f0 session-modal-hotfix 2024-02-23 10:39:35 +03:00
a85a493022 session-modal-fix 2024-02-23 10:38:11 +03:00
b30ae915bb stat-query-fix 2024-02-23 02:15:17 +03:00
11e722d2af stat-fix 2024-02-23 02:13:31 +03:00
Ilya Y
4e931a39c5
Feature/all authors order (#410)
Load Authors by btn click
---------

Co-authored-by: Untone <anton.rewin@gmail.com>
2024-02-22 10:29:52 +03:00
Tony
01a4b558bd
api update (#417)
* api update

* query-fix
2024-02-21 17:25:28 +03:00
Ilya Y
a7f3ee54c1
fix scroll to comments by search params (#416)
* fix scroll to comments by search params

* CommentsTree sort

* Cancel cleanup search params in link to comment
2024-02-21 16:44:21 +03:00
fa594b6009 toler 2024-02-21 14:59:40 +03:00
7af3f1d405 tsc-passed 2024-02-21 14:43:04 +03:00
acbe96a830 nostat 2024-02-21 14:37:22 +03:00
861bfafbd3 query-fix 2024-02-21 12:20:06 +03:00
9470175535 api update 2024-02-21 12:13:40 +03:00
Tony
cbfe03c04e
Merge pull request #409 from Discours/feature/editor-buttons
canEdit-fix
2024-02-19 14:30:21 +03:00
c2035b801a update-fixxd 2024-02-17 21:57:02 +03:00
3f7679710f minor 2024-02-17 18:44:56 +03:00
560739627a more-defined 2024-02-17 18:13:54 +03:00
0dd2736dd5 catch-response-on-update 2024-02-17 18:03:01 +03:00
3a6faa65a8 tolerate-fails-more 2024-02-17 17:40:10 +03:00
e32e3d31ea fmt 2024-02-17 17:31:08 +03:00
002ffe64fc parse-tolerate 2024-02-17 17:28:57 +03:00
6fa6076f9f editor-context-fixes 2024-02-17 17:22:11 +03:00
Tony
4e49fb7165
Merge pull request #415 from Discours/feature/auth-resend
minor hotifx form
2024-02-17 17:08:01 +03:00
20e4e985f5 fmt 2024-02-17 16:25:25 +03:00
da7c98afab minor 2024-02-17 16:04:47 +03:00
748bd206d1 small-fixes 2024-02-17 16:03:47 +03:00
Tony
bc17097d32
Merge pull request #411 from Discours/hotfix/editor-adapter
hotfix editor with patch
2024-02-17 15:41:32 +03:00
b34da48e8c Merge remote-tracking branch 'hub/hotfix/editor-adapter' into feature/rating 2024-02-16 21:51:17 +03:00
a6a825d623 pkg-up 2024-02-16 21:51:05 +03:00
855953d888 Merge branch 'feature/editor-buttons' into feature/rating 2024-02-16 21:49:39 +03:00
bfdaeb475b schema-redeploy 2024-02-16 21:47:42 +03:00
b731f1cfa6 gql-fix 2024-02-16 20:07:38 +03:00
1deff46de8 gql-fix 2024-02-16 20:07:00 +03:00
6cc6b4f5ac id-optional-fix-2 2024-02-16 20:04:05 +03:00
b295ba0dbf update-reaction-query-fix 2024-02-16 19:58:24 +03:00
2763bb4eef delete-reaction-fix-header-link-fix 2024-02-16 19:27:38 +03:00
c706915d7d minor-fix 2024-02-16 19:22:50 +03:00
f482856cca fine 2024-02-16 19:14:15 +03:00
869cf5bb1a condition-fix 2024-02-16 18:47:48 +03:00
49f7d4efc1 patch-fix 2024-02-16 18:09:42 +03:00
8696e6aecf lockfix2 2024-02-16 18:05:04 +03:00
3bbe445b69 lockfix 2024-02-16 18:02:46 +03:00
a962f6973a hub 2024-02-16 17:56:56 +03:00
e2a829f44f modal-link-fix
All checks were successful
deploy / test (push) Successful in 2m3s
deploy / Update templates on Mailgun (push) Has been skipped
2024-02-16 14:30:29 +03:00
6451118e90 bump-with-link 2024-02-16 14:29:27 +03:00
e5ce4585fd not-a-vite-but 2024-02-16 14:11:17 +03:00
cb2781bad8 hide-voters-for-reader 2024-02-16 13:59:32 +03:00
19bba97d73 can-edit-fix-2 2024-02-16 13:38:07 +03:00
98264cfce7 canEdit-fix 2024-02-16 13:21:25 +03:00
4d0291bd9f vite-rollback
All checks were successful
deploy / test (push) Successful in 2m42s
deploy / Update templates on Mailgun (push) Has been skipped
2024-02-16 12:00:23 +03:00
b0b7cf424d reactivity+ 2024-02-16 11:29:06 +03:00
dfb2b17116 rating-reactivity-fixing-2 2024-02-16 11:02:00 +03:00
dab1eff314 rating-reactivity-fixing 2024-02-16 11:01:40 +03:00
54ef10307e dont-hesitate 2024-02-15 22:47:02 +03:00
94c5e5d51d some-space 2024-02-15 22:28:07 +03:00
1655fb1c25 ignore-py 2024-02-15 22:19:39 +03:00
f7f14328cf Merge remote-tracking branch 'hub/dev' into feature/rating 2024-02-15 22:08:05 +03:00
Tony
2cbc799219
Merge pull request #399 from Discours/feature/auth-resend
Some checks failed
deploy / test (push) Failing after 1m30s
deploy / Update templates on Mailgun (push) Has been skipped
Feature/auth resend
2024-02-15 21:29:43 +03:00
Tony
deff66601b
Merge pull request #406 from Discours/feature/change-publish-btn-action
Change publish btn action
2024-02-15 21:17:29 +03:00
189f0beace trig-deploy 2024-02-15 21:14:29 +03:00
942c87f02a compact 2024-02-15 21:09:26 +03:00
c9f71042e8 edge-fix 2024-02-15 20:54:55 +03:00
005fb5066f fmt-fix 2024-02-15 20:49:12 +03:00
fc96c32a40 buttong-view-2 2024-02-15 20:45:02 +03:00
9a7ac16a1a buttong-view 2024-02-15 20:26:53 +03:00
0eeef56369 pkgs-upgrade 2024-02-15 19:55:23 +03:00
507a685019 no-lintstaged 2024-02-15 17:26:27 +03:00
8957167dfa vite-config-fix 2024-02-15 16:59:15 +03:00
21cf2b6185 packages-upgrade 2024-02-15 16:57:09 +03:00
b379c55442 pks-clean 2024-02-15 16:54:15 +03:00
912e40f9b1 Merge remote-tracking branch 'hub/dev' into feature/auth-resend 2024-02-15 16:51:45 +03:00
7ccf3f8ce1 Merge remote-tracking branch 'hub/dev' into feature/rating 2024-02-15 16:49:40 +03:00
09a907d123 reactive-fix 2024-02-15 16:41:14 +03:00
e336754226 refactoring-ratings 2024-02-15 15:51:04 +03:00
82c6841523 edge-fix 2024-02-15 14:53:57 +03:00
1aef9cc952 postmerge 2024-02-15 14:46:11 +03:00
ilya-bkv
a445e360c9 fix title error-message in editor 2024-02-13 16:09:44 +03:00
ilya-bkv
88ecd906f9 Change publish btn action 2024-02-12 11:12:23 +03:00
29d807343f variants 2024-02-08 21:36:05 +03:00
083d421cc5 status-logic-restore 2024-02-08 20:42:07 +03:00
b33c7e136a signal-fix 2024-02-08 20:30:27 +03:00
90a70b4097 lintpass 2024-02-08 20:03:04 +03:00
Tony
5812c84756
Merge pull request #405 from Discours/feature/parse-email-errors
Feature/parse email errors
2024-02-08 19:54:51 +03:00
ilya-bkv
213764b372 refactoring email check status 2024-02-08 19:42:52 +03:00
ilya-bkv
119a02d7ab refactoring email check status 2024-02-08 18:37:23 +03:00
ilya-bkv
0432b03cbc refactoring email check status 2024-02-08 18:37:17 +03:00
Tony
b3e3068a8d
Merge pull request #403 from Discours/hotfix/topicSubscibtionsFix
Fix topic subscriptions status
2024-02-08 17:25:08 +03:00
09e6ab009f bunfix 2024-02-08 17:01:04 +03:00
0cc22e8942
Fix static pages (#402)
* Fix static pages
Co-authored-by: ilya-bkv <i.yablokov@ccmp.me>
2024-02-08 12:36:53 +03:00
ilya-bkv
6b2cadfcb6 Fix topic subscriptions status 2024-02-08 12:11:52 +03:00
d4c47f3ec7 postmerge 2024-02-08 04:14:17 +03:00
4bc3a27254 debug-wip
All checks were successful
deploy / test (push) Successful in 2m13s
deploy / Update templates on Mailgun (push) Has been skipped
2024-02-07 19:54:52 +03:00
Ilya Y
91ba53a1ee
Update tiptap core (#400) 2024-02-07 19:13:40 +03:00
a664c8f6cb refactored
All checks were successful
deploy / test (push) Successful in 2m10s
deploy / Update templates on Mailgun (push) Has been skipped
2024-02-06 18:02:57 +03:00
bafe35cb0e dummy-debug
All checks were successful
deploy / test (push) Successful in 9m32s
deploy / Update templates on Mailgun (push) Has been skipped
2024-02-06 17:34:27 +03:00
57f5debdee crdt-auth-token-hotfix
All checks were successful
deploy / test (push) Successful in 2m6s
deploy / Update templates on Mailgun (push) Has been skipped
2024-02-06 00:10:29 +03:00
d39872281e maintopic-limit-hotfix 2024-02-05 22:05:49 +03:00
Tony
7c2f8370b5
Merge pull request #396 from Discours/feature/biome
Feature/biome
2024-02-05 19:47:58 +03:00
bb3f78d5cd test-lint 2024-02-05 19:11:22 +03:00
da9b700e20 ci-upgrade 2024-02-05 19:04:59 +03:00
7337c6eb2a buffer-import 2024-02-05 19:00:13 +03:00
6ed601472b postfixfix 2024-02-05 18:56:16 +03:00
075072cd36 all-rules-with-exclusions 2024-02-05 18:49:08 +03:00
361c916687 async-fixes 2024-02-05 18:04:23 +03:00
238a17a9de nostylelint-stage 2024-02-05 16:06:44 +03:00
40972712df rolling-biome 2024-02-05 16:03:26 +03:00
Tony
70164a9ce2
Merge pull request #397 from Discours/fix/suscribe_buttons_fix
Fix/suscribe buttons fix
2024-02-05 15:58:34 +03:00
ilya-bkv
f2315411b2 Fix subscribe logic (refactoring) 2024-02-05 15:34:47 +03:00
ilya-bkv
09b32b06cc Fix subscribe logic 2024-02-05 14:11:46 +03:00
a880fe81e5 stability-editing
All checks were successful
deploy / test (push) Successful in 2m7s
deploy / Update templates on Mailgun (push) Has been skipped
2024-02-05 11:59:21 +03:00
1832362fb9 merged
All checks were successful
deploy / test (push) Successful in 2m20s
deploy / Update templates on Mailgun (push) Has been skipped
2024-02-04 22:58:18 +03:00
50f89284b8 q 2024-02-04 22:55:25 +03:00
6f17be6190 Merge remote-tracking branch 'hub/dev' into feature/biome 2024-02-04 22:55:15 +03:00
2c2ed95053 fixtype
All checks were successful
deploy / test (push) Successful in 2m20s
deploy / Update templates on Mailgun (push) Has been skipped
2024-02-04 20:47:26 +03:00
333d7c5961 no-actions-context-value
Some checks failed
deploy / test (push) Failing after 59s
deploy / Update templates on Mailgun (push) Has been skipped
2024-02-04 20:40:15 +03:00
6283558b00 dontpush
All checks were successful
deploy / test (push) Successful in 2m31s
deploy / Update templates on Mailgun (push) Has been skipped
2024-02-04 17:46:14 +03:00
5c0872d591 lintfix
Some checks failed
deploy / test (push) Successful in 2m28s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / push (push) Failing after 1s
2024-02-04 17:41:01 +03:00
ccc3755a5b lintstyles-fix
Some checks failed
deploy / push (push) Blocked by required conditions
deploy / Update templates on Mailgun (push) Waiting to run
deploy / test (push) Has been cancelled
2024-02-04 17:40:38 +03:00
977da45301 all-fixed-fmt
Some checks failed
deploy / push (push) Blocked by required conditions
deploy / Update templates on Mailgun (push) Waiting to run
deploy / test (push) Has been cancelled
2024-02-04 17:39:49 +03:00
2f2fb780bf all-fixed 2024-02-04 17:39:05 +03:00
577aaaf9f2 e2e-test-github
Some checks failed
deploy / test (push) Successful in 2m36s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / push (push) Failing after 1s
2024-02-04 16:39:26 +03:00
e95558fb51 e2e
Some checks failed
deploy / Linting (push) Successful in 3m1s
deploy / Playwright (push) Failing after 2m22s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / Github (push) Failing after 2s
2024-02-04 16:25:23 +03:00
1f8b6342b0 npm-start-fix
Some checks failed
deploy / Linting (push) Successful in 1m8s
deploy / Playwright (push) Failing after 2m18s
deploy / Github (push) Failing after 2s
deploy / Update templates on Mailgun (push) Has been skipped
2024-02-04 15:44:57 +03:00
57d78f4c44 e2e
Some checks failed
deploy / Linting (push) Successful in 1m3s
deploy / Playwright (push) Failing after 2m45s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / Github (push) Failing after 1s
2024-02-04 15:26:47 +03:00
f8e5d56be4 lint-check 2024-02-04 15:05:35 +03:00
05e2bd08f9 nodever-fix2
Some checks failed
deploy / Linting (push) Successful in 56s
deploy / Run end-to-end tests (push) Failing after 1m36s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / Github (push) Failing after 1s
2024-02-04 15:02:22 +03:00
f159afae43 nodever-fix 2024-02-04 15:01:47 +03:00
ee16c920be biome-fix
Some checks failed
deploy / Linting (push) Successful in 48s
deploy / Run end-to-end tests (push) Failing after 1m24s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / Github (push) Failing after 2s
2024-02-04 14:55:38 +03:00
ce4f8b7147 e2e-fix
Some checks failed
deploy / Linting (push) Failing after 36s
deploy / Run end-to-end tests (push) Failing after 1m34s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / Github (push) Failing after 2s
2024-02-04 14:49:55 +03:00
7e5df429d7 sorted imports 2024-02-04 14:25:21 +03:00
088f61a617 sorted imports
Some checks failed
deploy / Linting (push) Failing after 52s
deploy / Run end-to-end tests (push) Failing after 1m33s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / Github (push) Failing after 2s
2024-02-04 14:21:04 +03:00
aafb55e46b lint-staged
Some checks failed
deploy / Linting (push) Failing after 49s
deploy / Run end-to-end tests (push) Failing after 1m31s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / Github (push) Failing after 2s
2024-02-04 13:56:54 +03:00
019c2f5976 nomore-hooks
Some checks failed
deploy / Linting (push) Failing after 51s
deploy / Run end-to-end tests (push) Failing after 1m27s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / Github (push) Failing after 1s
2024-02-04 13:48:44 +03:00
dog
728ca922b9 darken image cropper background 2024-02-04 13:39:38 +03:00
12f65dfe31 fmt-lint-ignore-fix
Some checks failed
deploy / Linting (push) Failing after 45s
deploy / Run end-to-end tests (push) Failing after 1m42s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / Github (push) Failing after 2s
2024-02-04 13:37:43 +03:00
00fe88c945 fmt-ignore
Some checks failed
deploy / Linting (push) Failing after 49s
deploy / Run end-to-end tests (push) Failing after 1m30s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / Github (push) Failing after 1s
2024-02-04 13:34:27 +03:00
402f66468b ci-fix
Some checks failed
deploy / Linting (push) Failing after 51s
deploy / Run end-to-end tests (push) Failing after 1m36s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / Github (push) Failing after 1s
2024-02-04 13:28:12 +03:00
4f91f9830b basic-routes-e2e
Some checks failed
deploy / test (push) Successful in 53s
deploy / quality (push) Failing after 10s
deploy / Run end-to-end tests (push) Failing after 1m25s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / push (push) Failing after 1s
2024-02-04 13:20:41 +03:00
55081224b5 e2e-fix
Some checks failed
deploy / test (push) Successful in 57s
deploy / quality (push) Successful in 12s
deploy / Run end-to-end tests (push) Failing after 1m32s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / push (push) Failing after 1s
2024-02-04 13:13:14 +03:00
561bc9aea4 -ssr
Some checks failed
deploy / push (push) Blocked by required conditions
deploy / Update templates on Mailgun (push) Waiting to run
deploy / test (push) Successful in 55s
deploy / quality (push) Successful in 10s
deploy / Run end-to-end tests (push) Has been cancelled
2024-02-04 13:11:52 +03:00
2bc9a98769 boimed-some
Some checks failed
deploy / push (push) Blocked by required conditions
deploy / Update templates on Mailgun (push) Waiting to run
deploy / test (push) Successful in 55s
deploy / quality (push) Failing after 9s
deploy / Run end-to-end tests (push) Has been cancelled
2024-02-04 13:09:26 +03:00
01370103e2 nogithub-token
Some checks failed
deploy / test (push) Successful in 57s
deploy / quality (push) Failing after 11s
deploy / Run end-to-end tests (push) Failing after 1m30s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / push (push) Failing after 2s
2024-02-04 13:05:43 +03:00
912414fa56 biome-auto
Some checks failed
deploy / test (push) Successful in 57s
deploy / quality (push) Failing after 3s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / test_with_playwright (push) Failing after 44s
deploy / push (push) Has been skipped
2024-02-04 12:52:44 +03:00
64b52c3289 less-steps
Some checks failed
deploy / test (push) Failing after 1m1s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / test_with_playwright (push) Failing after 44s
deploy / push (push) Has been skipped
2024-02-04 12:42:19 +03:00
795f69e56b less-biome
Some checks failed
deploy / test (push) Successful in 1m2s
deploy / quality (push) Failing after 4s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / test_with_playwright (push) Failing after 47s
deploy / push (push) Has been skipped
2024-02-04 12:31:34 +03:00
5522c565b4 sometimes-needed
Some checks failed
deploy / push (push) Blocked by required conditions
deploy / test (push) Successful in 1m5s
deploy / quality (push) Failing after 3s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / test_with_playwright (push) Has been cancelled
2024-02-04 12:30:06 +03:00
a3721ea504 sometimes-needed 2024-02-04 12:28:29 +03:00
416f9c1ca4 sometimes-needed 2024-02-04 12:26:45 +03:00
4218de6fba biome-fixes 2024-02-04 12:23:20 +03:00
c68001fcc1 fmt-lint
Some checks failed
deploy / test (push) Failing after 49s
deploy / quality (push) Failing after 9s
deploy / Update templates on Mailgun (push) Has been skipped
deploy / test_with_playwright (push) Failing after 46s
deploy / push (push) Has been skipped
2024-02-04 12:17:02 +03:00
7b314f21a2 fmt-lint 2024-02-04 12:07:08 +03:00
aeeed1cb65 fmt-lint 2024-02-04 12:03:15 +03:00
67541bef79 test-ci 2024-02-04 10:17:13 +03:00
02de191b6d Merge branch 'dev' into feature/biome 2024-02-04 09:57:41 +03:00
21027f3167 invite-modal-hotfix 2024-02-04 09:38:45 +03:00
1676b2fda9 Merge remote-tracking branch 'hub/dev' into feature/biome 2024-02-04 09:07:46 +03:00
Ilya Y
9bff49e711
setSession fix (#395) 2024-02-04 07:45:49 +03:00
3879c228b0 biome integration 2024-02-03 22:40:33 +03:00
c794b9cb91 recover form 2024-02-03 21:48:44 +03:00
Tony
275a8431cd
Merge pull request #394 from Discours/hotfix/common-result
common-result-api
2024-02-03 18:51:52 +03:00
bdd044524d common-result-api 2024-02-03 17:58:41 +03:00
Tony
ab48f173b3
Merge pull request #386 from Discours/hotfix/posting
Hotfix/posting
2024-02-03 17:56:25 +03:00
Ilya Y
ce1eb2aa43
Hotfix/author page title (#393)
Author page title fix
2024-02-03 12:23:44 +03:00
62250ba239 expect-meta 2024-02-03 11:58:10 +03:00
ebec141b77 author-name-fix 2024-02-03 11:52:13 +03:00
e3347bd923 debug-comments-log 2024-02-03 11:42:49 +03:00
a02f24d862 -- 2024-02-03 11:31:13 +03:00
b4c8b4a882 warning-tails-fix 2024-02-03 11:30:01 +03:00
44801d58ec postfixes 2024-02-03 11:16:47 +03:00
fb95c7412f Merge remote-tracking branch 'hub/dev' into hotfix/posting 2024-02-03 11:12:44 +03:00
Ilya Y
21e9fc00da
Feature/refactoring subscriptions (#392)
refactoring Author page and Top Authors subscribe logic
2024-02-03 10:56:11 +03:00
920c6de8de modal-fix 2024-02-03 08:19:15 +03:00
c158532cc1 draft-remove-fix 2024-02-03 00:52:04 +03:00
5f47bf161c Merge branch 'dev' into hotfix/posting 2024-02-03 00:22:11 +03:00
571e3cd8a4 minor-fix 2024-02-03 00:19:58 +03:00
1fa5fbd1a5 lesscode 2024-02-02 21:03:55 +03:00
2ee57a1dcc visibility-tail 2024-02-02 20:44:48 +03:00
c27c466c01 Merge remote-tracking branch 'dev/dev' into hotfix/posting 2024-02-02 20:40:04 +03:00
01d11aca5b Merge remote-tracking branch 'hub/dev' into hotfix/posting 2024-02-02 20:37:38 +03:00
Tony
829e523d36
Hotfix/featured (#391)
add: Shout.featured_at
remove: Shout.visibility
2024-02-02 20:29:53 +03:00
Ilya Y
1cedad823b
Open full_article on direct link fix (#390) 2024-02-02 07:31:25 +03:00
Ilya Y
e4d8aafb9b
fix iframe size in article (#389) 2024-02-01 23:46:54 +03:00
Tony
1d5bc80318
Merge pull request #388 from Discours/fix/restore_password_and_chek_email
Fix/restore password and chek email
2024-02-01 23:41:12 +03:00
ilya-bkv
fdceeb6060 refactoring 2024-02-01 23:34:53 +03:00
ilya-bkv
ea24995c0e update restore password 2024-02-01 19:32:34 +03:00
ilya-bkv
639e566be5 Merge branch 'dev' into fix/restore_password_and_chek_email
# Conflicts:
#	src/components/Nav/AuthModal/ForgotPasswordForm.tsx
2024-02-01 17:51:16 +03:00
ilya-bkv
faeb69af09 fix types 2024-02-01 17:44:16 +03:00
ilya-bkv
f434be7d73 fix typo 2024-02-01 16:28:21 +03:00
ilya-bkv
92122e3abb change forgot password modal 2024-02-01 15:55:35 +03:00
ilya-bkv
7bcae3ba98 change forgot password modal 2024-02-01 15:29:20 +03:00
to
c6e9a5e950 Update .gitea/workflows/main.yml
All checks were successful
deploy / test (push) Successful in 1m15s
deploy / Update templates on Mailgun (push) Has been skipped
2024-02-01 09:18:09 +00:00
to
e9bcb841a2 Update .gitea/workflows/main.yml
All checks were successful
deploy / test (push) Successful in 1m19s
deploy / Update templates on Mailgun (push) Successful in 4s
2024-02-01 09:04:35 +00:00
to
f2fd539d01 Update .gitea/workflows/main.yml
Some checks failed
deploy / test (push) Successful in 1m19s
deploy / Update templates on Mailgun (push) Failing after 5s
2024-02-01 09:01:16 +00:00
to
a7246cf959 Update .gitea/workflows/main.yml 2024-02-01 09:00:39 +00:00
to
09417a12e4 Update .gitea/workflows/main.yml 2024-02-01 08:58:57 +00:00
to
0e392db5bd Update .gitea/workflows/main.yml 2024-02-01 08:57:19 +00:00
to
5ca4c204db Update .gitea/workflows/main.yml
Some checks failed
deploy / test (push) Successful in 1m59s
deploy / Update templates on Mailgun (push) Failing after 6s
2024-02-01 08:48:36 +00:00
9b1f3c993c delete-fix 2024-01-31 22:06:29 +03:00
5e5291d7e8 delete-shout-fix-2 2024-01-31 21:41:20 +03:00
0a9b70bfb7 delete-shout-fix 2024-01-31 21:15:08 +03:00
504eb98cd7 delete-debug 2024-01-31 20:41:49 +03:00
7e46bbdd9e subs-fix 2024-01-31 20:38:00 +03:00
f6c64b1d46 fetch-comments-fix 2024-01-31 19:09:42 +03:00
8caa4f823a detect-fix 2024-01-31 18:46:34 +03:00
c234ab1c2b debug-detect 2024-01-31 18:35:40 +03:00
2103db3ebd load-comments-fix 2024-01-31 18:15:23 +03:00
cfca2dbbab debug-subs 2024-01-31 17:59:03 +03:00
27711d7e99 forgot-form-fox 2024-01-31 16:54:43 +03:00
90cf0a9e10 package-lock-fix-2 2024-01-31 16:45:04 +03:00
af95e81c47 package-lock-fix 2024-01-31 16:42:59 +03:00
5a95e7490e authorizer-upgrade-3 2024-01-31 16:24:40 +03:00
cf19cdd39b authorizer-upgrade 2024-01-31 16:12:59 +03:00
103e73a870 authorizer 2.0 code adaptation 2024-01-31 16:08:25 +03:00
0b443804bd authorizer-upgrade 2024-01-31 15:55:18 +03:00
9e7a7ad8d2 Merge remote-tracking branch 'hub/dev' into hotfix/following 2024-01-31 15:43:44 +03:00
090a8f2633 dev 2024-01-31 15:34:15 +03:00
Tony
2977fe5283
Merge pull request #383 from Discours/feature/ga-tracker
include ga tracker
2024-01-31 01:20:00 +03:00
b805d7eeb3 media-item-fix 2024-01-29 16:53:08 +03:00
22b616e6d1 music-stat-event 2024-01-29 16:19:04 +03:00
f23a89c48c init-pkg 2024-01-29 15:49:37 +03:00
cdcf9afcc2 Merge branch 'dev' of github.com:Discours/discoursio-webapp into dev 2024-01-29 14:45:09 +03:00
d23ab50f36 lock-fix 2024-01-29 14:38:09 +03:00
ilya-bkv
3b64c41227 npm fix 2024-01-29 14:31:51 +03:00
e2dffc4eff reinstall 2024-01-29 14:00:01 +03:00
1910a3c3c4 Merge branch 'feature/search-modal' into dev 2024-01-29 12:23:23 +03:00
a9697ba889 postmerge 2024-01-29 12:10:30 +03:00
68bc650efd Merge branch 'main' into dev 2024-01-29 12:07:06 +03:00
26f303140a initial null fix 2024-01-28 11:19:04 +03:00
b79120c7f7 search-modal-fixes 2024-01-28 10:55:11 +03:00
b866af2ff7 reasource-based-search-results-load 2024-01-28 10:06:31 +03:00
5c827ca287 Merge branch 'main' into feature/search-modal 2024-01-28 09:11:24 +03:00
0bca6d73b1 search-using-resource 2024-01-28 08:57:05 +03:00
Arkadzi Rakouski
49729614dc
Merge pull request #378 from Discours/feat/image-crop
feat/image crop
2024-01-27 14:56:32 +03:00
dog
ef49e4b971 limit cropper container height & fix t 2024-01-27 14:41:00 +03:00
Tony
f0c31013db
Merge pull request #380 from Discours/hotfix/loginn_modal_fixies
Hotfix/login modal fixies
2024-01-27 13:48:12 +03:00
796072eb18
Fixed link selection height in the editor (#379) 2024-01-27 13:19:01 +03:00
ilya-bkv
2b1342bff0 Fix modal window 2024-01-27 09:23:01 +03:00
ilya-bkv
5a47db8430 Fix modal window 2024-01-27 09:21:48 +03:00
1094a2de6f edit-fix 2024-01-26 03:50:04 +03:00
a2d72409f2 inbox-provider-rewrap 2024-01-26 03:22:36 +03:00
f77d7b28df postmerge-2 2024-01-25 22:16:38 +03:00
5f592e6fff postmerge-fix 2024-01-25 21:19:59 +03:00
dog
f0dd3c9c88 fix search modal behavior 2024-01-25 18:06:26 +03:00
Arkadzi Rakouski
c82b1301af
Merge pull request #358 from Discours/feature/search-modal
feat/search_modal
2024-01-25 16:08:33 +03:00
dog
591fd2ecbf implement image crop 2024-01-25 15:41:25 +03:00
Ilya Y
afed10dfd2
Refactoring invite modal (#375)
* Refactoring invite modal
* Infinite Scroll in user search
2024-01-25 12:57:57 +03:00
83e3cf1d19 topics-fix-4 2024-01-24 14:32:36 +03:00
0146a5cae2 create-effect-fix 2024-01-24 00:31:07 +03:00
5e8c99332f small-rating-fix 2024-01-23 22:24:31 +03:00
Tony
3a3d4e87ba
Merge pull request #376 from Discours/fix/topic_select
Fix TopicSelect
2024-01-23 22:06:22 +03:00
ilya-bkv
5435811092 Fix TopicSelect 2024-01-23 22:01:41 +03:00
dc94c5bd8b linter-tuned 2024-01-23 19:44:58 +03:00
fdc721ebd0 linted 2024-01-23 19:32:57 +03:00
e88363e450 sonar-suppress 2024-01-23 18:43:18 +03:00
90e02675ba get-image-url-fixed 2024-01-23 18:31:59 +03:00
2db840bba5 get-image-url-debug 2024-01-23 18:27:04 +03:00
504d3faefc zoom-url-fix-3 2024-01-23 18:21:37 +03:00
7054dfa0fc zoom-url-fix-2 2024-01-23 18:10:45 +03:00
2efb97a7e9 zoom-url-fix 2024-01-23 18:04:12 +03:00
cc04e13be4 upvote-disabling 2024-01-23 17:43:26 +03:00
83cb23d424 revert-upvote 2024-01-23 17:41:49 +03:00
8f6de58f6d drafts-fix 2024-01-23 16:42:05 +03:00
d38adbfc61 ratings-fix 2024-01-23 16:22:18 +03:00
5b7d8a1658 rating-cosmetics 2024-01-23 05:18:17 +03:00
a9d9108463 ackee-removed 2024-01-23 03:43:08 +03:00
64af217dd7 enable-after-fail 2024-01-23 03:25:00 +03:00
e4332128c8 disabling-on-load 2024-01-23 02:16:22 +03:00
c96d723659 Merge remote-tracking branch 'hub/main' into dev 2024-01-23 01:15:16 +03:00
ac849e5376 Lightbox close control style fixes 2024-01-23 01:14:04 +03:00
e762016494 Merge remote-tracking branch 'hub/main' into dev 2024-01-23 01:13:07 +03:00
40ea97c463 rating-control-fix 2024-01-23 01:12:25 +03:00
4afd84a848 Minor style fixes 2024-01-23 00:53:50 +03:00
30e143e081 requireAuth-fix-2 2024-01-23 00:03:57 +03:00
92eae0347b handle-rating-debug 2024-01-22 23:53:35 +03:00
fc601c747e get-image-url-fix 2024-01-22 23:38:31 +03:00
e796fa30a4 load-topics-fix 2024-01-22 22:39:39 +03:00
e974e43c22 load-topics-on-create 2024-01-22 21:53:04 +03:00
7788100dc5 notifications-stability-fix 2024-01-22 20:59:49 +03:00
0faa9df81c selected-topics-default 2024-01-22 20:37:27 +03:00
e5d3235846 less-token-check 2024-01-22 20:05:13 +03:00
617969ad15 filters-type-fix 2024-01-22 17:12:54 +03:00
cecf712cc3 Merge remote-tracking branch 'hub/main' into feature/sse-connect 2024-01-22 15:52:07 +03:00
Arkadzi Rakouski
e40a477538
Merge pull request #374 from Discours/fix/lightbox
reset lightboxes trackpad preventing
2024-01-22 14:09:47 +03:00
dog
b053aded18 remove sanitize-html 2024-01-22 14:09:21 +03:00
Ilya Y
f4e787a3ce
Inital load sorted articles with layout (#373) 2024-01-22 14:07:19 +03:00
dog
3429b36502 add cropperjs 2024-01-22 14:06:32 +03:00
dog
e86b1873c9 reset lightboxes trackpad preventing 2024-01-22 13:57:56 +03:00
dog
5d958de5a8 reinstall deps 2024-01-22 13:56:05 +03:00
Ilya Y
df8ee62112
Update tiptap link insert (#368)
Update tiptap link insert
2024-01-22 13:45:46 +03:00
Ilya Y
8a8abd3652
Add resize iframe listener (#369)
Add resize container listener
2024-01-22 13:45:21 +03:00
Arkadzi Rakouski
6bace7d311
fixes for lightbox (#372)
* fixes for lightbox

* fix run check
2024-01-22 13:44:56 +03:00
dog
d1874ea55f fix check errors 2024-01-21 17:02:25 +03:00
dog
32ee6e062b fix build 2024-01-21 16:56:36 +03:00
dog
d429f4cbdf sync lock files 2024-01-21 16:52:36 +03:00
dog
73854fe5be prepare image crop component 2024-01-21 16:51:10 +03:00
Arkadzi Rakouski
2d396dc175
Merge branch 'main' into feature/search-modal 2024-01-21 16:01:41 +03:00
dog
6752d35491 refactor by review comments 2024-01-21 15:57:03 +03:00
33be9c7cff trailing-space-blockade-brokeup 2024-01-21 15:02:09 +03:00
4ff30f7fec postmerge 2024-01-21 12:25:38 +03:00
Ilya Y
439e27c603
sortable shouts onMount in expo (#371) 2024-01-21 11:56:38 +03:00
Arkadzi Rakouski
0796b41a42
show origin image res & add scale perc & refactor lightbox (#359)
* show origin image res & add scale perc & refactor lightbox

---------

Co-authored-by: ilya-bkv <i.yablokov@ccmp.me>
2024-01-21 11:05:36 +03:00
Ilya Y
65fdb36e5d
update swiper slides (#370) 2024-01-21 10:42:32 +03:00
26ab3bc7ad email-confirm-as-success-page 2024-01-20 01:53:38 +03:00
e2d7710035 notifications-fix 2024-01-19 21:46:13 +03:00
ae85ec144b check-bypass 2024-01-19 21:28:52 +03:00
e2a373d836 oauth-dummy2
Some checks failed
deploy / test (push) Failing after 58s
deploy / Update templates on Mailgun (push) Failing after 5s
2024-01-19 21:25:18 +03:00
070e0113ef oauth-dummy 2024-01-19 21:24:37 +03:00
80a3dd5d57 social-providers-fix 2024-01-19 18:03:33 +03:00
f693cdefeb authheader-fix
Some checks failed
deploy / test (push) Successful in 1m9s
deploy / Update templates on Mailgun (push) Failing after 4s
2024-01-18 20:34:17 +03:00
cbb66c5452 check-verified-fix
Some checks failed
deploy / test (push) Successful in 1m7s
deploy / Update templates on Mailgun (push) Failing after 4s
2024-01-18 18:57:10 +03:00
1af7ba520e get-unrated-fix
Some checks failed
deploy / test (push) Successful in 1m5s
deploy / Update templates on Mailgun (push) Failing after 5s
2024-01-18 15:52:02 +03:00
5310260969 mutation-fix
Some checks failed
deploy / test (push) Successful in 1m6s
deploy / Update templates on Mailgun (push) Failing after 4s
2024-01-18 14:32:03 +03:00
21596ad412 Merge remote-tracking branch 'hub/main' into feature/sse-connect
Some checks failed
deploy / test (push) Successful in 1m8s
deploy / Update templates on Mailgun (push) Failing after 4s
2024-01-18 14:28:50 +03:00
0c406e904d audopplayer-adapted 2024-01-18 11:44:01 +03:00
180f4eaa72 ходики
Some checks failed
deploy / test (push) Successful in 1m11s
deploy / Update templates on Mailgun (push) Failing after 4s
2024-01-18 11:31:45 +03:00
Ilya Y
5d874ee639
figcaption editor if not empty (#367) 2024-01-18 10:02:37 +03:00
Ilya Y
d4ef39e6ca
Fix editor menu workflow (#366) 2024-01-17 18:33:25 +03:00
aacef8908b рабочий-код 2024-01-17 15:46:14 +03:00
c3a353fedb Merge remote-tracking branch 'hub/main' into feature/sse-connect 2024-01-17 15:13:05 +03:00
21b04ef9e9 audioplayer-title-autowidth 2024-01-17 15:12:15 +03:00
63f92c466c audioplayer-fix 2024-01-17 15:00:57 +03:00
Ilya Y
2bb600c8c6
Universal Figure with caption (#361)
Figure with caption for images and embed
2024-01-16 12:13:23 +03:00
1eac709895 audio-cdn-fix 2024-01-16 01:36:08 +03:00
Ilya Y
ec5e55b10b
Fix/minor fixies (#365)
* Swiper thumbs update
2024-01-15 21:41:45 +03:00
Ilya Y
9e6c9d9082
Update Swiper Lib (#363)
* Update Swiper Lib
2024-01-15 18:05:38 +03:00
Ilya Y
ef7a24d571
fix article card actions (#364)
* fix invite modal

* change FeedArticlePopup hide logic

* resolve conversation
2024-01-15 14:22:43 +01:00
d789ffc1cd expo-fix 2024-01-15 13:50:43 +03:00
0988926a85 trig-deploy
Some checks failed
deploy / test (push) Successful in 1m11s
deploy / Update templates on Mailgun (push) Failing after 4s
2024-01-15 12:09:43 +03:00
a79bb2d099 minor-fixes
Some checks failed
deploy / test (push) Successful in 1m11s
deploy / Update templates on Mailgun (push) Failing after 5s
2024-01-13 17:28:22 +03:00
1642109433 badge-fix 2024-01-13 17:26:21 +03:00
9b6a6ecde5 tolowercase-fix 2024-01-13 17:22:04 +03:00
daca3007bb ackee-domain
Some checks failed
deploy / test (push) Failing after 1m3s
deploy / Update templates on Mailgun (push) Failing after 4s
2024-01-13 17:14:35 +03:00
68a66ed915 some-fix
Some checks failed
deploy / test (push) Failing after 1m4s
deploy / Update templates on Mailgun (push) Failing after 5s
2024-01-12 19:26:11 +03:00
dc70e96298 let-fail-templates 2024-01-11 20:57:52 +03:00
f325a9a2f2 postmerge
Some checks failed
deploy / test (push) Failing after 42s
deploy / Update templates on Mailgun (push) Failing after 4s
2024-01-11 20:40:06 +03:00
2a58ea15e4 0.9.1 2024-01-11 20:26:18 +03:00
c2f0ce0145 Revert "o_0"
This reverts commit 899632a74d193e8c857541fe9adedf4e15434677.
2024-01-11 18:56:32 +03:00
417f2c6678 server-lodaing-fix
Some checks failed
deploy / test (push) Successful in 1m11s
deploy / Update templates on Mailgun (push) Failing after 5s
2024-01-11 10:02:36 +03:00
336405c2e2 feed-fix
Some checks failed
deploy / test (push) Successful in 1m12s
deploy / Update templates on Mailgun (push) Failing after 4s
2024-01-10 15:47:46 +03:00
8c8c8725f4 Merge remote-tracking branch 'hub/main' into feature/sse-connect
Some checks failed
deploy / test (push) Failing after 1m0s
deploy / Update templates on Mailgun (push) Failing after 5s
2024-01-10 15:42:54 +03:00
59eb0265bf get-author-fix
Some checks failed
deploy / test (push) Successful in 1m16s
deploy / Update templates on Mailgun (push) Failing after 5s
2024-01-10 15:39:02 +03:00
Ilya Y
96166d79ad
Share modal fix (#362)
* - Close modal after share
- revert opacity

* resolve conversation
2024-01-10 11:01:02 +01:00
dog
c78d5b3337 render search results & refactor search modal 2024-01-09 16:37:35 +03:00
Ilya Y
bb02d6b364
Fix share modal (#357)
Fix share modal
2024-01-08 16:02:52 +03:00
45a5f0c542 Merge remote-tracking branch 'hub/main' into feature/sse-connect 2024-01-08 10:11:40 +03:00
Igor Lobanov
fc318dbbb6
Feature/og image text (#356)
* WIP

* lint
2024-01-07 00:52:24 +01:00
Ilya Y
56a66eca38
Fix/markup (#354)
* fix markup
2024-01-06 07:06:58 +03:00
Ilya Y
0e6bb81b6a
Article action menu (#352)
* Article action menu
2024-01-05 22:31:28 +03:00
7df02805ed postmerge-fix
Some checks failed
deploy / test (push) Successful in 1m3s
deploy / Update templates on Mailgun (push) Failing after 4s
2024-01-05 21:38:35 +03:00
451496a29c mailgun-temaplates
Some checks failed
deploy / test (push) Failing after 1m5s
deploy / Update 'main' template on Mailgun (push) Failing after 4s
2024-01-05 21:26:15 +03:00
6a1d612a27 ackee-fix 2024-01-05 09:58:05 +03:00
3af0c47738 Merge remote-tracking branch 'hub/main' into feature/sse-connect
Some checks failed
deploy / test (push) Failing after 1m7s
2024-01-04 10:14:57 +03:00
e2dc68a913 comments 2024-01-04 09:58:58 +03:00
3def328598 inbox-fix
All checks were successful
deploy / test (push) Successful in 1m4s
2023-12-31 08:06:14 +03:00
8879519b47 minor-fixes
Some checks failed
deploy / test (push) Failing after 1m9s
2023-12-31 08:01:34 +03:00
Ilya Y
802ce84928
Author badge fix (#353)
* add gap
* fix margin
2023-12-30 16:59:56 +03:00
Ilya Y
02ee22fc99
Add community/public switch view in feed (#351) 2023-12-29 19:43:52 +03:00
Ilya Y
a2b449502a
Share popup update (#350)
* Share popup update

* Remove shared link

* Cleanup code

* Cleanup code

* Cleanup code

* Cleanup code
2023-12-29 14:07:48 +03:00
Ilya Y
11d3a6c274
Markup for mobile fix-pack (#349)
* mediaQuery context provider
* Fix header styles
* User list markup fix
2023-12-29 09:39:16 +03:00
4119c2d30c badge-fix 2023-12-28 04:22:04 +03:00
879902fd75 sort-fix
Some checks failed
deploy / test (push) Failing after 56s
2023-12-28 03:52:54 +03:00
14e59690bc translate-fixes
All checks were successful
deploy / test (push) Successful in 1m9s
2023-12-28 03:30:09 +03:00
605d510e54 rating-view-fix
All checks were successful
deploy / test (push) Successful in 1m7s
2023-12-28 02:35:43 +03:00
5bd7483e4e hide-not-loaded-rating
All checks were successful
deploy / test (push) Successful in 1m6s
2023-12-28 02:14:33 +03:00
fbc2b15ba1 type-fix
All checks were successful
deploy / test (push) Successful in 1m7s
2023-12-28 02:04:12 +03:00
af38f4a3a0 tolerate-fix
Some checks failed
deploy / test (push) Failing after 1m11s
2023-12-28 01:57:24 +03:00
9ccd44fee6 cosmetic-fix
Some checks failed
deploy / test (push) Failing after 1m9s
2023-12-28 01:56:08 +03:00
bca0a227e6 profile-ratings
Some checks failed
deploy / test (push) Failing after 1m11s
2023-12-28 01:50:42 +03:00
7be0f9e9ef order-fix
Some checks failed
deploy / test (push) Failing after 1m11s
2023-12-28 01:01:42 +03:00
6c40415774 followed-topics-counter-fix
Some checks failed
deploy / test (push) Failing after 1m13s
2023-12-28 00:23:16 +03:00
7ac836e4e3 trybyid 2023-12-28 00:04:09 +03:00
5f0ab7d870 ensure-load-author
All checks were successful
deploy / test (push) Successful in 1m9s
2023-12-27 23:55:36 +03:00
340d984045 debug-log
All checks were successful
deploy / test (push) Successful in 1m13s
2023-12-27 23:40:00 +03:00
31a8b68b16 all-authors-load-fix
All checks were successful
deploy / test (push) Successful in 1m11s
2023-12-27 23:34:41 +03:00
3d18410763 inbox-authors-preload-2
All checks were successful
deploy / test (push) Successful in 1m9s
2023-12-27 02:28:26 +03:00
c488a1e4e6 load-by-fix
All checks were successful
deploy / test (push) Successful in 1m6s
2023-12-27 00:15:49 +03:00
d430990978 all-authors-load
All checks were successful
deploy / test (push) Successful in 1m9s
2023-12-26 23:33:45 +03:00
abae44621c queryname-fix
All checks were successful
deploy / test (push) Successful in 1m8s
2023-12-26 17:36:12 +03:00
1fa808a2f7 confirmed-modal-fix
All checks were successful
deploy / test (push) Successful in 1m8s
2023-12-26 16:06:49 +03:00
c17aa90c13 testing-deploy
All checks were successful
deploy / test (push) Successful in 1m30s
2023-12-26 13:05:15 +03:00
Igor Lobanov
41b5560036
random topic fixes (#348) 2023-12-25 16:07:12 +01:00
Ilya Y
70e084c0db
aspect ratio in Expo (#347) 2023-12-25 12:35:04 +01:00
1ec6a552c6 some-search-fixws
All checks were successful
deploy / test (push) Successful in 1m5s
2023-12-25 11:34:49 +03:00
cb3605ce9d merged
All checks were successful
deploy / test (push) Successful in 1m3s
2023-12-25 10:33:18 +03:00
653d6771a0 profile-fix 2023-12-25 10:32:53 +03:00
2bbaaa6cf1 profile-debug 2023-12-25 09:52:04 +03:00
to
ac39233e1f noteam-vercel-fix
All checks were successful
deploy / test (push) Successful in 1m3s
2023-12-25 06:18:31 +00:00
0f02d4bdc2 linter-bypass
Some checks failed
deploy / test (push) Successful in 1m6s
deploy / deploy (push) Failing after 26s
2023-12-25 08:47:11 +03:00
41cc07e30f search fix + some minor fixes
Some checks failed
deploy / test (push) Failing after 55s
deploy / deploy (push) Has been skipped
2023-12-25 08:31:26 +03:00
95bf7ba95a linter-bypass
Some checks failed
deploy / test (push) Failing after 54s
deploy / deploy (push) Has been skipped
2023-12-25 07:05:04 +03:00
90ebaa0099 ..
Some checks failed
deploy / test (push) Failing after 56s
deploy / deploy (push) Has been skipped
2023-12-25 07:01:52 +03:00
4d9a563a02 gql-fix-2 2023-12-25 03:19:51 +03:00
4f6c0d1a11 gql-fix 2023-12-25 02:56:24 +03:00
86c10b1667 addresses-fix
Some checks failed
deploy / test (push) Failing after 53s
deploy / deploy (push) Has been skipped
2023-12-25 02:37:30 +03:00
7be5ebebc7 q 2023-12-25 02:12:32 +03:00
e402ff05be search-modal-fix
Some checks failed
deploy / test (push) Failing after 57s
deploy / deploy (push) Has been skipped
2023-12-25 02:05:25 +03:00
bdb4f7a370 session-reset-fix 2023-12-25 00:44:01 +03:00
6b87cc9a34 auth-refresh-fix
Some checks failed
deploy / test (push) Failing after 56s
deploy / deploy (push) Has been skipped
2023-12-25 00:29:25 +03:00
fce3d9cf21 auth-error-fix
Some checks failed
deploy / test (push) Failing after 54s
deploy / deploy (push) Has been skipped
2023-12-25 00:12:42 +03:00
aca1358c18 get-authors-all-fix
Some checks failed
deploy / test (push) Successful in 1m6s
deploy / deploy (push) Failing after 27s
2023-12-24 20:29:16 +03:00
a383283cd2 types-fixed-2 2023-12-24 16:32:25 +03:00
bd1b0025e7 types-fixed
Some checks failed
deploy / test (push) Failing after 1m43s
deploy / deploy (push) Has been skipped
2023-12-24 16:08:04 +03:00
11788bcf0d session-context-fixes
Some checks failed
deploy / test (push) Failing after 1m4s
deploy / deploy (push) Has been skipped
2023-12-24 15:56:30 +03:00
9a55056b9d session-fx
Some checks failed
deploy / test (push) Failing after 1m2s
deploy / deploy (push) Has been skipped
2023-12-24 11:16:41 +03:00
62887f88c0 prepare-all-authors 2023-12-23 10:45:37 +03:00
0adeba1407 postmerge-fixes 2023-12-22 20:45:01 +03:00
d11a50c2a3 grouped-notifications 2023-12-22 20:34:50 +03:00
Arkadzi Rakouski
dd4dc967bb
upgrade lightbox (#342)
* upgrade lightbox

* Draggable image [wip]

* Resolve conversation

* remove transition

* remove transition only for move

---------

Co-authored-by: ilya-bkv <i.yablokov@ccmp.me>
2023-12-21 14:56:19 +01:00
Igor Lobanov
87b6e44eb2
topic navigation fix (#346)
* topic navigation fix

* topic loading state
2023-12-21 13:48:13 +01:00
Igor Lobanov
d463c83fe3
index page random topic fixes (#345)
* index page random topic fixes

* debug code removed
2023-12-21 11:39:26 +01:00
Ilya Y
37c27cc09c
Feature/change password modal (#344)
* Change Password Modal
2023-12-21 13:02:28 +03:00
Igor Lobanov
d113d9ca8a
random topic (#343)
* test

* test

* index random topic

---------

Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-12-21 00:59:16 +01:00
43b3de572b notification-group-view 2023-12-20 19:54:20 +03:00
Ilya Y
4a2f95aa55
Feature/invite co authors modal (#341)
* Change parent branch

* Invite co-authors

* resolve conversation

* resolve conversation
2023-12-20 17:06:42 +01:00
dog
f520de9d52 add search loader & refactor results rendering 2023-12-20 16:19:31 +03:00
Igor Lobanov
3a7d138eef
feed period select (#340)
* feed period select

* fix, unused code removed

* Fix styles

* Fix styles

* Fix styles

---------

Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
Co-authored-by: ilya-bkv <i.yablokov@ccmp.me>
2023-12-20 09:07:57 +01:00
db1c00e8af Merge branch 'main' of github.com:Discours/discoursio-webapp into feature/sse-connect
Some checks failed
deploy / test (push) Failing after 55s
deploy / deploy (push) Has been skipped
2023-12-20 10:47:28 +03:00
ee6a55c86e followed-fix 2023-12-20 10:45:29 +03:00
dog
cf7aec3e1c prepare search modal, refactor search fetch, handle intersection, etc. 2023-12-19 16:12:11 +03:00
cde041a047 search-modal-fix
Some checks failed
deploy / test (push) Failing after 55s
deploy / deploy (push) Has been skipped
2023-12-19 16:06:54 +03:00
eb1be9652c inbox-reuse-authors
Some checks failed
deploy / test (push) Failing after 54s
deploy / deploy (push) Has been skipped
2023-12-19 12:34:24 +03:00
Arkadzi Rakouski
88d35ce2bc
fix lightbox images layering for icons (#338)
* fix lightbox images layering for icons

* refactor icon data lightbox
2023-12-18 14:47:34 +01:00
Igor Lobanov
c1356d77aa
expo top fix, feed right column loading state (#339)
Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-12-18 14:22:20 +01:00
a405172b76 notifier-connected
Some checks failed
deploy / test (push) Failing after 55s
deploy / deploy (push) Has been skipped
2023-12-18 10:52:52 +03:00
57baccccf2 merged.
Some checks failed
deploy / test (push) Failing after 55s
deploy / deploy (push) Has been skipped
2023-12-18 04:15:49 +03:00
25aaecf360 Merge remote-tracking branch 'hub/main' into feature/sse-connect
Some checks failed
deploy / test (push) Failing after 57s
deploy / deploy (push) Has been skipped
2023-12-18 03:26:56 +03:00
8ed92278bf premerge-fixes 2023-12-18 03:17:58 +03:00
dd370144a7 session-fixes
Some checks failed
deploy / test (push) Failing after 1m41s
deploy / deploy (push) Has been skipped
2023-12-17 15:36:47 +03:00
c12d752ad0 session-context-fix
Some checks failed
deploy / test (push) Failing after 57s
deploy / deploy (push) Has been skipped
2023-12-16 19:44:25 +03:00
2b6738d35b rewritten-session-context 2023-12-16 17:13:14 +03:00
Igor Lobanov
ffde754a43
expo random tops fixes (#337)
Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-12-16 15:06:41 +01:00
Igor Lobanov
63494e9d04
publicGraphQLClient, privateGraphQLClient -> graphQLClient (#336)
* publicGraphQLClient, privateGraphQLClient -> graphQLClient

* ssr fix

---------

Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-12-16 14:57:08 +01:00
9e6ba5a523 session-connect-debug
Some checks failed
deploy / test (push) Failing after 55s
deploy / deploy (push) Has been skipped
2023-12-15 16:45:34 +03:00
Igor Lobanov
d2977b9b21
Feature/unrated (#334)
* Rate first markup

* WIP

* lint

* unrated articles + random top fixes

---------

Co-authored-by: ilya-bkv <i.yablokov@ccmp.me>
Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-12-14 19:45:50 +01:00
070cd7ff2f session-debug-2
Some checks failed
deploy / test (push) Failing after 56s
deploy / deploy (push) Has been skipped
2023-12-14 16:50:22 +03:00
3e2fa02605 session-debug
Some checks failed
deploy / test (push) Failing after 1m44s
deploy / deploy (push) Has been skipped
2023-12-14 15:13:35 +03:00
f23c3fded1 session-context-wip
Some checks failed
deploy / test (push) Failing after 1m6s
deploy / deploy (push) Has been skipped
2023-12-14 14:49:55 +03:00
a59cc9c28e rooting authorizer 2023-12-14 03:04:07 +03:00
dfbbb075e8 prefixed-queries 2023-12-14 02:56:44 +03:00
Igor Lobanov
e5846deab7
Expo random top articles (#331)
* WIP

* done

---------

Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-12-13 23:57:33 +01:00
Ilya Y
f9b9d129dd
Feed metateags (#330) 2023-12-13 14:08:58 +03:00
Ilya Y
9acfdafc2e
Feature/og meta tags (#329)
Add SEO metatags
2023-12-13 13:39:31 +03:00
9d93ee0a6c minor fixes
Some checks failed
deploy / test (push) Failing after 59s
deploy / deploy (push) Has been skipped
2023-12-10 16:59:50 +03:00
e00086ee70 resolvers-updates 2023-12-10 01:15:02 +03:00
44af27d7a5 maintopic-fix
Some checks failed
deploy / test (push) Failing after 53s
deploy / deploy (push) Has been skipped
2023-12-09 21:35:08 +03:00
b7ab62c5ad banner image url fix 2023-12-08 14:49:50 +03:00
9b0fa22a1c cover_caption 2023-12-08 14:49:37 +03:00
1ea72651cf Merge remote-tracking branch 'hub/main' into feature/sse-connect 2023-12-08 10:37:10 +03:00
01eac8a16d maintopic-fix 2023-12-07 22:29:15 +03:00
e42c69c2b1 caption-fix
Some checks failed
deploy / test (push) Failing after 55s
deploy / deploy (push) Has been skipped
2023-12-07 22:07:22 +03:00
Ilya Y
998b190f04
ResizeObserver remove (#328) 2023-12-04 13:34:37 +03:00
Ilya Y
ba71cbfdef
Mobile view slider (#324)
* Mobile view slider
---------

Co-authored-by: kvakazyambra <kvakazyambra@gmail.com>
2023-12-04 13:05:29 +03:00
d0ccd661e3 connect retries limit, query fix, session fix 2023-12-03 19:41:59 +03:00
fce7ffb972 forget-fix-graphql-client-fix
Some checks failed
deploy / test (push) Failing after 55s
deploy / deploy (push) Has been skipped
2023-12-03 13:22:42 +03:00
3353004f48 postmerge-fixes 2023-12-03 11:44:11 +03:00
3fb8dde13c load-fix
Some checks failed
deploy / test (push) Failing after 1m14s
deploy / deploy (push) Has been skipped
2023-12-02 23:02:35 +03:00
1c55c845b0 lint-fix
Some checks failed
deploy / test (push) Failing after 1m22s
deploy / deploy (push) Has been skipped
2023-11-30 11:50:29 +03:00
7b3ab33481 schema-updates
Some checks are pending
deploy / test (push) Waiting to run
deploy / deploy (push) Blocked by required conditions
2023-11-30 11:07:31 +03:00
e782ef348b Profile settings buttons style fixes 2023-11-30 01:12:06 +03:00
267b3a327c Modal style fixes 2023-11-29 23:54:55 +03:00
1159adc6ff Merge remote-tracking branch 'hub/feature/search-modal' into feature/sse-connect 2023-11-29 23:26:15 +03:00
a1ac9a52dd premerge 2023-11-29 23:24:33 +03:00
2d850f3c36 author-feed-fix
Some checks are pending
deploy / deploy (push) Blocked by required conditions
deploy / test (push) Waiting to run
2023-11-29 15:42:48 +03:00
fce0d7cfc6 filter-format-fix
Some checks are pending
deploy / test (push) Waiting to run
deploy / deploy (push) Blocked by required conditions
2023-11-29 15:37:27 +03:00
7bc743d8a7 published-filter-fix 2023-11-29 15:19:25 +03:00
76a15c8aa9 minor-fixes
Some checks are pending
deploy / test (push) Waiting to run
deploy / deploy (push) Blocked by required conditions
2023-11-29 14:40:53 +03:00
590ece4d65 dummy-runable
Some checks failed
deploy / test (push) Has been cancelled
deploy / deploy (push) Has been cancelled
2023-11-29 11:23:08 +03:00
29738ad34a ci+https-fix
Some checks failed
deploy / test (push) Failing after 59s
deploy / deploy (push) Has been skipped
2023-11-28 23:02:28 +03:00
e3034ee3d6 ci-4
Some checks failed
deploy / test (push) Failing after 59s
deploy / deploy (push) Has been skipped
2023-11-28 21:24:22 +03:00
08789fc6c6 ci3 2023-11-28 21:22:18 +03:00
172b5b007b Merge branch 'feature/sse-connect' of https://dev.discours.io/discours.io/webapp into feature/sse-connect 2023-11-28 21:17:55 +03:00
1bb9289c4e ci 2023-11-28 21:17:32 +03:00
a0bbaec242 ci 2023-11-28 21:15:07 +03:00
f2ebc32f12 Minor style fixes 2023-11-28 21:10:00 +03:00
ed3360d92b test-job-ci 2023-11-28 21:04:51 +03:00
b05ff0dfcd Profile head style fixes 2023-11-28 20:25:28 +03:00
7ba3d767d7 Profile head style fixes 2023-11-28 20:06:13 +03:00
b6f9251350 codegen-fix 2023-11-28 19:52:18 +03:00
f50e0e90f6 auth-fix 2023-11-28 18:37:34 +03:00
a703b85bd8 auth-graphql-removed 2023-11-28 18:36:00 +03:00
fecce70aaa _auth-notused 2023-11-28 16:27:18 +03:00
8cfbe8303c refactored. 2023-11-28 16:18:25 +03:00
dd2746e19e Fixed profile settings style 2023-11-28 00:44:58 +03:00
70adae46a8 Fixed hover color on in the popup buttons on the feed page 2023-11-27 23:59:07 +03:00
abd0ab7ccf Fixed header line on mobile 2023-11-27 23:56:26 +03:00
f0c9f85546 Fixed blocks bottom paddings for mobile 2023-11-23 22:02:55 +03:00
Ilya Y
954d964384
Fix/profile update (#327)
Profile settings refactoring
2023-11-23 21:15:06 +03:00
9fb5e27906 Merge remote-tracking branch 'hub/main' into feature/sse-connect 2023-11-23 12:56:05 +03:00
57a289e383 Lightbox controls style fixes 2023-11-23 00:31:51 +03:00
Ilya Y
e716dd9304
Add Link Bubble Menu fixes (#326) 2023-11-21 08:31:17 +03:00
671e627ae5 Top viewed block style fixes 2023-11-21 01:38:55 +03:00
a3afe6ca15 Fixed group block style 2023-11-21 01:12:43 +03:00
11cd9641e0 Fixed author link style in dark blocks 2023-11-21 00:31:52 +03:00
af5379ebf5 Fixed sidebar links style on the feed page 2023-11-21 00:30:48 +03:00
da41cb2e9c Removed feedback link from the footer 2023-11-21 00:29:53 +03:00
786e37afd4 Fixed article style 2023-11-20 20:50:23 +03:00
Igor Lobanov
ef784e288a
404 page made right (#323) 2023-11-18 16:20:15 +01:00
Igor Lobanov
8cad60bdda
Feature/progressive image (#322)
* progressive image

* progressive image v0.2

* progressive images v0.3

* SimplifiedEditor async load, hydration script moved to the bottom

* GrowingTextarea optimization

* static images moved to storj

---------

Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-11-18 15:10:02 +01:00
4bbcedb6c1 postmerge-2 2023-11-17 19:40:14 +03:00
44c693660b Merge remote-tracking branch 'hub/main' into feature/sse-connect 2023-11-17 19:28:04 +03:00
9a5ee8c116 Merge remote-tracking branch 'my/feature/see_connect_merge_with_main' into feature/sse-connect 2023-11-17 19:27:58 +03:00
b6134cc04a postmerge 2023-11-17 19:22:54 +03:00
8d0a6269e1 merged 2023-11-17 18:08:52 +03:00
db358f80fd modelfix-4 2023-11-17 12:43:54 +03:00
18c0693550 model-fix-2 2023-11-17 12:37:54 +03:00
5df3da78d0 no-private-field 2023-11-17 12:05:04 +03:00
332193622d fix-message-struct 2023-11-17 12:00:00 +03:00
13e126589d fix-type 2023-11-17 08:18:25 +03:00
99f39abf12 fix-mutation 2023-11-17 08:01:23 +03:00
cbf6daa034 Fixed editor link popup style 2023-11-17 00:50:09 +03:00
23c85c55e9 Fixed notifications block width for mobile 2023-11-16 23:57:21 +03:00
de097240e3 add-gql 2023-11-16 18:53:24 +03:00
Ilya Y
cf87fb460c
Merge pull request #1 from tonyrewin/feature/sse-connect
Feature/sse connect
2023-11-16 18:42:32 +03:00
ilya-bkv
90f6e6ada3 fix styles in dialogs 2023-11-16 18:35:52 +03:00
4f7702a77f add-sse-entity 2023-11-16 18:34:37 +03:00
93c4c3d308 fieldsfix 2023-11-16 18:27:49 +03:00
6dcc4f37d3 gql-updates 2023-11-16 18:17:48 +03:00
46810edaae Merge remote-tracking branch 'my/feature/see_connect_merge_with_main' into feature/sse-connect 2023-11-16 17:53:59 +03:00
ilya-bkv
7948fc3ccf remove logs 2023-11-16 17:27:22 +03:00
ilya-bkv
4faafe89d5 Render new messages 2023-11-16 17:20:05 +03:00
ilya-bkv
e1a3c881e1 Render new messages (WIP) 2023-11-16 15:23:55 +03:00
449ea48b71
Merge pull request #320 from Discours/fix/static-pages
Static pages refactoring
2023-11-16 01:44:00 +03:00
1eab7db0d6 Changed link to button in the donation form 2023-11-16 01:40:24 +03:00
a9a16ce8b1 Convert donate form styles to css module 2023-11-16 01:21:04 +03:00
3ad0e222d2 Fixed params type 2023-11-16 00:56:31 +03:00
08636979bc Feed sidebar style fixes 2023-11-16 00:51:32 +03:00
df983e1c60 Feed sidebar style fixes 2023-11-15 23:27:43 +03:00
Ilya Y
1772be044c
notification seen fix (#319)
Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-11-15 20:52:05 +03:00
Ilya Y
8b114ea75f
Feature/refactoring simplyfy editor (#318)
add Linkbubble menu
2023-11-15 17:52:10 +03:00
ilya-bkv
6c9e930a03 - Remove Bearer
- change chat endpoint
2023-11-15 16:57:24 +03:00
40b77c99e7 fix-bearer 2023-11-15 16:56:34 +03:00
89d6353803 merged 2023-11-15 12:51:13 +03:00
ed85b75cc8 Fixed article card height 2023-11-14 23:25:11 +03:00
Ilya Y
784bb435c3
Feature/lint (#317)
* prettier

---------

Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-11-14 18:10:00 +03:00
Ilya Y
4162d4318c
duplicated articles on author page fixed (#316)
Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-11-14 13:53:06 +03:00
Kosta
d90572e243
Fix/meta (#314)
* WIP

* WIP

* lint

* package-lock.json

* test

* test

* meta tags fixed

* dynamic titles fix

---------

Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-11-14 12:45:44 +02:00
Ilya Y
37a8805b8a
Fix/hydration (#315)
hydration fix

---------

Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-11-14 10:47:22 +03:00
Kosta
3f3bd798e6
Merge pull request #312 from Discours/feature/vercel_cashe
Add headers
2023-11-14 00:06:10 +02:00
Igor Lobanov
e42ac217d7 Merge remote-tracking branch 'origin/main' into feature/vercel_cashe 2023-11-13 23:05:04 +01:00
Igor Lobanov
8d2ae63e25 debug code removed 2023-11-13 22:56:02 +01:00
Igor Lobanov
e6e1189672 test 2023-11-13 22:35:27 +01:00
Igor Lobanov
aba1d89ead unified naming, unused code removed 2023-11-13 22:22:32 +01:00
Igor Lobanov
cf0ec8dcca something new 2023-11-13 21:57:04 +01:00
Igor Lobanov
446ac598c5 test 2023-11-13 21:23:40 +01:00
Igor Lobanov
a2c80432fd test 2023-11-13 21:14:53 +01:00
Igor Lobanov
cb263c6842 test 2023-11-13 21:08:58 +01:00
Igor Lobanov
3db5cea31d test 2023-11-13 20:52:35 +01:00
Igor Lobanov
d29ad9a645 here we go again 2023-11-13 20:48:05 +01:00
Igor Lobanov
137b3e9177 oh help me glob 2023-11-13 20:21:01 +01:00
Igor Lobanov
e3af5388df test 2023-11-13 19:57:40 +01:00
Igor Lobanov
4d8e89201a lint 2023-11-13 19:56:47 +01:00
252d78b35d Fixed swiper slide height 2023-11-13 21:37:19 +03:00
Igor Lobanov
b7d5260f8d testing-testing 2023-11-13 19:32:23 +01:00
1a55a5bdb8 Fixed error page style 2023-11-13 21:28:21 +03:00
Igor Lobanov
9977d5482e test 2023-11-13 19:25:11 +01:00
Igor Lobanov
2465c835d4 test 2023-11-13 19:15:38 +01:00
Igor Lobanov
f2d7f1d895 test 2023-11-13 18:58:30 +01:00
Igor Lobanov
ffea32f0ab package-lock.json 2023-11-13 18:38:10 +01:00
Igor Lobanov
6d0efd09a3 markdown support dropped 2023-11-13 18:15:40 +01:00
Ilya Y
80a9a4c9a5
Update lightbox (#313)
update_lightbox
2023-11-13 19:55:32 +03:00
Igor Lobanov
6da2e4f0e5 html-to-json-parser removed 2023-11-13 17:48:04 +01:00
Igor Lobanov
e82beb868a just-throttle and debounce replaced with throttle-debounce 2023-11-13 16:55:36 +01:00
Igor Lobanov
8ac7b104a8 async swiper load 2023-11-13 16:46:23 +01:00
ilya-bkv
0466eef16b test onMount 2023-11-13 18:35:07 +03:00
ilya-bkv
ecc1b8feec test import 2023-11-13 18:29:46 +03:00
ilya-bkv
a25255b02d test setHeader 2023-11-13 18:10:39 +03:00
ilya-bkv
9b036b4259 revert runtime: 'edge' 2023-11-13 18:01:04 +03:00
ilya-bkv
301fa4293c Add headers 2023-11-13 17:54:22 +03:00
ilya-bkv
e4f545b935 Merge main 2023-11-13 17:43:08 +03:00
ilya-bkv
d65d9c4188 fix errors 2023-11-13 16:44:04 +03:00
ilya-bkv
b83005fbaa - change privateInboxGraphQLClient options 2023-11-13 16:41:54 +03:00
Ilya Y
be4a89193a
Userpic flow in profile settings (#311)
Userpic flow update
2023-11-13 16:05:55 +03:00
Ilya Y
4121d99a73
Feature/lightbox (#309)
add Lightbox
2023-11-13 11:05:05 +03:00
2c7e98acdf Fixed article card hover style 2023-11-11 21:16:48 +03:00
cbb5e22b42 Fixed article card hover style 2023-11-11 20:42:03 +03:00
658b11d3ca Show article description only on the feed 2023-11-11 19:41:50 +03:00
34451b31ac Add telegram icon to the author card 2023-11-11 18:24:45 +03:00
19e5b36510 Fixed table of contents position 2023-11-11 18:24:05 +03:00
57cbf79197 Fixed article style 2023-11-11 18:22:15 +03:00
5358c2d640 Add twitter to profile social links 2023-11-11 18:20:43 +03:00
3237c3c44a Fixed author subscribe buttons style 2023-11-11 17:27:29 +03:00
52e3d7a5ea Fixed slidesPerView param in sliders 2023-11-10 09:19:38 +03:00
Ilya Y
a146961d76
fix slider (#308) 2023-11-10 06:16:42 +03:00
d7e70f0cce Fixed iframe width 2023-11-10 01:34:04 +03:00
13fb802365 Fixed comments control in the article footer 2023-11-10 01:33:21 +03:00
bf0d96be19 Fixed beside block width on the home page 2023-11-10 01:22:04 +03:00
46db039ced Add props.onImageChange check in the slider change description handler 2023-11-10 01:21:09 +03:00
fedcfea23f Fixed slider style 2023-11-10 01:18:30 +03:00
73aa52d748 Fixed swiper style 2023-11-10 00:40:47 +03:00
434f80ea1b Fixed subscribe button style 2023-11-10 00:15:29 +03:00
Kosta
6c1d73e3f2
Merge pull request #307 from Discours/fix/router_fix
unresponsible page fix
2023-11-09 19:01:51 +02:00
Ilya Y
d1ce122e8d
unresponsible page fix (#306)
Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-11-09 19:58:31 +03:00
Igor Lobanov
b567c908c3 unresponsible page fix 2023-11-09 17:56:49 +01:00
Ilya Y
5d5f4ccfdf
Feature/social input (#299)
Social input in profile
2023-11-09 17:29:48 +03:00
Ilya Y
a31d70003a
Change slides per view (#304) 2023-11-09 11:29:05 +03:00
Ilya Y
3a1e82d522
Change slides per view (#303) 2023-11-09 10:51:26 +03:00
f2b709e3f9 Fixed right aligned block position on the article page 2023-11-09 01:06:37 +03:00
b850bb4178 Fixed slides height 2023-11-09 00:55:27 +03:00
5652259395 Fixed type error 2023-11-09 00:09:50 +03:00
98e0777d2e Fixed subscribe button style 2023-11-08 23:52:56 +03:00
2e30aaa594 Subscribe buttons refactoring 2023-11-08 23:42:13 +03:00
c4dcff1b0a Fixed swiper param type 2023-11-06 23:38:47 +03:00
cd0fb796ab Fixed swiper style 2023-11-06 23:33:57 +03:00
4e1b6ad8b3 Fixed "Unexpected negated condition" error 2023-11-06 22:50:55 +03:00
154807d4be Make subscribe buttons identical 2023-11-06 22:45:10 +03:00
2a29e69d21 On the article page make article footer same as on the feed page 2023-11-06 22:15:13 +03:00
Ilya Y
38ab3ddc4b
Update AuthorBadge mobile view (#302) 2023-11-06 11:00:31 +03:00
Ilya Y
081c9c1734
Change Article Image size (#301) 2023-11-06 10:28:50 +03:00
Ilya Y
9c05bdebd6
Fix image width in swiper (#300) 2023-11-06 10:05:01 +03:00
Kosta
2dda1a09b4
Merge pull request #298 from Discours/fix/authors_by_name
fixed
2023-11-04 18:13:56 +02:00
Igor Lobanov
8ca38a6fd9 fixed 2023-11-04 17:09:29 +01:00
Kosta
d4e0d43a55
Merge pull request #297 from Discours/fix/404_page
WIP
2023-11-04 18:01:15 +02:00
Igor Lobanov
efc5bb258f updated graphql types 2023-11-04 16:56:46 +01:00
Igor Lobanov
cd6db7d93d rollback 2023-11-04 16:54:50 +01:00
Igor Lobanov
03a0556015 build fix 2023-11-04 16:46:55 +01:00
Igor Lobanov
d82e7964c3 lib updates, lint 2023-11-04 16:37:28 +01:00
Igor Lobanov
edf621a91b build fix 2023-11-04 15:21:36 +01:00
Igor Lobanov
8e9b2ee4af WIP 2023-11-04 15:11:58 +01:00
Igor Lobanov
082d11e7b4 WIP 2023-11-04 14:57:42 +01:00
Igor Lobanov
9e46f7d4fb WIP 2023-11-04 14:40:55 +01:00
Igor Lobanov
d20e546d69 test 2023-11-04 14:24:14 +01:00
Igor Lobanov
88a5be0ec1 WIP 2023-11-04 14:09:15 +01:00
Ilya Y
b34d8716d9
init (#296) 2023-11-03 09:05:34 +03:00
f04037eb59 No wrap for user actions controls in the footer on the full article page 2023-11-03 02:02:32 +03:00
ca43b1baca Fixed close control position in the narrow modal 2023-11-03 01:59:01 +03:00
eb338d446e Fixed subscribe buttons style 2023-11-03 01:02:11 +03:00
d83a257e32 Fixed footer social buttons alignment 2023-11-02 22:39:02 +03:00
d5fa4ed034 Search modal 2023-11-02 22:21:51 +03:00
Kosta
b03b59002a
Merge pull request #295 from Discours/fix/logout
subscriptions after logout fix
2023-11-02 19:46:33 +02:00
Igor Lobanov
b507be3620 subscriptions after logout fix 2023-11-02 18:43:22 +01:00
Kosta
8e5e05545a
Merge pull request #294 from Discours/fix/editor_image_upload
editor image upload fix
2023-11-02 18:50:22 +02:00
Igor Lobanov
39407aa0cb editor image upload fix 2023-11-02 17:47:57 +01:00
Ilya Y
891b9ec5f7
Use Solid Swiper (#293)
Use Solid Swiper
2023-11-02 13:34:38 +03:00
Ilya Y
f1e68f219c
Markup fixes: (#292)
- auth modal height
- notifications close panel
2023-11-02 06:31:00 +03:00
Ilya Y
73d8d1ef27
Follow topic btn (#291)
* Follow topic btn
2023-11-01 19:10:19 +03:00
Ilya Y
1e0e31cf09
Feature/infinite scroll (#290)
notifications infinity scroll
2023-11-01 18:13:54 +03:00
Ilya Y
56252046c1
nav fix (#289) 2023-11-01 14:42:01 +03:00
Ilya Y
4d3687c623
articles cache invalidation for feed pages, minor fixes (#288)
Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-11-01 14:17:31 +03:00
Ilya Y
d79716bde0
Message header - clickable avatar (#287)
* Message header - clickable avatar
* Hide cancel button in messenger
2023-11-01 11:34:59 +03:00
c806c6e304 Removed redundant code 2023-11-01 00:28:19 +03:00
4ca01e5a02 Header buttons style fixes 2023-11-01 00:21:30 +03:00
d64449fb33 Fixed buttons style on the author page 2023-10-31 19:44:00 +03:00
3a5b279f78 Fixed mobile article footer 2023-10-31 18:22:00 +03:00
Ilya Y
bfb3fd570c
Delete audio cover in Editor (#285) 2023-10-30 14:29:15 +03:00
Ilya Y
93cb38006b
Fix/i18n fix (#286)
i18n fix
2023-10-30 14:20:33 +03:00
Ilya Y
a54d592038
Feature/thumbor (#284)
* thumbor integration
* disabled lazy loading for some images
* add profile userpic upload error message

---------

Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-10-27 21:50:13 +03:00
933a2bb71a Minor style fixes 2023-10-27 00:13:59 +03:00
Ilya Y
15691a973d
homepage slider conditional render (#283) 2023-10-26 06:17:23 +03:00
b0706b1560 Header mobile style fixes 2023-10-26 00:41:34 +03:00
c459db5813 Voters list style fixes 2023-10-26 00:41:04 +03:00
919c9ff7ea Sidebar icons style fixes 2023-10-26 00:00:48 +03:00
6adbd573d9 Minor style fixes 2023-10-26 00:00:21 +03:00
Ilya Y
b85c05a8c3
Feature/toggle mobile header (#281)
- toggle language
- toggle menu on current link
2023-10-25 18:04:23 +03:00
Kosta
ea1de20466
Merge pull request #282 from Discours/fix/profile_articles
profile shouts fix 1
2023-10-25 17:11:57 +03:00
Igor Lobanov
0652c204b5 profile shouts fix 1 2023-10-25 15:57:21 +02:00
42cfc02ef6 Snackbar style fixes 2023-10-25 00:44:10 +03:00
d6c4ec68ee Confirm modal style fixes 2023-10-25 00:43:50 +03:00
Ilya Y
18c98fef32
meta fixed (#280)
Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-10-24 22:20:05 +03:00
Ilya Y
7b5324a728
fix typo errors (#279) 2023-10-24 13:43:52 +03:00
7ec3be0b2f Mobile navigation fixes 2023-10-24 01:35:02 +03:00
Ilya Y
704adcd4be
Comments improvements & bugfix (#277)
* Mobile header Subscribe

* Comments improvements & bugfix
2023-10-23 18:18:10 +03:00
Ilya Y
023e0067f8
Feature/en locale fix (#278)
* en locale fix

* lint

---------

Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-10-23 14:15:19 +03:00
Ilya Y
5912e6e1a1
en locale fix (#276)
Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-10-23 14:02:01 +03:00
Ilya Y
65e34f1551
Mobile header Subscribe (#275) 2023-10-21 15:45:07 +03:00
04efdd368e no-typescript-good 2023-10-20 21:07:33 +03:00
Ilya Y
bfe1ef2e85
Feature/refactoring user card (#274)
* Refactoring AuthorCard
* fix alphabet sort
2023-10-20 19:21:40 +03:00
4c5778d0de fix-sse-url 2023-10-20 15:11:06 +03:00
Ilya Y
891d29ff6a
signIn/getSession optimizaiton frontend (#272)
Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-10-19 18:05:22 +03:00
294b7da5da sse-msg-format 2023-10-19 17:44:26 +03:00
121cbfdbdd wrapped-sse 2023-10-19 13:19:52 +03:00
9c263b697e postmerge 2023-10-19 02:34:15 +03:00
Kosta
85e8533931
dates in notifications, lots of minor fixes (#271)
* dates in notifications, lots of minor fixes
Co-authored-by: Igor Lobanov <igor.lobanov@onetwotrip.com>
2023-10-18 13:56:41 +03:00
89d2f638ca event-stream-debug2 2023-10-18 13:49:42 +03:00
54f114c8c9 event-stream-debug 2023-10-18 13:48:50 +03:00
2b91a729bd noasync 2023-10-18 12:56:07 +03:00
4748ecb141 nowrap-eventstream 2023-10-18 12:46:35 +03:00
ecc8cffa0e Merge branch 'main' of https://github.com/Discours/discoursio-webapp into feature/sse-connect 2023-10-18 10:38:23 +03:00
0731c1c978 premerge 2023-10-18 10:38:16 +03:00
4104bac44e Merge branch 'main' of https://github.com/Discours/discoursio-webapp into feature/sse-connect 2023-10-17 17:08:13 +03:00
99cb39eeee postmerge-lock 2023-10-17 14:05:54 +03:00
0d3103c672 Merge branch 'main' of https://github.com/Discours/discoursio-webapp into feature/sse-connect 2023-10-17 09:41:09 +03:00
f27d1c2d3a Merge remote-tracking branch 'hub/main' into feature/sse-connect 2023-10-17 09:40:03 +03:00
bcb44302e1 message-handler-fix 2023-10-17 09:37:11 +03:00
aaa1527770 small-fix 2023-10-17 00:45:22 +03:00
12e5743d24 merged 2023-10-16 21:00:22 +03:00
f95b659e98 main-merged 2023-10-16 15:28:30 +03:00
31c1e09f1a Merge remote-tracking branch 'origin/main' 2023-10-16 15:26:34 +03:00
45597bda8b feat: add in CI/CD pipline
Some checks failed
deploy / deploy (push) Failing after 3m46s
2023-10-15 15:49:46 -03:00
30e09f447e feat: add in CI/CD pipline 2023-10-15 15:48:28 -03:00
3b640aa67f feat: add in CI/CD pipline 2023-10-15 15:48:28 -03:00
89fcc13016 fix-idb-window 2023-10-15 02:27:33 +03:00
359bfc3f7a notifications-postmerge-fixes 2023-10-15 02:05:07 +03:00
26ba530f9e merged 2023-10-14 18:41:22 +03:00
87c45a48a2 inbox-schema-fix 2023-10-14 18:37:17 +03:00
b70e70cba3 inbox-context 2023-10-14 00:39:08 +03:00
f3cfa97254 bearer-added 2023-10-13 14:50:46 +03:00
93eafb47d0 тщищвн 2023-10-13 00:44:02 +03:00
2138fadfcf fixed-sse 2023-10-12 17:55:14 +03:00
f9e7e5cff1 with-s 2023-10-12 16:20:31 +03:00
8ef0e9ff5f -s 2023-10-12 16:10:17 +03:00
64f8110e84 fix-queryname 2023-10-11 21:43:13 +03:00
4650469247 bun+fixes 2023-10-11 20:03:20 +03:00
5d749c09a7 add-fetch-eventsource-close-on-error 2023-10-11 17:41:36 +03:00
8ce300bacb add-fetch-eventsource-2 2023-10-11 17:38:47 +03:00
767147c4d1 add-fetch-eventsource 2023-10-11 17:25:59 +03:00
42d69593f8 sse-testapi 2023-10-11 16:17:12 +03:00
7dec041368 fix-connect-url 2023-10-11 15:38:57 +03:00
a80f778325 bump-merge 2023-10-11 14:16:01 +03:00
9cedb23ccf Merge branch 'main' of https://github.com/Discours/discoursio-webapp into feature/sse-test 2023-10-10 01:27:59 +03:00
866bea77de inbox-client-fix 2023-10-10 01:17:29 +03:00
6334afb6fa Merge branch 'main' of https://github.com/Discours/discoursio-webapp into feature/sse-test 2023-10-09 20:33:16 +03:00
f4336b40f6 inbox-client 2023-10-09 18:30:52 +03:00
82411d1a11 sse-test 2023-10-08 20:44:00 +03:00
779 changed files with 42877 additions and 40256 deletions

View File

@ -1,6 +0,0 @@
node_modules
public
*.cjs
src/graphql/*.gen.ts
dist/
.vercel/

View File

@ -1,87 +0,0 @@
module.exports = {
plugins: ['@typescript-eslint', 'import', 'sonarjs', 'unicorn', 'promise', 'solid', 'jest'],
extends: [
'eslint:recommended',
'plugin:import/recommended',
'plugin:import/typescript',
'prettier',
'plugin:sonarjs/recommended',
'plugin:unicorn/recommended',
'plugin:promise/recommended',
'plugin:solid/recommended',
'plugin:jest/recommended'
],
overrides: [
{
files: ['**/*.ts', '**/*.tsx'],
parser: '@typescript-eslint/parser',
parserOptions: {
ecmaVersion: 2021,
ecmaFeatures: { jsx: true },
sourceType: 'module',
project: './tsconfig.json'
},
extends: [
'plugin:@typescript-eslint/recommended'
// Maybe one day...
// 'plugin:@typescript-eslint/recommended-requiring-type-checking'
],
rules: {
'@typescript-eslint/no-unused-vars': [
'warn',
{
argsIgnorePattern: '^_'
}
],
'@typescript-eslint/no-non-null-assertion': 'error',
// TODO: Remove any usage and enable
'@typescript-eslint/no-explicit-any': 'off'
}
}
],
env: {
browser: true,
node: true,
mocha: true
},
globals: {},
rules: {
// Solid
'solid/reactivity': 'off', // FIXME
'solid/no-innerhtml': 'off',
/** Unicorn **/
'unicorn/no-null': 'off',
'unicorn/filename-case': 'off',
'unicorn/no-array-for-each': 'off',
'unicorn/no-array-reduce': 'off',
'unicorn/prefer-string-replace-all': 'warn',
'unicorn/prevent-abbreviations': 'off',
'unicorn/prefer-module': 'off',
'unicorn/import-style': 'off',
'unicorn/numeric-separators-style': 'off',
'unicorn/prefer-node-protocol': 'off',
'unicorn/prefer-dom-node-append': 'off', // FIXME
'unicorn/prefer-top-level-await': 'warn',
'unicorn/consistent-function-scoping': 'warn',
'unicorn/no-array-callback-reference': 'warn',
'unicorn/no-array-method-this-argument': 'warn',
'sonarjs/no-duplicate-string': ['warn', { threshold: 5 }],
// Promise
// 'promise/catch-or-return': 'off', // Should be enabled
'promise/always-return': 'off',
eqeqeq: 'error',
'no-param-reassign': 'error',
'no-nested-ternary': 'error',
'no-shadow': 'error'
},
settings: {
'import/resolver': {
typescript: true,
node: true
}
}
}

80
.gitea/workflows/main.yml Normal file
View File

@ -0,0 +1,80 @@
name: "deploy"
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install dependencies
run: npm ci
- name: Install Biome
run: npm install --global --save-exact @biomejs/biome
- name: Lint with Biome
run: npx @biomejs/biome ci
- name: Lint styles
run: npx stylelint **/*.{scss,css}
- name: Check types
run: npm run typecheck
- name: Test production build
run: npm run build
- name: Install Playwright
run: npx playwright install --with-deps
- name: Run Playwright tests
run: npm run e2e
env:
BASE_URL: ${{ github.event.deployment_status.target_url }}
DEBUG: pw:api
email-templates:
runs-on: ubuntu-latest
name: Update templates on Mailgun
if: github.event_name == 'push' && github.ref == 'refs/heads/feature/email-templates'
continue-on-error: true
steps:
- name: Checkout
uses: actions/checkout@v2
- name: "Email confirmation template"
uses: gyto/mailgun-template-action@v2
with:
html-file: "./templates/authorizer_email_confirmation.html"
mailgun-api-key: ${{ secrets.MAILGUN_API_KEY }}
mailgun-domain: "discours.io"
mailgun-template: "authorizer_email_confirmation"
- name: "Password reset template"
uses: gyto/mailgun-template-action@v2
with:
html-file: "./templates/authorizer_password_reset.html"
mailgun-api-key: ${{ secrets.MAILGUN_API_KEY }}
mailgun-domain: "discours.io"
mailgun-template: "authorizer_password_reset"
- name: "First publication notification"
uses: gyto/mailgun-template-action@v2
with:
html-file: "./templates/first_publication_notification.html"
mailgun-api-key: ${{ secrets.MAILGUN_API_KEY }}
mailgun-domain: "discours.io"
mailgun-template: "first_publication_notification"
- name: "New comment notification template"
uses: gyto/mailgun-template-action@v2
with:
html-file: "./templates/new_comment_notification.html"
mailgun-api-key: ${{ secrets.MAILGUN_API_KEY }}
mailgun-domain: "discours.io"
mailgun-template: "new_comment_notification"

View File

@ -1,18 +1,58 @@
name: CI name: "CI and E2E Tests"
on: [push] on:
push:
deployment_status:
types: [success]
jobs: jobs:
build: ci:
if: github.event_name == 'push'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v4
- uses: actions/setup-node@v2 - uses: actions/setup-node@v4
- name: Install dependencies
run: npm i
- name: Install CI checks
run: npm ci
- name: Check types
run: npm run typecheck
- name: Lint with Biome
run: npx @biomejs/biome check src/.
- name: Lint styles
run: npx stylelint **/*.{scss,css}
- name: Test production build
run: npm run build
e2e_tests:
needs: ci
runs-on: ubuntu-latest
steps:
- name: Debug event info
run: |
echo "Event Name: ${{ github.event_name }}"
echo "Deployment Status: ${{ github.event.deployment_status.state }}"
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with: with:
node-version: '18' node-version: '18'
- name: Install dependencies
- name: Install deps run: npm install
run: npm ci - name: Wait for deployment to be live
run: |
- name: Check echo "Waiting for Vercel deployment to be live..."
run: npm run check until curl -sSf https://testing.discours.io > /dev/null; do
printf '.'
sleep 10
done
- name: Install Playwright and dependencies
run: npm run e2e:install
- name: Run Playwright tests
run: npm run e2e:tests:ci
env:
BASE_URL: https://testing.discours.io
continue-on-error: true
- name: Report test result if failed
if: failure()
run: echo "E2E tests failed. Please review the logs."

19
.gitignore vendored
View File

@ -1,8 +1,9 @@
.devcontainer
.pnpm-store
dist/ dist/
node_modules/ node_modules/
npm-debug.log* npm-debug.log*
pnpm-debug.log* pnpm-debug.log*
.vscode
.env .env
.env.production .env.production
.DS_Store .DS_Store
@ -11,6 +12,22 @@ pnpm-debug.log*
.eslint/.eslintcache .eslint/.eslintcache
public/upload/* public/upload/*
src/graphql/introspec.gen.ts src/graphql/introspec.gen.ts
src/graphql/schema/*.gen.ts
stats.html stats.html
*.scss.d.ts *.scss.d.ts
pnpm-lock.yaml pnpm-lock.yaml
bun.lockb
.jj
/test-results/
/playwright-report/
/blob-report/
/playwright/.cache/
/plawright-report/
target
.github/dependabot.yml
.output
.vinxi
*.pem
edge.*
.vscode/settings.json
storybook-static

View File

@ -1,21 +0,0 @@
---
stages:
- deploy
deploy:
image:
name: alpine/git
entrypoint: [""]
stage: deploy
environment:
name: production
url: https://new.discours.io
only:
- main
script:
- mkdir ~/.ssh
- echo "${HOST_KEY}" > ~/.ssh/known_hosts
- echo "${SSH_PRIVATE_KEY}" > ~/.ssh/id_rsa
- chmod 0400 ~/.ssh/id_rsa
- git remote add github git@github.com:Discours/discoursio-webapp.git
- git push github HEAD:main

View File

@ -1,4 +0,0 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npm run pre-commit

View File

@ -1,4 +0,0 @@
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
npm run pre-push

View File

@ -1,4 +0,0 @@
{
"*.{js,mjs,ts,tsx,json,scss,css,html}": "prettier --write",
"package.json": "sort-package-json"
}

View File

@ -1,6 +0,0 @@
{
"*.{js,ts,tsx,json,scss,css,html}": "prettier --write",
"package.json": "sort-package-json",
"*.{scss,css}": "stylelint",
"*.{ts,tsx,js}": "eslint --fix"
}

View File

@ -1,17 +0,0 @@
{
"htmlWhitespaceSensitivity": "ignore",
"semi": false,
"singleQuote": true,
"proseWrap": "always",
"printWidth": 108,
"trailingComma": "none",
"plugins": [],
"overrides": [
{
"files": "*.ts",
"options": {
"parser": "typescript"
}
}
]
}

49
.storybook/main.ts Normal file
View File

@ -0,0 +1,49 @@
import type { FrameworkOptions, StorybookConfig } from 'storybook-solidjs-vite'
const config: StorybookConfig = {
stories: ['../src/**/*.stories.@(js|jsx|ts|tsx|mdx)'],
addons: [
'@storybook/addon-links',
'@storybook/addon-essentials',
'@storybook/addon-interactions',
'@storybook/addon-a11y',
'@storybook/addon-themes',
'storybook-addon-sass-postcss'
],
framework: {
name: 'storybook-solidjs-vite',
options: {
builder: {
viteConfigPath: './vite.config.ts'
}
} as FrameworkOptions
},
docs: {
autodocs: 'tag'
},
viteFinal: (config) => {
if (config.build) {
config.build.sourcemap = true
config.build.minify = process.env.NODE_ENV === 'production'
}
if (config.css) {
config.css.preprocessorOptions = {
scss: {
silenceDeprecations: ['mixed-decls'],
additionalData: '@import "~/styles/imports";\n',
includePaths: ['./public', './src/styles', './node_modules']
}
}
}
return config
},
previewHead: (head) => `
${head}
<style>
body {
transition: none !important;
}
</style>
`
}
export default config

34
.storybook/preview.ts Normal file
View File

@ -0,0 +1,34 @@
import { withThemeByClassName } from '@storybook/addon-themes'
import '../src/styles/app.scss'
const preview = {
parameters: {
themes: {
default: 'light',
list: [
{ name: 'light', class: '', color: '#f8fafc' },
{ name: 'dark', class: 'dark', color: '#0f172a' }
]
},
actions: { argTypesRegex: '^on[A-Z].*' },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/
}
}
}
}
export default preview
export const decorators = [
withThemeByClassName({
themes: {
light: '',
dark: 'dark'
},
defaultTheme: 'light',
parentSelector: 'body'
})
]

23
.storybook/test-runner.ts Normal file
View File

@ -0,0 +1,23 @@
import type { Page } from '@playwright/test'
import type { TestRunnerConfig } from '@storybook/test-runner'
import { checkA11y, injectAxe } from 'axe-playwright'
/*
* See https://storybook.js.org/docs/react/writing-tests/test-runner#test-hook-api-experimental
* to learn more about the test-runner hooks API.
*/
const a11yConfig = {
async preRender(page: Page) {
await injectAxe(page)
},
async postRender(page: Page) {
await checkA11y(page, '#storybook-root', {
detailedReport: true,
detailedReportOptions: {
html: true
}
})
}
} as TestRunnerConfig
module.exports = a11yConfig

View File

@ -1,2 +1,6 @@
.vercel/ node_modules
dist/ dist/
storybook-static
.output
.vinxi
.vercel

View File

@ -1,37 +0,0 @@
{
"extends": [
"stylelint-config-standard-scss"
],
"plugins": [
"stylelint-order",
"stylelint-scss"
],
"rules": {
"selector-class-pattern": null,
"no-descending-specificity": null,
"scss/function-no-unknown": null,
"scss/no-global-function-names": null,
"function-url-quotes": null,
"font-family-no-missing-generic-family-keyword": null,
"order/order": [
"custom-properties",
"declarations"
],
"scss/dollar-variable-pattern": ["^[a-z][a-zA-Z]+$", {
"ignore": "global"
}],
"selector-pseudo-class-no-unknown": [
true,
{
"ignorePseudoClasses": ["global", "export"]
}
],
"property-no-vendor-prefix": [
true,
{
"ignoreProperties": ["box-decoration-break"]
}
]
},
"defaultSeverity": "warning"
}

View File

@ -1,31 +0,0 @@
{
"extends": [
"stylelint-config-standard-scss"
],
"plugins": [
"stylelint-order",
"stylelint-scss"
],
"rules": {
"selector-class-pattern": null,
"no-descending-specificity": null,
"scss/function-no-unknown": null,
"scss/no-global-function-names": null,
"function-url-quotes": null,
"font-family-no-missing-generic-family-keyword": null,
"order/order": [
"custom-properties",
"declarations"
],
"scss/dollar-variable-pattern": ["^[a-z][a-zA-Z]+$", {
"ignore": "global"
}],
"selector-pseudo-class-no-unknown": [
true,
{
"ignorePseudoClasses": ["global", "export"]
}
]
},
"defaultSeverity": "warning"
}

73
.stylelintrc.json Normal file
View File

@ -0,0 +1,73 @@
{
"defaultSeverity": "warning",
"extends": ["stylelint-config-standard-scss", "stylelint-config-recommended"],
"plugins": ["stylelint-order", "stylelint-scss"],
"rules": {
"annotation-no-unknown": [
true,
{
"ignoreAnnotations": ["default"]
}
],
"at-rule-no-unknown": null,
"declaration-block-no-redundant-longhand-properties": null,
"font-family-no-missing-generic-family-keyword": null,
"function-no-unknown": [
true,
{
"ignoreFunctions": ["divide", "transparentize"]
}
],
"function-url-quotes": null,
"keyframes-name-pattern": null,
"no-descending-specificity": null,
"order/order": [
{
"type": "at-rule",
"name": "include"
},
"custom-properties",
"declarations",
"rules"
],
"property-no-vendor-prefix": [
true,
{
"ignoreProperties": ["box-decoration-break"]
}
],
"scss/at-function-pattern": null,
"scss/at-mixin-pattern": null,
"scss/dollar-variable-colon-space-after": "always-single-line",
"scss/dollar-variable-colon-space-before": "never",
"scss/dollar-variable-pattern": [
"^[a-z][a-zA-Z]+$",
{
"ignore": "global"
}
],
"scss/double-slash-comment-empty-line-before": [
"always",
{
"except": ["first-nested"],
"ignore": ["between-comments", "stylelint-commands"]
}
],
"scss/double-slash-comment-whitespace-inside": "always",
"scss/function-no-unknown": null,
"scss/no-duplicate-dollar-variables": null,
"scss/no-duplicate-mixins": null,
"scss/no-global-function-names": null,
"scss/operator-no-newline-after": null,
"scss/operator-no-newline-before": null,
"scss/operator-no-unspaced": null,
"scss/percent-placeholder-pattern": null,
"selector-class-pattern": null,
"selector-pseudo-class-no-unknown": [
true,
{
"ignorePseudoClasses": ["global", "export"]
}
]
}
}

3
.vscode/extension.json vendored Normal file
View File

@ -0,0 +1,3 @@
{
"recommendations": ["biomejs.biome", "stylelint.vscode-stylelint", "wayou.vscode-todo-highlight"]
}

5
.vscode/settings.json vendored Normal file
View File

@ -0,0 +1,5 @@
{
"editor.codeActionsOnSave": {
"source.organizeImports.biome": "always"
}
}

View File

@ -1,179 +0,0 @@
[0.8.0]
[+] i18next for ,solid
[-] i18n
[+] custom snackbar
[+] editor lazy load
[+] hygen
[-] astro removed
[+] vite ssr plugin
[0.7.1]
[+] reactions CUDL
[+] api/upload with storj
[+] api/feedback
[+] bumped astro pkgs versions
[+] graphql ws subs
[0.7.0]
[+] inbox: context provider, chats
[+] comments: show
[+] session: context provider
[+] views tracker: counting for shouts
[0.6.1]
[+] auth ver. 0.9
[+] load-by interfaces for shouts, authors and messages
[+] inbox logix and markup
[-] old views counting
[0.6.0]
[+] hybrid routing ssr/spa
[+] 'expo' pages
[-] layout term usage with an exception
[-] less nanostores
[+] inbox
[+] css modules
[+] draft editor
[+] solid-driven storages
[0.5.1]
[+] nanostores-base global store
[-] Root.tsx components
[+] astro/solid basic hydration
[0.5.0]
[-] removed solid-primitives/i18n
[+] added custom dummy utils/intl
[-] solid-app-router
[+] astro build and routing
[-] solid-top-loading-bar
[+] lint, prettier
[-] context providers, _cache
[+] ssr PoW
[0.4.1]
[-] markdown-it
[+] remark, rehype, gfm
[+] api fixes
[0.4.0]
[+] upload, feedback, newsletter serverless
[-] ratings
[-] comments
[-] proposals
[+] universal reaction entity
[+] staged preload
[0.3.1]
[+] promisisified stores
[+] prerender based on mdx
[+] hybryd zine state manager
[0.3.0]
[+] markup is simpler
[+] really use mdx
[+] really use i18n
[+] refactored queries
[+] final routing
[0.2.1]
[+] custom store
[+] playwright
[+] mdx
[0.2.0]
[-] sveltekit
[-] graphql-request
[+] migrated to solid
[+] urql
[+] graphql caching results
[0.1.0]
[+] husky, lint-staged
[+] components refactoring
[+] 'static' pages fixes
[+] ShoutFeed's reusable components
[+] render order revised
[0.0.9]
[+] lots of visual changes for demo
[+] cookie-based subscriptions
[+] prerender fix
[+] refactor queries
[+] caching topics with localStorage
[+] added some 'static' routes
[0.0.8]
[+] isolated editor codebase
[+] sveo
[+] SSG first
[+] svelte-kit caching fixes
[+] isolated MD component
[-] code cleanup
[-] /auth route
[-] top nav changes
[0.0.7]
[+] nav refactoring /[what] /@[who]
[+] /reset/[code], /reset/password
[+] modal auth dialog
[+] Topic.pic field
[+] internal svelte prerender
[+] GET_SHOUTS, TOP_SHOUTS_BY_RATING, GET_TOPICS, GET_COMMUNITIES via caching json trick
[~] User.username -> User.name
[0.0.6]
[-] organization, org_id
[+] community entity
[+] mainpage markup
[+] topics filter navigation
[+] monor schema fixes
[-] gitea.js api
[-] postcss with plugins
[-] bootstrap
[+] windicss
[+] async sveltekit-styled queries
[+] login basic markup
[0.0.5]
[+] migrate to sveltekit
[-] removed apollo due bug
[-] removed custom prerender code
[+] stylelint enabled
[+] precompiler windows support
[+] precompiler separated
[0.0.4]
[+] precompiler generated static indexes
[-] puppeteer switched off
[+] topic entity added
[-] i18n switched off
[+] own signaling server connected
[-] store-based routing removed
[+] reset password page
[+] login/register form
[+] social auth fb, ggl, vk
[0.0.3]
[~] prerender with puppeteer
[+] precompiled data.json
[~] international content support
[+] auth graphql client
[-] removed ws yjs-server
[-] pathfinder replaced
[+] mdsvex support
[0.0.2]
[+] apollo client with codegen
[+] ci basics
[+] code organized
[0.0.1]
[+] 3rd party deps: tiptap, apollo,
[+] boiilerplate with esbuild
[+] simple structure

View File

@ -1,6 +1,6 @@
MIT License MIT License
Copyright (c) 2021-2023 Discours Copyright (c) 2021-2024 Discours
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

57
README.en.md Normal file
View File

@ -0,0 +1,57 @@
## Development setup recommendations
### How to start
Use `bun i`, `npm i`, `pnpm i` or `yarn` to install packages.
### Config of variables
- Use `.env` file to setup your own development environment
- Env vars with prefix `PUBLIC_` are widely used in `/src/utils/config.ts`
### Useful commands
run checks, fix styles, imports, formatting and autofixable linting errors:
```
bun run typecheck
bun run fix
```
## End-to-End (E2E) Tests
This directory contains end-to-end tests. These tests are written using [Playwright](https://playwright.dev/)
### Structure
- `/tests/*`: This directory contains the test files.
- `/playwright.config.ts`: This is the configuration file for Playwright.
### Getting Started
Follow these steps:
1. **Install dependencies**: Run `npm run e2e:install` to install the necessary dependencies for running the tests.
2. **Run the tests**: After using `npm run e2e:tests`.
### Additional Information
If workers is no needed use:
- `npx playwright test --project=webkit --workers 4`
For more information on how to write tests using Playwright - [Playwright documentation](https://playwright.dev/docs/intro).
### 🚀 Tests in CI Mode
Tests are executed within a GitHub workflow. We organize our tests into two main directories:
- `tests`: Contains tests that do not require authentication.
- `tests-with-auth`: Houses tests that interact with authenticated parts of the application.
🔧 **Configuration:**
Playwright is configured to utilize the `BASE_URL` environment variable. Ensure this is properly set in your CI configuration to point to the correct environment.
📝 **Note:**
After pages have been adjusted to work with authentication, all tests should be moved to the `tests` directory to streamline the testing process.

View File

@ -1,32 +1,57 @@
## How to start [English](README.en.md)
## Рекомендации по настройке разработки
### Как начать
Используйте `bun i`, `npm i`, `pnpm i` или `yarn`, чтобы установить пакеты.
### Настройка переменных
- Используйте файл `.env` для настройки переменных собственной среды разработки.
- Переменные окружения с префиксом `PUBLIC_` широко используются в `/src/utils/config.ts`.
### Полезные команды
Запуск проверки соответствия типов и автоматически исправить ошибки стилей, порядок импорта, форматирование:
``` ```
npm install bun run typecheck
npm start bun run fix
```
with different backends
```
npm run start:local
npm run start:production
npm run start:staging
``` ```
## Useful commands ## End-to-End (E2E) тесты
run checks
```
npm run check
```
type checking with watch
```
npm run typecheck:watch
```
## Code generation
generate new SolidJS component: End-to-end тесты написаны с использованием [Playwright](https://playwright.dev/).
```
npx hygen component new NewComponentName
```
generate new SolidJS context: ### Структура
```
npx hygen context new NewContextName - `/tests/*`: содержит файлы тестов
``` - `/playwright.config.ts`: конфиг для Playwright
### Начало работы
Следуйте этим шагам:
1. **Установите зависимости**: Запустите `npm run e2e:install`, чтобы установить необходимые зависимости для выполнения тестов.
2. **Запустите тесты**: После установки зависимостей используйте `npm run e2e:tests`.
### Дополнительная информация
Для параллельного исполнения:
- `npx playwright test --project=webkit --workers 4`
Для получения дополнительной информации о написании тестов с использованием Playwright - [Документация Playwright](https://playwright.dev/docs/intro).
### 🚀 Тесты в режиме CI
Тесты выполняются в рамках GitHub workflow из папки `tests`
🔧 **Конфигурация:**
Playwright настроен на использование переменной окружения `BASE_URL`. Убедитесь, что она правильно установлена в вашей конфигурации CI для указания на правильную среду.
📝 **Примечание:**
После того как страницы были настроены для работы с аутентификацией, все тесты должны быть перемещены в директорию `tests` для упрощения процесса тестирования.

View File

@ -1,21 +0,0 @@
const { chromium } = require('playwright')
const checkUrl = async (page, targetUrl, pageName) => {
const response = await page.goto(targetUrl)
if (response.status() > 399) {
throw new Error(`Failed with response code ${response.status()}`)
}
await page.screenshot({ path: `${pageName}.jpg` })
}
const browser = await chromium.launch()
const page = await browser.newPage()
const targetUrl = process.env.ENVIRONMENT_URL || 'https://testing.discours.io'
await checkUrl(page, targetUrl, 'main')
await checkUrl(page, `${targetUrl}/authors`, 'authors')
await checkUrl(page, `${targetUrl}/topics`, 'topics')
await page.close()
await browser.close()

View File

@ -1,18 +0,0 @@
---
to: src/components/<%= h.changeCase.pascal(name) %>/<%= h.changeCase.pascal(name) %>.tsx
---
import { clsx } from 'clsx'
import styles from './<%= h.changeCase.pascal(name) %>.module.scss'
type Props = {
class?: string
}
export const <%= h.changeCase.pascal(name) %> = (props: Props) => {
return (
<div class={clsx(styles.<%= h.changeCase.pascal(name) %>, props.class)}>
<%= h.changeCase.pascal(name) %>
</div>
)
}

View File

@ -1,4 +0,0 @@
---
to: src/components/<%= h.changeCase.pascal(name) %>/index.ts
---
export { <%= h.changeCase.pascal(name) %> } from './<%= h.changeCase.pascal(name) %>'

View File

@ -1,7 +0,0 @@
---
to: src/components/<%= h.changeCase.pascal(name) %>/<%= h.changeCase.pascal(name) %>.module.scss
---
.<%= h.changeCase.pascal(name) %> {
display: block;
}

View File

@ -1,27 +0,0 @@
---
to: src/context/<%= h.changeCase.camel(name) %>.tsx
---
import type { Accessor, JSX } from 'solid-js'
import { createContext, createSignal, useContext } from 'solid-js'
type <%= h.changeCase.pascal(name) %>ContextType = {
actions: {
}
}
const <%= h.changeCase.pascal(name) %>Context = createContext<<%= h.changeCase.pascal(name) %>ContextType>()
export function use<%= h.changeCase.pascal(name) %>() {
return useContext(<%= h.changeCase.pascal(name) %>Context)
}
export const <%= h.changeCase.pascal(name) %>Provider = (props: { children: JSX.Element }) => {
const actions = {
}
const value: <%= h.changeCase.pascal(name) %>ContextType = { actions }
return <<%= h.changeCase.pascal(name) %>Context.Provider value={value}>{props.children}</<%= h.changeCase.pascal(name) %>Context.Provider>
}

View File

@ -1,5 +0,0 @@
---
message: |
hygen {bold generator new} --name [NAME] --action [ACTION]
hygen {bold generator with-prompt} --name [NAME] --action [ACTION]
---

View File

@ -1,18 +0,0 @@
---
to: _templates/<%= name %>/<%= action || 'new' %>/hello.ejs.t
---
---
to: app/hello.js
---
const hello = ```
Hello!
This is your first hygen template.
Learn what it can do here:
https://github.com/jondot/hygen
```
console.log(hello)

View File

@ -1,18 +0,0 @@
---
to: _templates/<%= name %>/<%= action || 'new' %>/hello.ejs.t
---
---
to: app/hello.js
---
const hello = ```
Hello!
This is your first prompt based hygen template.
Learn what it can do here:
https://github.com/jondot/hygen
```
console.log(hello)

View File

@ -1,14 +0,0 @@
---
to: _templates/<%= name %>/<%= action || 'new' %>/prompt.js
---
// see types of prompts:
// https://github.com/enquirer/enquirer/tree/master/examples
//
module.exports = [
{
type: 'input',
name: 'message',
message: "What's your message?"
}
]

View File

@ -1,4 +0,0 @@
---
setup: <%= name %>
force: true # this is because mostly, people init into existing folders is safe
---

View File

@ -1,10 +1,8 @@
const formData = require('form-data') import FormData from 'form-data'
const Mailgun = require('mailgun.js') import Mailgun from 'mailgun.js'
const mailgun = new Mailgun(formData) const mailgun = new Mailgun(FormData)
const mg = mailgun.client({ username: 'discoursio', key: process.env.MAILGUN_API_KEY })
const { MAILGUN_API_KEY, MAILGUN_DOMAIN } = process.env
const mg = mailgun.client({ username: 'discoursio', key: MAILGUN_API_KEY })
export default async function handler(req, res) { export default async function handler(req, res) {
const { contact, subject, message } = req.body const { contact, subject, message } = req.body
@ -19,7 +17,7 @@ export default async function handler(req, res) {
} }
try { try {
const response = await mg.messages.create(MAILGUN_DOMAIN, data) const response = await mg.messages.create('discours.io', data)
console.log('Email sent successfully!', response) console.log('Email sent successfully!', response)
res.status(200).json({ result: 'great success' }) res.status(200).json({ result: 'great success' })
} catch (error) { } catch (error) {

View File

@ -1,24 +0,0 @@
import fetch from 'node-fetch'
export default async function handler(req, res) {
const imageUrl = req.query.url
if (!imageUrl) {
return res.status(400).send('Missing URL parameter')
}
try {
const imageRes = await fetch(imageUrl)
if (!imageRes.ok) {
return res.status(404).send('Image not found')
}
res.setHeader('Content-Type', imageRes.headers.get('content-type'))
imageRes.body.pipe(res)
} catch (err) {
console.error(err)
return res.status(404).send('Error')
}
}

View File

@ -1,10 +1,8 @@
const formData = require('form-data') import FormData from 'form-data'
const Mailgun = require('mailgun.js') import Mailgun from 'mailgun.js'
const mailgun = new Mailgun(formData) const mailgun = new Mailgun(FormData)
const mg = mailgun.client({ username: 'discoursio', key: process.env.MAILGUN_API_KEY })
const { MAILGUN_API_KEY } = process.env
const mg = mailgun.client({ username: 'discoursio', key: MAILGUN_API_KEY })
export default async (req, res) => { export default async (req, res) => {
const { email } = req.body const { email } = req.body

View File

@ -1,27 +0,0 @@
import { renderPage } from 'vite-plugin-ssr/server'
export default async function handler(req, res) {
const { url, cookies } = req
const pageContext = await renderPage({ urlOriginal: url, cookies })
const { httpResponse, errorWhileRendering } = pageContext
if (errorWhileRendering) {
console.error(errorWhileRendering)
res.statusCode = 500
res.end()
return
}
if (!httpResponse) {
res.statusCode = 200
res.end()
return
}
const { body, statusCode, contentType } = httpResponse
res.statusCode = statusCode
res.setHeader('Content-Type', contentType)
res.end(body)
}

23
app.config.ts Normal file
View File

@ -0,0 +1,23 @@
import { SolidStartInlineConfig, defineConfig } from '@solidjs/start/config'
import viteConfig, { isDev } from './vite.config'
const isVercel = Boolean(process.env.VERCEL)
const isNetlify = Boolean(process.env.NETLIFY)
const isBun = Boolean(process.env.BUN)
const preset = isNetlify ? 'netlify' : isVercel ? 'vercel_edge' : isBun ? 'bun' : 'node'
console.info(`[app.config] solid-start preset {> ${preset} <}`)
export default defineConfig({
nitro: {
timing: true
},
ssr: true,
server: {
preset,
port: 3000,
https: true
},
devOverlay: isDev,
vite: viteConfig
} as SolidStartInlineConfig)

86
biome.json Normal file
View File

@ -0,0 +1,86 @@
{
"$schema": "https://biomejs.dev/schemas/1.9.3/schema.json",
"files": {
"include": ["*.tsx", "*.ts", "*.js", "*.json"],
"ignore": ["./dist", "./node_modules", ".husky", "docs", "gen", "*.gen.ts", "*.d.ts"]
},
"vcs": {
"defaultBranch": "dev",
"useIgnoreFile": true,
"enabled": true,
"clientKind": "git"
},
"organizeImports": {
"enabled": true,
"ignore": ["./gen"]
},
"formatter": {
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 108,
"ignore": ["./src/graphql/schema", "./gen"]
},
"javascript": {
"formatter": {
"semicolons": "asNeeded",
"quoteStyle": "single",
"enabled": true,
"jsxQuoteStyle": "double",
"arrowParentheses": "always",
"trailingCommas": "none"
}
},
"linter": {
"ignore": ["*.scss", "*.md", ".DS_Store", "*.svg", "*.d.ts"],
"enabled": true,
"rules": {
"all": true,
"complexity": {
"noForEach": "off",
"useOptionalChain": "warn",
"useLiteralKeys": "off",
"noExcessiveCognitiveComplexity": "off"
},
"correctness": {
"useHookAtTopLevel": "off",
"useImportExtensions": "off",
"noUndeclaredDependencies": "off"
},
"a11y": {
"useHeadingContent": "off",
"useKeyWithClickEvents": "off",
"useKeyWithMouseEvents": "off",
"useAnchorContent": "off",
"useValidAnchor": "off",
"useMediaCaption": "off",
"useAltText": "off",
"useButtonType": "off",
"noRedundantAlt": "off",
"noSvgWithoutTitle": "off",
"noLabelWithoutControl": "off"
},
"nursery": {
"useImportRestrictions": "off"
},
"performance": {
"noBarrelFile": "off"
},
"style": {
"noNonNullAssertion": "off",
"noNamespaceImport": "warn",
"useBlockStatements": "off",
"noImplicitBoolean": "off",
"useNamingConvention": "off",
"useImportType": "off",
"noDefaultExport": "off",
"useFilenamingConvention": "off",
"useExplicitLengthCheck": "off"
},
"suspicious": {
"noConsole": "off",
"noConsoleLog": "off",
"noAssignInExpressions": "off"
}
}
}
}

View File

@ -1,21 +1,27 @@
overwrite: true overwrite: true
schema: 'http://127.0.0.1:8080'
#schema: 'https://v2.discours.io'
generates: generates:
src/graphql/introspec.gen.ts: # Generate types for chat
plugins: src/graphql/schema/chat.gen.ts:
- urql-introspection schema: 'https://chat.discours.io'
config:
useTypeImports: true
includeScalars: true
includeEnums: true
src/graphql/types.gen.ts:
plugins: plugins:
- 'typescript' - 'typescript'
- 'typescript-operations' - 'typescript-operations'
- 'typescript-urql' - 'typescript-urql'
config: config:
skipTypename: true skipTypename: true
hooks: useTypeImports: true
afterAllFileWrite: outputPath: './src/graphql/types/chat.gen.ts'
- prettier --ignore-path .gitignore --write --plugin-search-dir=. src/graphql/types.gen.ts # namingConvention: change-case#CamelCase # for generated types
# Generate types for core
src/graphql/schema/core.gen.ts:
schema: 'https://core.discours.io'
plugins:
- 'typescript'
- 'typescript-operations'
- 'typescript-urql'
config:
skipTypename: true
useTypeImports: true
outputPath: './src/graphql/types/core.gen.ts'
# namingConvention: change-case#CamelCase # for generated types

View File

@ -1,66 +0,0 @@
@startuml
actor User
participant Browser
participant Vercel
participant article.page.server.ts
participant Solid
participant Store
User -> Browser: discours.io
activate Browser
Browser -> Vercel: GET <slug>
activate Vercel
Vercel -> article.page.server.ts: render
activate article.page.server.ts
article.page.server.ts -> apiClient: getArticle({ slug })
activate apiClient
apiClient -> DB: query: articleBySlug
activate DB
DB --> apiClient: response
deactivate DB
apiClient --> article.page.server.ts: article data
deactivate apiClient
article.page.server.ts -> Solid: render <ArticlePage article={article} />
activate Solid
Solid -> Store: useCurrentArticleStore(article)
activate Store
Store -> Store: create store with initial data (server)
Store --> Solid: currentArticle
deactivate Store
Solid -> Solid: render component
Solid --> article.page.server.ts: rendered component
deactivate Solid
article.page.server.ts --> Vercel: rendered page
Vercel -> Vercel: save rendered page to CDN
deactivate article.page.server.ts
Vercel --> Browser: rendered page
deactivate Vercel
Browser --> User: rendered page
deactivate Browser
Browser -> Browser: load client scripts
Browser -> Solid: render <ArticlePage article={article} />
Solid -> Store: useCurrentArticleStore(article)
activate Store
Store -> Store: create store with initial data (client)
Store --> Solid: currentArticle
deactivate Store
Solid -> Solid: render component (no changes)
Solid -> Solid: onMount
Solid -> Store: loadArticleComments
activate Store
Store -> apiClient: getArticleComments
activate apiClient
apiClient -> DB: query: getReactions
activate DB
DB --> apiClient: response
deactivate DB
apiClient --> Store: comments data
deactivate apiClient
Store -> Store: update store
Store --> Solid: store updated
deactivate Store
Solid -> Solid: render comments
Solid --> Browser: rendered comments
Browser --> User: comments
@enduml

View File

@ -1,40 +0,0 @@
@startuml
actor User
participant Browser
participant Server
User -> Browser: discours.io
activate Browser
Browser -> Server: GET\nquery { lng }\ncookies { lng }
opt lng in query
Server -> Server: lng = lng from query
else no lng in query
opt lng in cookies
Server -> Server: lng = lng from cookies
else no lng in cookies
Server -> Server: lng = 'ru'
end opt
end opt
note right
_dafault.page.server.ts render
end note
opt i18next is not initialized
Server -> Server: initialize i18next with lng
else i18next not initialized
Server -> Server: change i18next language to lng
end opt
note right
all resources loaded synchronously
end note
Server --> Browser: pageContext { lng }
Browser -> Browser: init client side i18next with http backend
activate Browser
Browser -> Server: get translations for current language
Server --> Browser: translations JSON
deactivate Browser
Browser -> Browser: render page
Browser --> User: rendered page
deactivate Browser
@enduml

View File

@ -1,24 +0,0 @@
@startuml
actor User
participant Browser
participant Server
User -> Browser: discours.io
activate Browser
Browser -> Server: GET
activate Server
Server -> Server: resolve route
note right
based on routes from
*.page.route.ts files
end note
Server -> Server: some.page.server.ts onBeforeRender
Server -> Server: _default.page.server.tsx render
Server --> Browser: pageContent
deactivate Server
Browser -> Browser: _default.page.client.tsx render(pageContext)
Browser --> User: rendered page
deactivate Browser
@enduml

38054
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,165 +1,151 @@
{ {
"name": "discoursio-webapp", "name": "discoursio-webapp",
"version": "0.8.0",
"private": true, "private": true,
"license": "MIT", "version": "0.9.6",
"type": "module",
"scripts": { "scripts": {
"build": "vite build", "dev": "vinxi dev",
"check": "npm run lint && npm run typecheck", "build": "vinxi build",
"start": "vinxi start",
"codegen": "graphql-codegen", "codegen": "graphql-codegen",
"deploy": "graphql-codegen && npm run typecheck && vite build && vercel", "e2e": "E2E=1 npm run e2e:tests",
"dev": "vite", "e2e:tests": "npx playwright test --project=webkit",
"fix": "npm run lint:code:fix && npm run lint:styles:fix", "e2e:tests:ci": "CI=true npx playwright test --project=webkit",
"format": "npx prettier \"{,!(node_modules)/**/}*.{js,ts,tsx,json,scss,css}\" --write --ignore-path .gitignore", "e2e:install": "npx playwright install webkit && npx playwright install-deps ",
"lint": "npm run lint:code && npm run lint:styles", "fix": "npx @biomejs/biome check . --fix && stylelint **/*.{scss,css} --fix",
"lint:code": "eslint .", "format": "npx @biomejs/biome format src/. --write",
"lint:code:fix": "eslint . --fix", "postinstall": "npm run codegen && npx patch-package",
"lint:styles": "stylelint **/*.{scss,css}",
"lint:styles:fix": "stylelint **/*.{scss,css} --fix",
"pre-commit": "lint-staged",
"pre-push": "",
"pre-push-old": "npm run typecheck",
"prepare": "husky install",
"preview": "vite preview",
"start": "vite",
"start:local": "cross-env PUBLIC_API_URL=http://127.0.0.1:8080 vite",
"start:production": "cross-env PUBLIC_API_URL=https://v2.discours.io vite",
"start:staging": "cross-env PUBLIC_API_URL=https://testapi.discours.io vite",
"typecheck": "tsc --noEmit", "typecheck": "tsc --noEmit",
"typecheck:watch": "tsc --noEmit --watch" "storybook": "storybook dev -p 6006",
}, "storybook:test": "test-storybook",
"dependencies": { "build-storybook": "storybook build"
"form-data": "4.0.0",
"i18next": "22.4.15",
"i18next-icu": "2.3.0",
"intl-messageformat": "10.5.3",
"just-throttle": "4.2.0",
"mailgun.js": "8.2.1",
"node-fetch": "3.3.1"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "7.21.8", "@authorizerdev/authorizer-js": "^2.0.3",
"@graphql-codegen/cli": "3.2.2", "@biomejs/biome": "^1.9.3",
"@graphql-codegen/typescript": "3.0.4", "@graphql-codegen/cli": "^5.0.2",
"@graphql-codegen/typescript-operations": "3.0.4", "@graphql-codegen/typescript": "^4.0.9",
"@graphql-codegen/typescript-urql": "3.7.3", "@graphql-codegen/typescript-operations": "^4.2.3",
"@graphql-codegen/urql-introspection": "2.2.1", "@graphql-codegen/typescript-urql": "^4.0.0",
"@graphql-tools/url-loader": "7.17.18", "@hocuspocus/provider": "^2.13.6",
"@graphql-typed-document-node/core": "3.2.0", "@playwright/test": "^1.47.2",
"@hocuspocus/provider": "2.0.6", "@popperjs/core": "^2.11.8",
"@nanostores/router": "0.8.3", "@solid-primitives/media": "^2.2.9",
"@nanostores/solid": "0.3.2", "@solid-primitives/memo": "^1.3.9",
"@popperjs/core": "2.11.8", "@solid-primitives/pagination": "^0.3.0",
"@sentry/browser": "5.30.0", "@solid-primitives/script-loader": "^2.2.0",
"@solid-primitives/media": "2.2.3", "@solid-primitives/share": "^2.0.6",
"@solid-primitives/memo": "1.2.4", "@solid-primitives/storage": "^4.2.1",
"@solid-primitives/share": "2.0.4", "@solid-primitives/upload": "^0.0.117",
"@solid-primitives/storage": "1.3.9", "@solidjs/meta": "^0.29.4",
"@solid-primitives/upload": "0.0.110", "@solidjs/router": "^0.14.7",
"@solidjs/meta": "0.28.2", "@solidjs/start": "^1.0.8",
"@thisbeyond/solid-select": "0.14.0", "@storybook/addon-a11y": "^8.3.4",
"@tiptap/core": "2.0.3", "@storybook/addon-actions": "^8.3.4",
"@tiptap/extension-blockquote": "2.0.3", "@storybook/addon-controls": "^8.3.4",
"@tiptap/extension-bold": "2.0.3", "@storybook/addon-essentials": "^8.3.4",
"@tiptap/extension-bubble-menu": "2.0.3", "@storybook/addon-interactions": "^8.3.4",
"@tiptap/extension-bullet-list": "2.0.3", "@storybook/addon-links": "^8.3.4",
"@tiptap/extension-character-count": "2.0.3", "@storybook/addon-themes": "^8.3.4",
"@tiptap/extension-collaboration": "2.0.3", "@storybook/addon-viewport": "^8.3.4",
"@tiptap/extension-collaboration-cursor": "2.0.3", "@storybook/builder-vite": "^8.3.4",
"@tiptap/extension-document": "2.0.3", "@storybook/docs-tools": "^8.3.4",
"@tiptap/extension-dropcursor": "2.0.3", "@storybook/test": "^8.3.4",
"@tiptap/extension-floating-menu": "2.0.3", "@storybook/test-runner": "^0.19.1",
"@tiptap/extension-focus": "2.0.3", "@tiptap/core": "^2.8.0",
"@tiptap/extension-gapcursor": "2.0.3", "@tiptap/extension-blockquote": "^2.8.0",
"@tiptap/extension-hard-break": "2.0.3", "@tiptap/extension-bold": "^2.8.0",
"@tiptap/extension-heading": "2.0.3", "@tiptap/extension-bubble-menu": "^2.8.0",
"@tiptap/extension-highlight": "2.0.3", "@tiptap/extension-bullet-list": "^2.8.0",
"@tiptap/extension-history": "2.0.3", "@tiptap/extension-character-count": "^2.8.0",
"@tiptap/extension-horizontal-rule": "2.0.3", "@tiptap/extension-collaboration": "^2.8.0",
"@tiptap/extension-image": "2.0.3", "@tiptap/extension-collaboration-cursor": "^2.8.0",
"@tiptap/extension-italic": "2.0.3", "@tiptap/extension-document": "^2.8.0",
"@tiptap/extension-link": "2.0.3", "@tiptap/extension-dropcursor": "^2.8.0",
"@tiptap/extension-list-item": "2.0.3", "@tiptap/extension-floating-menu": "^2.8.0",
"@tiptap/extension-ordered-list": "2.0.3", "@tiptap/extension-focus": "^2.8.0",
"@tiptap/extension-paragraph": "2.0.3", "@tiptap/extension-gapcursor": "^2.8.0",
"@tiptap/extension-placeholder": "2.0.3", "@tiptap/extension-hard-break": "^2.8.0",
"@tiptap/extension-strike": "2.0.3", "@tiptap/extension-heading": "^2.8.0",
"@tiptap/extension-text": "2.0.3", "@tiptap/extension-highlight": "^2.8.0",
"@tiptap/extension-underline": "2.0.3", "@tiptap/extension-history": "^2.8.0",
"@tiptap/extension-youtube": "2.0.3", "@tiptap/extension-horizontal-rule": "^2.8.0",
"@types/js-cookie": "3.0.4", "@tiptap/extension-image": "^2.8.0",
"@types/node": "20.1.1", "@tiptap/extension-italic": "^2.8.0",
"@typescript-eslint/eslint-plugin": "6.7.3", "@tiptap/extension-link": "^2.8.0",
"@typescript-eslint/parser": "6.7.3", "@tiptap/extension-list-item": "^2.8.0",
"@urql/core": "3.2.2", "@tiptap/extension-ordered-list": "^2.8.0",
"@urql/devtools": "2.0.3", "@tiptap/extension-paragraph": "^2.8.0",
"babel-preset-solid": "1.7.4", "@tiptap/extension-placeholder": "^2.8.0",
"bootstrap": "5.3.2", "@tiptap/extension-strike": "^2.8.0",
"clsx": "2.0.0", "@tiptap/extension-text": "^2.8.0",
"cross-env": "7.0.3", "@tiptap/extension-underline": "^2.8.0",
"debounce": "1.2.1", "@tiptap/extension-youtube": "^2.8.0",
"eslint": "8.50.0", "@tiptap/starter-kit": "^2.8.0",
"eslint-config-stylelint": "20.0.0", "@types/cookie": "^0.6.0",
"eslint-import-resolver-typescript": "3.6.1", "@types/cookie-signature": "^1.1.2",
"eslint-plugin-import": "2.28.1", "@types/node": "^22.7.4",
"eslint-plugin-jest": "27.4.0", "@types/throttle-debounce": "^5.0.2",
"eslint-plugin-jsx-a11y": "6.7.1", "@urql/core": "^5.0.6",
"eslint-plugin-promise": "6.1.1", "axe-playwright": "^2.0.3",
"eslint-plugin-solid": "0.13.0", "bootstrap": "^5.3.3",
"eslint-plugin-sonarjs": "0.21.0", "clsx": "^2.1.1",
"eslint-plugin-unicorn": "48.0.1", "cookie": "^0.6.0",
"fast-deep-equal": "3.1.3", "cookie-signature": "^1.2.1",
"graphql": "16.6.0", "cropperjs": "^1.6.2",
"graphql-tag": "2.12.6", "extended-eventsource": "^1.6.4",
"html-to-json-parser": "1.1.0", "fast-deep-equal": "^3.1.3",
"husky": "8.0.3", "graphql": "^16.9.0",
"hygen": "6.2.11", "i18next": "^23.15.1",
"i18next-http-backend": "2.2.0", "i18next-http-backend": "^2.6.1",
"jest": "29.7.0", "i18next-icu": "^2.3.0",
"js-cookie": "3.0.5", "intl-messageformat": "^10.5.14",
"lint-staged": "14.0.1", "javascript-time-ago": "^2.5.11",
"loglevel": "1.8.1", "patch-package": "^8.0.0",
"loglevel-plugin-prefix": "0.8.4", "prosemirror-history": "^1.4.1",
"markdown-it": "13.0.1", "prosemirror-trailing-node": "^2.0.9",
"markdown-it-container": "3.0.0", "prosemirror-view": "^1.34.3",
"markdown-it-implicit-figures": "0.11.0", "rollup-plugin-visualizer": "^5.12.0",
"markdown-it-mark": "3.0.1", "sass": "1.77.6",
"markdown-it-replace-link": "1.2.0", "solid-js": "^1.9.1",
"nanostores": "0.7.4", "solid-popper": "^0.3.0",
"prettier": "3.0.3", "solid-tiptap": "0.7.0",
"prettier-eslint": "15.0.1", "solid-transition-group": "^0.2.3",
"prosemirror-history": "1.3.0", "storybook": "^8.3.4",
"prosemirror-trailing-node": "2.0.3", "storybook-addon-sass-postcss": "^0.3.2",
"prosemirror-view": "1.30.2", "storybook-solidjs": "^1.0.0-beta.2",
"rollup": "3.21.6", "storybook-solidjs-vite": "^1.0.0-beta.2",
"sass": "1.68.0", "stylelint": "^16.9.0",
"solid-js": "1.7.5", "stylelint-config-recommended": "^14.0.1",
"solid-popper": "0.3.0", "stylelint-config-standard-scss": "^13.1.0",
"solid-tiptap": "0.6.0", "stylelint-order": "^6.0.4",
"solid-transition-group": "0.2.2", "stylelint-scss": "^6.7.0",
"sort-package-json": "2.6.0", "swiper": "^11.1.14",
"stylelint": "15.10.3", "throttle-debounce": "^5.0.2",
"stylelint-config-standard-scss": "11.0.0", "tslib": "^2.7.0",
"stylelint-order": "6.0.3", "typescript": "^5.6.2",
"stylelint-scss": "5.2.1", "typograf": "^7.4.1",
"swiper": "9.4.1", "uniqolor": "^1.1.1",
"typescript": "5.2.2", "vinxi": "^0.4.3",
"typograf": "7.1.0", "vite-plugin-mkcert": "^1.17.6",
"uniqolor": "1.1.0", "vite-plugin-node-polyfills": "^0.22.0",
"vite": "4.3.9", "vite-plugin-sass-dts": "^1.3.29",
"vite-plugin-mkcert": "1.16.0", "y-prosemirror": "1.2.12",
"vite-plugin-sass-dts": "1.3.11", "yjs": "13.6.19"
"vite-plugin-solid": "2.7.0",
"vite-plugin-ssr": "0.4.123",
"y-prosemirror": "1.2.1",
"yjs": "13.6.0"
}, },
"overrides": { "overrides": {
"@tiptap/extension-collaboration": { "sass": "1.77.6",
"y-prosemirror": "1.2.1" "vite": "5.3.5",
}, "yjs": "13.6.19",
"@tiptap/extension-collaboration-cursor": { "y-prosemirror": "1.2.12"
"y-prosemirror": "1.2.1" },
} "engines": {
"node": ">= 20"
},
"trustedDependencies": ["@biomejs/biome", "@swc/core", "esbuild", "protobufjs"],
"dependencies": {
"form-data": "^4.0.0",
"idb": "^8.0.0",
"mailgun.js": "^10.2.3"
} }
} }

View File

@ -0,0 +1,62 @@
diff --git a/node_modules/solid-tiptap/src/Editor.tsx b/node_modules/solid-tiptap/src/Editor.tsx
index 9d1e51a..2cc36b3 100644
--- a/node_modules/solid-tiptap/src/Editor.tsx
+++ b/node_modules/solid-tiptap/src/Editor.tsx
@@ -1,6 +1,6 @@
import type { EditorOptions } from '@tiptap/core';
import { Editor } from '@tiptap/core';
-import { createEffect, createSignal, onCleanup } from 'solid-js';
+import { createEffect, createSignal, onCleanup, on } from 'solid-js';
export type EditorRef = Editor | ((editor: Editor) => void);
@@ -42,17 +42,19 @@ export default function useEditor<T extends HTMLElement>(
): () => Editor | undefined {
const [signal, setSignal] = createSignal<Editor>();
- createEffect(() => {
- const instance = new Editor({
- ...props(),
- });
-
- onCleanup(() => {
- instance.destroy();
- });
-
- setSignal(instance);
- });
+ createEffect(
+ on(
+ props,
+ (properties) => {
+ if (properties) {
+ const instance = new Editor({ ...properties })
+ onCleanup(instance.destroy)
+ setSignal(instance)
+ }
+ },
+ { defer: true }
+ )
+ )
return signal;
}
@@ -65,14 +67,16 @@ export function useEditorHTML<V extends Editor | undefined>(
export function useEditorJSON<
V extends Editor | undefined,
- R extends Record<string, any>,
+ // biome-ignore lint/suspicious/noExplicitAny: TODO: <explanation>
+R extends Record<string, any>,
>(editor: () => V): () => R | undefined {
return createEditorTransaction(editor, instance => instance?.getJSON() as R);
}
export function useEditorIsActive<
V extends Editor | undefined,
- R extends Record<string, any>,
+ // biome-ignore lint/suspicious/noExplicitAny: TODO: <explanation>
+R extends Record<string, any>,
>(
editor: () => V,
...args: [name: () => string, options?: R] | [options: R]

78
playwright.config.ts Normal file
View File

@ -0,0 +1,78 @@
import { defineConfig, devices } from '@playwright/test'
/**
* Read environment variables from file.
* https://github.com/motdotla/dotenv
*/
// require('dotenv').config();
/**
* See https://playwright.dev/docs/test-configuration.
*/
export default defineConfig({
/* Directory to search for tests */
testDir: './tests',
/* Run tests in files in parallel */
fullyParallel: false,
/* Fail the build on CI if you accidentally left test.only in the source code. */
forbidOnly: !!process.env.CI,
/* Retry on CI only */
retries: 0,
/* Opt out of parallel tests on CI. */
workers: process.env.CI ? 1 : undefined,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: 'list',
/* Timeout for each test */
timeout: 40000,
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
/* Base URL to use in actions like `await page.goto('/')`. */
baseURL: process.env.BASE_URL || 'https://localhost:3000',
/* Headless */
headless: true,
/* Ignode SSL certificates */
ignoreHTTPSErrors: true,
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
trace: 'on-first-retry'
},
/* Configure projects for major browsers */
projects: [
{
name: 'webkit',
use: { ...devices['Desktop Safari'] }
}
/* Test against many viewports.
// {
// name: 'Mobile Chrome',
// use: { ...devices['Pixel 5'] },
// },
// {
// name: 'Mobile Safari',
// use: { ...devices['iPhone 12'] },
// },
/* Test against branded browsers. */
// {
// name: 'Microsoft Edge',
// use: { ...devices['Desktop Edge'], channel: 'msedge' },
// },
// {
// name: 'Google Chrome',
// use: { ...devices['Desktop Chrome'], channel: 'chrome' },
// },
],
/* Run local dev server before starting the tests */
/* If process env CI is set to false */
webServer: process.env.CI
? undefined
: {
command: 'npm run dev',
url: 'http://localhost:3000',
ignoreHTTPSErrors: true,
reuseExistingServer: !process.env.CI,
timeout: 5 * 60 * 1000
}
})

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 744 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 144 KiB

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19.125 12.75H4.5C4.08854 12.75 3.75 12.4115 3.75 12C3.75 11.5885 4.08854 11.25 4.5 11.25H19.125C19.5365 11.25 19.875 11.5885 19.875 12C19.875 12.4115 19.5365 12.75 19.125 12.75Z" fill="currentColor"/>
<path
d="M14.0678 18.3593C13.8803 18.3593 13.6928 18.2916 13.547 18.151C13.2501 17.8593 13.2397 17.3853 13.5314 17.0885L18.4584 11.9999L13.5314 6.91137C13.2397 6.6145 13.2501 6.14054 13.547 5.84887C13.8439 5.56241 14.3178 5.57283 14.6043 5.8697L20.0366 11.4791C20.3178 11.7707 20.3178 12.2291 20.0366 12.5207L14.6043 18.1301C14.4584 18.2864 14.2657 18.3593 14.0678 18.3593Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 713 B

View File

@ -0,0 +1,4 @@
<svg width="25" height="28" viewBox="0 0 25 28" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd"
d="M19.5 8.01738L17.4826 6L10.5029 12.9797L7.51738 9.99421L5.5 12.0116L10.5029 17.0145L19.5 8.01738Z" fill="#2BB452"/>
</svg>

After

Width:  |  Height:  |  Size: 271 B

5
public/icons/copy.svg Normal file
View File

@ -0,0 +1,5 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="ic24_copy">
<path id="vector" fill-rule="evenodd" clip-rule="evenodd" d="M4 6C4 3.79086 5.79086 2 8 2H12C14.2091 2 16 3.79086 16 6V14C16 16.2091 14.2091 18 12 18H8C5.79086 18 4 16.2091 4 14V6ZM8 4C6.89543 4 6 4.89543 6 6V14C6 15.1046 6.89543 16 8 16H12C13.1046 16 14 15.1046 14 14V6C14 4.89543 13.1046 4 12 4H8ZM16.6344 6.90064C16.9109 6.42258 17.5227 6.25922 18.0007 6.53576C19.1937 7.22587 20 8.5182 20 10V18C20 20.2092 18.2091 22 16 22H12C10.5182 22 9.22586 21.1937 8.53575 20.0007C8.2592 19.5227 8.42257 18.911 8.90063 18.6344C9.37869 18.3579 9.99041 18.5212 10.267 18.9993C10.6143 19.5997 11.261 20 12 20H16C17.1046 20 18 19.1046 18 18V10C18 9.261 17.5997 8.61429 16.9993 8.26697C16.5212 7.99043 16.3579 7.3787 16.6344 6.90064Z" fill="#141414"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 866 B

View File

Before

Width:  |  Height:  |  Size: 714 B

After

Width:  |  Height:  |  Size: 714 B

View File

Before

Width:  |  Height:  |  Size: 350 B

After

Width:  |  Height:  |  Size: 350 B

View File

Before

Width:  |  Height:  |  Size: 290 B

After

Width:  |  Height:  |  Size: 290 B

View File

@ -1,11 +0,0 @@
<svg
width="13" height="16"
viewBox="0 0 13 16"
fill="none"
version="1.1"
xmlns="http://www.w3.org/2000/svg">
<path
d="M 10.1573,7.43667 C 11.2197,6.70286 11.9645,5.49809 11.9645,4.38095 11.9645,1.90571 10.0478,0 7.58352,0 H 0.738281 V 15.3333 H 8.44876 c 2.28904,0 4.06334,-1.8619 4.06334,-4.1509 0,-1.66478 -0.9419,-3.08859 -2.3548,-3.74573 z M 4.02344,2.73828 h 3.28571 c 0.90905,0 1.64286,0.73381 1.64286,1.64286 0,0.90905 -0.73381,1.64286 -1.64286,1.64286 H 4.02344 Z M 4.01629,9.3405869 h 3.87946 c 0.9090501,0 1.6428601,0.7338101 1.6428601,1.6428601 0,0.90905 -0.73381,1.64286 -1.6428601,1.64286 H 4.01629 Z"
fill="currentColor"
/>
</svg>

Before

Width:  |  Height:  |  Size: 677 B

4
public/icons/expert.svg Normal file
View File

@ -0,0 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M11.9967 4.51318C11.5931 4.51318 11.1868 4.59652 10.8118 4.75798L7.9056 6.01058L9.83268 6.81266L11.4056 6.13558C11.5931 6.05225 11.7962 6.01058 11.9993 6.01058C12.2025 6.01058 12.4056 6.05225 12.5931 6.13558L20.5801 9.57829C20.6504 9.60693 20.6947 9.67464 20.6947 9.75016C20.6947 9.82568 20.6504 9.89339 20.5801 9.92204L12.5931 13.3647C12.2181 13.5262 11.7806 13.5262 11.4056 13.3647L3.41862 9.92204C3.34831 9.89339 3.30404 9.82568 3.30404 9.75016C3.30404 9.67464 3.34831 9.60693 3.41862 9.57829L6.47591 8.26058L11.7103 10.4429C11.804 10.4819 11.903 10.5002 11.9993 10.5002C12.291 10.5002 12.5723 10.3283 12.6921 10.0392C12.8509 9.65641 12.6712 9.21631 12.2884 9.05746L8.39258 7.43506L8.39518 7.43246L6.4681 6.63037L2.42643 8.37516C1.87435 8.60954 1.51758 9.1512 1.51758 9.75016C1.51758 10.3491 1.87435 10.8908 2.42643 11.1252L4.87435 12.1825V18.5679C4.64779 18.7371 4.49935 19.008 4.49935 19.3127V20.8127C4.49935 21.3309 4.91862 21.7502 5.43685 21.7502H5.81185C6.33008 21.7502 6.74935 21.3309 6.74935 20.8127V19.3127C6.74935 19.008 6.60091 18.7371 6.37435 18.5679V17.1512C7.42904 17.909 9.2181 18.7502 11.9993 18.7502C15.5384 18.7502 17.4889 17.3856 18.3353 16.5705C18.8379 16.0887 19.1243 15.4064 19.1243 14.6955V12.1825L21.5723 11.1252C22.1243 10.8908 22.4811 10.3491 22.4811 9.75016C22.4811 9.1512 22.1243 8.60954 21.5723 8.37516L13.1868 4.75798C12.8092 4.59652 12.403 4.51318 11.9967 4.51318ZM6.37435 12.8283L10.8118 14.7424C11.1895 14.9064 11.5931 14.9845 11.9993 14.9845C12.4056 14.9845 12.8092 14.9064 13.1868 14.7424L17.6243 12.8283V14.6955C17.6243 15.0002 17.5046 15.2892 17.2962 15.4897C16.6113 16.146 15.015 17.2502 11.9993 17.2502C8.98372 17.2502 7.38737 16.146 6.70247 15.4897C6.49414 15.2892 6.37435 15.0002 6.37435 14.6955V12.8283Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,3 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M8.25 4.125C7.14583 4.125 6.13281 4.6901 5.60937 5.60156C5.40365 5.95573 5.16406 6.53385 5.03125 6.91927C4.91146 7.2474 3.07813 11.349 1.95313 13.8568L1.95833 13.8594C1.66667 14.4349 1.5 15.0755 1.5 15.75C1.5 18.2318 3.6875 20.25 6.375 20.25C9.0625 20.25 11.25 18.2318 11.25 15.75V14.3724C11.4505 14.3099 11.7109 14.25 12 14.25C12.2891 14.25 12.5495 14.3099 12.75 14.3724V15.75C12.75 18.2318 14.9375 20.25 17.625 20.25C20.3125 20.25 22.5 18.2318 22.5 15.75C22.5 15.0755 22.3333 14.4349 22.0417 13.8594L22.0469 13.8568C20.9219 11.349 19.0885 7.2474 18.9688 6.92448C18.8359 6.53646 18.5964 5.95833 18.3906 5.60417C17.8672 4.6901 16.8542 4.125 15.75 4.125C14.1354 4.125 12.8177 5.32813 12.7552 6.82813C12.526 6.78125 12.2734 6.75 12 6.75C11.7266 6.75 11.474 6.78125 11.2448 6.82813C11.1823 5.32813 9.86458 4.125 8.25 4.125ZM8.25 5.625C9.07813 5.625 9.75 6.21354 9.75 6.9375V12.5104C8.8724 11.7318 7.6849 11.25 6.375 11.25C5.75781 11.25 5.16927 11.362 4.625 11.5547C5.48177 9.64063 6.36458 7.65365 6.45052 7.40885C6.57292 7.04688 6.77604 6.58333 6.90885 6.35156C7.16667 5.90365 7.67969 5.625 8.25 5.625ZM15.75 5.625C16.3203 5.625 16.8333 5.90365 17.0911 6.35156C17.224 6.58333 17.4271 7.04948 17.5495 7.40885C17.6354 7.65365 18.5182 9.64063 19.3724 11.5547C18.8307 11.362 18.2422 11.25 17.625 11.25C16.3151 11.25 15.1276 11.7318 14.25 12.5104V6.9375C14.25 6.21354 14.9219 5.625 15.75 5.625ZM12 8.25C12.2891 8.25 12.5495 8.3099 12.75 8.3724V9.82552C12.5208 9.78125 12.2708 9.75 12 9.75C11.7292 9.75 11.4792 9.78125 11.25 9.82552V8.3724C11.4505 8.3099 11.7109 8.25 12 8.25ZM12 11.25C12.2891 11.25 12.5495 11.3099 12.75 11.3724V12.8255C12.5208 12.7812 12.2708 12.75 12 12.75C11.7292 12.75 11.4792 12.7812 11.25 12.8255V11.3724C11.4505 11.3099 11.7109 11.25 12 11.25ZM6.375 12.75C8.23698 12.75 9.75 14.0964 9.75 15.75C9.75 17.4036 8.23698 18.75 6.375 18.75C4.51302 18.75 3 17.4036 3 15.75C3 14.0964 4.51302 12.75 6.375 12.75ZM17.625 12.75C19.487 12.75 21 14.0964 21 15.75C21 17.4036 19.487 18.75 17.625 18.75C15.763 18.75 14.25 17.4036 14.25 15.75C14.25 14.0964 15.763 12.75 17.625 12.75Z" fill="#141414"/> <path d="M8.625 4.5C7.59115 4.5 6.75 5.34115 6.75 6.375V8.25H5.625C4.59115 8.25 3.75 9.09115 3.75 10.125V17.25C3.75 18.4896 4.76042 19.5 6 19.5H18C19.2396 19.5 20.25 18.4896 20.25 17.25V6.375C20.25 5.34115 19.4089 4.5 18.375 4.5H8.625ZM8.625 6H18.375C18.5807 6 18.75 6.16927 18.75 6.375V17.25C18.75 17.6641 18.4141 18 18 18H8.1224C8.20313 17.7656 8.25 17.513 8.25 17.25V6.375C8.25 6.16927 8.41927 6 8.625 6ZM10.125 7.5C9.71094 7.5 9.375 7.83594 9.375 8.25C9.375 8.66406 9.71094 9 10.125 9H16.875C17.2891 9 17.625 8.66406 17.625 8.25C17.625 7.83594 17.2891 7.5 16.875 7.5H10.125ZM5.625 9.75H6.75V17.25C6.75 17.6641 6.41406 18 6 18C5.58594 18 5.25 17.6641 5.25 17.25V10.125C5.25 9.91927 5.41927 9.75 5.625 9.75ZM10.125 10.125C9.71094 10.125 9.375 10.4609 9.375 10.875C9.375 11.2891 9.71094 11.625 10.125 11.625H16.875C17.2891 11.625 17.625 11.2891 17.625 10.875C17.625 10.4609 17.2891 10.125 16.875 10.125H10.125ZM10.125 12.75C9.71094 12.75 9.375 13.0859 9.375 13.5V16.125C9.375 16.5391 9.71094 16.875 10.125 16.875H12.375C12.7891 16.875 13.125 16.5391 13.125 16.125V13.5C13.125 13.0859 12.7891 12.75 12.375 12.75H10.125ZM15 12.75C14.5859 12.75 14.25 13.0859 14.25 13.5C14.25 13.9141 14.5859 14.25 15 14.25H16.875C17.2891 14.25 17.625 13.9141 17.625 13.5C17.625 13.0859 17.2891 12.75 16.875 12.75H15ZM15 15.375C14.5859 15.375 14.25 15.7109 14.25 16.125C14.25 16.5391 14.5859 16.875 15 16.875H16.875C17.2891 16.875 17.625 16.5391 17.625 16.125C17.625 15.7109 17.2891 15.375 16.875 15.375H15Z" fill="black"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

Before

Width:  |  Height:  |  Size: 245 B

After

Width:  |  Height:  |  Size: 245 B

View File

@ -0,0 +1,3 @@
<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.89589 13.4965C6.77089 13.6545 6.63373 13.7326 6.48269 13.7309C6.33339 13.7291 6.21533 13.6684 6.132 13.5468C6.04867 13.4271 6.04172 13.2691 6.11637 13.0712L7.61117 9.19789H4.76915C4.65283 9.19789 4.55561 9.16143 4.47575 9.08504C4.39589 9.01039 4.35596 8.91491 4.35596 8.79859C4.35596 8.68227 4.40283 8.56421 4.49832 8.44442L9.10422 2.50345C9.22922 2.34546 9.36637 2.26733 9.51742 2.26907C9.66672 2.27081 9.78478 2.33157 9.86811 2.4531C9.95144 2.57289 9.95839 2.73088 9.88373 2.92879L8.38894 6.80206H11.231C11.3473 6.80206 11.4445 6.83852 11.5244 6.9149C11.6042 6.98956 11.6442 7.08504 11.6442 7.20136C11.6442 7.31768 11.5973 7.43574 11.5018 7.55553L6.89589 13.4965Z" fill="white"/>
</svg>

After

Width:  |  Height:  |  Size: 797 B

4
public/icons/logout.svg Normal file
View File

@ -0,0 +1,4 @@
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M16.1785 3.05371C15.1421 3.05371 14.3035 3.89486 14.3035 4.92871C14.3035 5.96256 15.1421 6.80371 16.1785 6.80371C17.215 6.80371 18.0535 5.96256 18.0535 4.92871C18.0535 3.89486 17.215 3.05371 16.1785 3.05371ZM14.6785 7.55371C14.4051 7.55371 14.1473 7.61621 13.9129 7.72038L10.9181 9.12923C10.7723 9.19694 10.6577 9.31413 10.5926 9.45736L9.12124 12.7308C9.07957 12.8089 9.05353 12.8975 9.05353 12.9912C9.05353 13.3011 9.30613 13.5537 9.61603 13.5537C9.8478 13.5537 10.0483 13.4131 10.1343 13.2126V13.21L11.702 10.5303L12.4858 10.249L11.7462 12.6761L11.7541 12.6787C11.7098 12.8376 11.6785 13.0042 11.6785 13.1787C11.6785 13.8923 12.0822 14.5068 12.6707 14.8245L12.6655 14.8298L15.5848 16.9626L16.5874 20.5225H16.59C16.6837 20.8298 16.965 21.0537 17.3035 21.0537C17.7176 21.0537 18.0535 20.7178 18.0535 20.3037C18.0535 20.2282 18.0379 20.1553 18.0171 20.085H18.0197L17.2671 16.3454C17.2436 16.223 17.1968 16.1058 17.1317 15.999L15.4806 13.2881L16.4806 9.99902L16.4572 9.99121C16.5145 9.81152 16.5535 9.62663 16.5535 9.42871C16.5535 8.39486 15.715 7.55371 14.6785 7.55371ZM17.1681 10.5355L16.603 12.0771L17.0353 12.4001C17.0718 12.4261 17.1108 12.4469 17.1525 12.4626L19.8869 13.5042C19.8973 13.5094 19.9103 13.512 19.9207 13.5173L19.9363 13.5225C19.9936 13.5407 20.0535 13.5537 20.116 13.5537C20.4259 13.5537 20.6785 13.3011 20.6785 12.9912C20.6785 12.7699 20.5483 12.5771 20.3608 12.486L17.9233 11.21L17.1681 10.5355ZM8.91551 13.9313C8.69676 13.9105 8.47801 14.0225 8.36863 14.2282L7.43895 15.9886L6.11343 15.2829C5.74884 15.0876 5.29572 15.2256 5.1004 15.5928L3.33738 18.9053C3.14468 19.2673 3.2853 19.723 3.64988 19.9183L4.48582 20.3636C4.47801 20.1058 4.5379 19.8454 4.66551 19.611C4.92593 19.1188 5.43374 18.8115 5.99103 18.8115C6.23322 18.8115 6.47801 18.874 6.69155 18.9886C6.80353 19.0485 6.9077 19.1188 6.99884 19.21L7.98843 17.348C7.99103 17.3454 7.99103 17.3454 7.99363 17.3428L8.2254 16.9027L8.43113 16.5173V16.5146L9.36343 14.7542C9.50926 14.4782 9.40249 14.1396 9.12905 13.9938C9.06134 13.9574 8.98843 13.9365 8.91551 13.9313ZM11.8608 15.3532L11.4988 17.0225L9.93113 19.8844L9.89988 19.9417C9.83999 20.0485 9.80353 20.1709 9.80353 20.3037C9.80353 20.7178 10.1395 21.0537 10.5535 21.0537C10.8244 21.0537 11.0613 20.9079 11.1916 20.6917L13.7332 16.7334L11.8608 15.3532ZM6.05613 19.5641C5.76447 19.5407 5.4728 19.6865 5.32697 19.96C5.13165 20.3271 5.27228 20.7803 5.63686 20.9756C6.00145 21.1683 6.45718 21.0303 6.65249 20.6657C6.8452 20.2985 6.70718 19.8454 6.33999 19.6501C6.24884 19.6006 6.15249 19.5745 6.05613 19.5641Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

4
public/icons/profile.svg Normal file
View File

@ -0,0 +1,4 @@
<svg width="25" height="25" viewBox="0 0 25 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M12.4285 3.05347C11.392 3.05347 10.5535 3.89461 10.5535 4.92847C10.5535 5.96232 11.392 6.80347 12.4285 6.80347C13.4649 6.80347 14.3035 5.96232 14.3035 4.92847C14.3035 3.89461 13.4649 3.05347 12.4285 3.05347ZM12.4285 7.55347C10.3113 7.55347 9.05347 9.05347 9.05347 10.1785V14.6785C9.05347 15.0925 9.3894 15.4285 9.80347 15.4285H10.1785V21.7852C10.1785 22.2097 10.5222 22.5535 10.9467 22.5535C11.3582 22.5535 11.6941 22.2332 11.7149 21.8243L12.017 15.4285H12.8399L13.142 21.8243C13.1628 22.2332 13.4988 22.5535 13.9102 22.5535C14.3347 22.5535 14.6785 22.2097 14.6785 21.7852V15.4285H15.0535C15.4675 15.4285 15.8035 15.0925 15.8035 14.6785V10.1785C15.8035 9.05347 14.5457 7.55347 12.4285 7.55347Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 831 B

View File

@ -1,3 +1,4 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M10.125 3.375C6.40365 3.375 3.375 6.40365 3.375 10.125C3.375 13.8464 6.40365 16.875 10.125 16.875C11.6745 16.875 13.0964 16.3464 14.237 15.4661L19.1432 20.3698C19.4818 20.7109 20.0312 20.7109 20.3698 20.3698C20.7109 20.0312 20.7109 19.4818 20.3698 19.1432L15.4661 14.237C16.3464 13.0964 16.875 11.6745 16.875 10.125C16.875 6.40365 13.8464 3.375 10.125 3.375ZM10.125 4.875C13.0208 4.875 15.375 7.22917 15.375 10.125C15.375 13.0208 13.0208 15.375 10.125 15.375C7.22917 15.375 4.875 13.0208 4.875 10.125C4.875 7.22917 7.22917 4.875 10.125 4.875Z" fill="#141414"/> <path
d="M10.125 3.375C6.40365 3.375 3.375 6.40365 3.375 10.125C3.375 13.8464 6.40365 16.875 10.125 16.875C11.6745 16.875 13.0964 16.3464 14.237 15.4661L19.1432 20.3698C19.4818 20.7109 20.0312 20.7109 20.3698 20.3698C20.7109 20.0312 20.7109 19.4818 20.3698 19.1432L15.4661 14.237C16.3464 13.0964 16.875 11.6745 16.875 10.125C16.875 6.40365 13.8464 3.375 10.125 3.375ZM10.125 4.875C13.0208 4.875 15.375 7.22917 15.375 10.125C15.375 13.0208 13.0208 15.375 10.125 15.375C7.22917 15.375 4.875 13.0208 4.875 10.125C4.875 7.22917 7.22917 4.875 10.125 4.875Z" fill="currentColor"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 673 B

After

Width:  |  Height:  |  Size: 680 B

View File

@ -0,0 +1,3 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6.3459 13.1364H8.69673V22.1618C8.69673 22.34 8.85155 22.4844 9.04263 22.4844H13.0285C13.2196 22.4844 13.3744 22.34 13.3744 22.1618V13.1789H16.0769C16.2526 13.1789 16.4005 13.0559 16.4205 12.8931L16.831 9.57044C16.8423 9.47902 16.8112 9.38747 16.7456 9.31889C16.68 9.25025 16.586 9.21096 16.4874 9.21096H13.3746V7.12812C13.3746 6.50025 13.7371 6.18186 14.4521 6.18186C14.554 6.18186 16.4874 6.18186 16.4874 6.18186C16.6785 6.18186 16.8333 6.03741 16.8333 5.85928V2.80934C16.8333 2.63115 16.6785 2.48676 16.4874 2.48676H13.6825C13.6627 2.48586 13.6188 2.48438 13.554 2.48438C13.0673 2.48438 11.3757 2.57347 10.0394 3.71992C8.55878 4.99038 8.76459 6.51154 8.81378 6.77528V9.21089H6.3459C6.15483 9.21089 6 9.35528 6 9.53347V12.8137C6 12.9919 6.15483 13.1364 6.3459 13.1364Z" fill="#141414"/>
</svg>

After

Width:  |  Height:  |  Size: 901 B

View File

@ -0,0 +1,5 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="vk logo">
<path id="Vector" d="M14.88 12.4844C14.88 13.054 14.7111 13.6108 14.3946 14.0844C14.0782 14.558 13.6284 14.9272 13.1021 15.1451C12.5759 15.3631 11.9968 15.4202 11.4381 15.309C10.8795 15.1979 10.3663 14.9236 9.96353 14.5208C9.56076 14.1181 9.28646 13.6049 9.17534 13.0462C9.06421 12.4876 9.12125 11.9085 9.33923 11.3822C9.55721 10.856 9.92634 10.4062 10.4 10.0897C10.8736 9.77328 11.4304 9.60438 12 9.60438C12.7636 9.60525 13.4956 9.90896 14.0355 10.4489C14.5754 10.9888 14.8791 11.7208 14.88 12.4844ZM21 8.52437V16.4444C20.9985 17.7806 20.467 19.0617 19.5221 20.0065C18.5773 20.9514 17.2962 21.4829 15.96 21.4844H8.04C6.70377 21.4829 5.42271 20.9514 4.47785 20.0065C3.533 19.0617 3.00151 17.7806 3 16.4444V8.52437C3.00151 7.18815 3.533 5.90708 4.47785 4.96223C5.42271 4.01737 6.70377 3.48589 8.04 3.48438H15.96C17.2962 3.48589 18.5773 4.01737 19.5221 4.96223C20.467 5.90708 20.9985 7.18815 21 8.52437ZM16.32 12.4844C16.32 11.63 16.0666 10.7947 15.5919 10.0843C15.1173 9.37389 14.4426 8.82019 13.6532 8.49322C12.8638 8.16625 11.9952 8.0807 11.1572 8.24738C10.3192 8.41407 9.54946 8.82551 8.9453 9.42967C8.34114 10.0338 7.9297 10.8036 7.76301 11.6416C7.59632 12.4796 7.68187 13.3482 8.00884 14.1376C8.33581 14.9269 8.88952 15.6016 9.59994 16.0763C10.3104 16.551 11.1456 16.8044 12 16.8044C13.1453 16.8031 14.2434 16.3475 15.0533 15.5376C15.8631 14.7278 16.3187 13.6297 16.32 12.4844ZM17.76 7.80438C17.76 7.59077 17.6967 7.38196 17.578 7.20436C17.4593 7.02675 17.2906 6.88833 17.0933 6.80659C16.896 6.72484 16.6788 6.70345 16.4693 6.74513C16.2598 6.7868 16.0674 6.88966 15.9163 7.0407C15.7653 7.19174 15.6624 7.38418 15.6208 7.59368C15.5791 7.80318 15.6005 8.02033 15.6822 8.21767C15.764 8.41502 15.9024 8.58369 16.08 8.70236C16.2576 8.82103 16.4664 8.88438 16.68 8.88438C16.9664 8.88438 17.2411 8.77059 17.4437 8.56805C17.6462 8.36551 17.76 8.09081 17.76 7.80438Z" fill="black"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,7 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="linkedin">
<g id="Group">
<path id="Vector" d="M6.93855 21.4004V9.51472H2.99144V21.4004H6.93896H6.93855ZM4.96582 7.89221C6.34197 7.89221 7.19872 6.97953 7.19872 5.83894C7.17296 4.67236 6.34197 3.78516 4.99199 3.78516C3.64109 3.78516 2.75879 4.67236 2.75879 5.83884C2.75879 6.97943 3.61522 7.89211 4.93996 7.89211H4.96551L4.96582 7.89221ZM9.12333 21.4004H13.0701V14.7636C13.0701 14.4089 13.0959 14.0532 13.2002 13.7998C13.4854 13.0897 14.1348 12.3548 15.2254 12.3548C16.6533 12.3548 17.2248 13.4446 17.2248 15.0426V21.4004H21.1715V14.5855C21.1715 10.9349 19.2246 9.23607 16.6278 9.23607C14.4987 9.23607 13.5637 10.4271 13.0442 11.2383H13.0704V9.51513H9.12353C9.17505 10.6302 9.12322 21.4008 9.12322 21.4008L9.12333 21.4004Z" fill="black"/>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 859 B

View File

@ -0,0 +1,5 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="telegram logo">
<path id="Icon" d="M2.35326 12.1563L6.96167 13.7367L8.7454 19.0076C8.85953 19.3452 9.3088 19.4699 9.607 19.2459L12.1758 17.3218C12.4451 17.1202 12.8286 17.1101 13.11 17.2978L17.7432 20.3886C18.0622 20.6016 18.5141 20.441 18.5941 20.0869L21.9882 5.08587C22.0756 4.69898 21.6618 4.37623 21.2609 4.51871L2.34786 11.2226C1.88113 11.388 1.88519 11.9952 2.35326 12.1563ZM8.45793 12.8954L17.4645 7.79852C17.6263 7.70719 17.7929 7.90829 17.6539 8.02676L10.2209 14.3753C9.9596 14.5988 9.79107 14.8978 9.74334 15.2224L9.49014 16.9465C9.4566 17.1767 9.10467 17.1996 9.03553 16.9768L8.06173 13.8328C7.9502 13.4742 8.11273 13.0912 8.45793 12.8954Z" fill="#141414"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 784 B

View File

@ -0,0 +1,4 @@
<svg width="20" height="16" viewBox="0 0 20 16" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M19.5467 1.84651C19.2325 1.98268 18.9095 2.0976 18.5794 2.1909C18.9702 1.75908 19.2681 1.25097 19.45 0.694956C19.4908 0.570325 19.4485 0.433906 19.3437 0.352395C19.239 0.270821 19.0935 0.26105 18.9782 0.327809C18.2772 0.734041 17.521 1.02598 16.728 1.19669C15.9293 0.434032 14.8444 0 13.7228 0C11.3554 0 9.42934 1.88194 9.42934 4.19514C9.42934 4.37733 9.44114 4.55851 9.4645 4.73716C6.52677 4.48513 3.79561 3.07422 1.92014 0.826269C1.8533 0.746145 1.75033 0.702962 1.64491 0.71122C1.53943 0.71929 1.44465 0.777413 1.39136 0.866741C1.01098 1.50452 0.809882 2.23396 0.809882 2.97613C0.809882 3.98698 1.17924 4.94608 1.83169 5.6955C1.6333 5.62836 1.44078 5.54446 1.25704 5.44479C1.1584 5.39114 1.03801 5.39196 0.940011 5.44687C0.841946 5.50178 0.780463 5.60277 0.777882 5.71315C0.77743 5.73175 0.777431 5.75035 0.777431 5.76919C0.777431 7.27806 1.60852 8.63652 2.87917 9.37693C2.77 9.36627 2.66091 9.35083 2.55252 9.33059C2.44078 9.30972 2.32588 9.34799 2.25052 9.43127C2.17504 9.51448 2.15007 9.63047 2.18485 9.73638C2.65517 11.1712 3.86607 12.2265 5.32993 12.5483C4.11581 13.2913 2.72736 13.6806 1.26982 13.6806C0.965688 13.6806 0.659818 13.6631 0.360464 13.6285C0.211755 13.6112 0.0695618 13.697 0.0189168 13.8352C-0.0317281 13.9734 0.0219491 14.1276 0.148465 14.2068C2.02091 15.3799 4.186 16 6.40954 16C10.7808 16 13.5153 13.9859 15.0394 12.2962C16.9401 10.1893 18.0301 7.40061 18.0301 4.64519C18.0301 4.53007 18.0283 4.41383 18.0247 4.29796C18.7746 3.74592 19.4202 3.07782 19.9456 2.30992C20.0254 2.1933 20.0167 2.03916 19.9243 1.93181C19.832 1.82439 19.6781 1.78965 19.5467 1.84651Z" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,3 @@
<svg width="24" height="25" viewBox="0 0 24 25" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M19.2129 13.7512C19.8763 14.4052 20.5765 15.0206 21.1715 15.7406C21.4344 16.0605 21.6832 16.3907 21.8736 16.762C22.1433 17.2898 21.899 17.8707 21.4303 17.9022L18.5166 17.9009C17.7652 17.9638 17.1657 17.6584 16.6616 17.1395C16.2582 16.7246 15.8846 16.2831 15.4967 15.8542C15.3377 15.6789 15.1713 15.5139 14.9724 15.3835C14.5747 15.1228 14.2294 15.2026 14.0021 15.6215C13.7706 16.0476 13.7181 16.5193 13.6954 16.9942C13.6642 17.687 13.4568 17.8691 12.7676 17.9008C11.2947 17.9709 9.89691 17.7459 8.59838 16.9957C7.45355 16.3343 6.56579 15.4006 5.79308 14.3435C4.28861 12.2852 3.13649 10.0234 2.10101 7.6983C1.86793 7.17444 2.03838 6.89324 2.6108 6.88329C3.56132 6.86464 4.5117 6.86597 5.46334 6.88196C5.84966 6.88767 6.10541 7.11141 6.25458 7.47993C6.76884 8.75675 7.39809 9.97154 8.18794 11.0975C8.39829 11.3973 8.61277 11.6971 8.9182 11.9081C9.25609 12.1417 9.51335 12.0643 9.6723 11.6842C9.77317 11.4432 9.81733 11.1837 9.84007 10.9256C9.91537 10.0376 9.92529 9.15109 9.79321 8.26621C9.71213 7.71396 9.40407 7.35645 8.85833 7.25194C8.57985 7.19866 8.62131 7.09402 8.75615 6.93352C8.99035 6.65669 9.21061 6.48438 9.6497 6.48438H12.9426C13.461 6.58769 13.5761 6.82284 13.6471 7.34955L13.6499 11.0429C13.6442 11.2468 13.7508 11.8519 14.1145 11.9869C14.4056 12.0829 14.5975 11.8478 14.7721 11.6614C15.5605 10.8165 16.1232 9.81793 16.6259 8.78396C16.849 8.32931 17.0408 7.85714 17.2267 7.38538C17.3644 7.0353 17.5806 6.86305 17.9711 6.87068L21.1403 6.87353C21.2343 6.87353 21.3294 6.87493 21.4204 6.89065C21.9544 6.98255 22.1007 7.21452 21.9358 7.74109C21.6759 8.56725 21.1703 9.25572 20.6759 9.94738C20.1473 10.6858 19.5821 11.399 19.058 12.1418C18.5764 12.8201 18.6147 13.162 19.2129 13.7512Z" fill="#141414"/>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@ -1,4 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.1512 4.42386L4.42326 17.1518L6.84763 19.5761L19.5756 6.84822L17.1512 4.42386Z" fill="#393840"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M12.0001 10.2321L18.1873 4.04492L19.9551 5.81269L13.7679 11.9999L19.9551 18.1871L18.1873 19.9548L12.0001 13.7676L5.81293 19.9548L4.04517 18.1871L10.2324 11.9999L4.04517 5.81269L5.81293 4.04492L12.0001 10.2321Z" fill="#141414"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M19.5755 17.1518L6.84763 4.42386L4.42326 6.84822L17.1512 19.5761L19.5755 17.1518Z" fill="#393840"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 401 B

After

Width:  |  Height:  |  Size: 380 B

View File

@ -1,3 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
<path fill-rule="evenodd" clip-rule="evenodd" d="M22 6.73787L19.2621 4L9.78964 13.4725L5.73787 9.42071L3 12.1586L9.78964 18.9482L22 6.73787Z" fill="#393840"/> <path fill-rule="evenodd" clip-rule="evenodd" d="M22 6.73787L19.2621 4L9.78964 13.4725L5.73787 9.42071L3 12.1586L9.78964 18.9482L22 6.73787Z" fill="#141414"/>
</svg> </svg>

Before

Width:  |  Height:  |  Size: 262 B

After

Width:  |  Height:  |  Size: 264 B

View File

@ -0,0 +1,3 @@
<svg width="18" height="10" viewBox="0 0 18 10" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M17.1042 9.90633C16.9063 9.90633 16.7136 9.82821 16.5626 9.67716L8.98965 1.91675L1.43236 9.66154C1.1459 9.95841 0.671944 9.96362 0.375069 9.67716C0.0781948 9.3855 0.0729868 8.91154 0.359444 8.61467L8.45319 0.322998C8.73965 0.0313314 9.24486 0.0313314 9.53132 0.322998L17.6407 8.63029C17.9272 8.92716 17.9219 9.40112 17.6251 9.69279C17.4792 9.83342 17.2917 9.90633 17.1042 9.90633Z" fill="#9FA1A7"/>
</svg>

After

Width:  |  Height:  |  Size: 511 B

View File

@ -0,0 +1,8 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Icon">
<path d="M2.70423 20.2826H18.9296C19.6763 20.2826 20.2817 19.6773 20.2817 18.9305V15.9658C20.2817 15.6139 20.1445 15.2759 19.8992 15.0235L16.5187 11.5449C15.9878 10.9986 15.1106 10.9985 14.5796 11.5447L13.0829 13.084C12.5107 13.6726 11.5502 13.6196 11.0462 12.9716L8.31344 9.45821C7.77885 8.77092 6.74349 8.76071 6.19546 9.43733L1.65353 15.0449C1.45852 15.2857 1.35211 15.5861 1.35211 15.896V18.9305C1.35211 19.6773 1.95747 20.2826 2.70423 20.2826Z" fill="currentColor"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.5775 2.70423H2.70423V17.5775H17.5775V2.70423ZM0 0V20.2817H20.2817V0H0Z" fill="currentColor"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M24 5.40845H21.9718V21.9718H5.40845V24H24V5.40845Z" fill="currentColor"/>
<path d="M14.8732 6.08451C14.8732 7.20463 13.9652 8.11268 12.8451 8.11268C11.7249 8.11268 10.8169 7.20463 10.8169 6.08451C10.8169 4.96438 11.7249 4.05634 12.8451 4.05634C13.9652 4.05634 14.8732 4.96438 14.8732 6.08451Z" fill="currentColor"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1,8 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<g id="Icon">
<path d="M2.70423 20.2826H18.9296C19.6763 20.2826 20.2817 19.6773 20.2817 18.9305V15.9658C20.2817 15.6139 20.1445 15.2759 19.8992 15.0235L16.5187 11.5449C15.9878 10.9986 15.1106 10.9985 14.5796 11.5447L13.0829 13.084C12.5107 13.6726 11.5502 13.6196 11.0462 12.9716L8.31344 9.45821C7.77885 8.77092 6.74349 8.76071 6.19546 9.43733L1.65353 15.0449C1.45852 15.2857 1.35211 15.5861 1.35211 15.896V18.9305C1.35211 19.6773 1.95747 20.2826 2.70423 20.2826Z" fill="#9FA1A7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M17.5775 2.70423H2.70423V17.5775H17.5775V2.70423ZM0 0V20.2817H20.2817V0H0Z" fill="#9FA1A7"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M24 5.40845H21.9718V21.9718H5.40845V24H24V5.40845Z" fill="#9FA1A7"/>
<path d="M14.8732 6.08451C14.8732 7.20463 13.9652 8.11268 12.8451 8.11268C11.7249 8.11268 10.8169 7.20463 10.8169 6.08451C10.8169 4.96438 11.7249 4.05634 12.8451 4.05634C13.9652 4.05634 14.8732 4.96438 14.8732 6.08451Z" fill="#9FA1A7"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32"> <path d="M19.417 32c-6.792 0-9.375-5.010-9.375-8.547v-10.458h-3.219v-4.13c4.839-1.75 6.016-6.13 6.276-8.625 0.021-0.172 0.156-0.24 0.234-0.24h4.688v8.151h6.401v4.844h-6.427v9.964c0.021 1.333 0.5 3.161 2.943 3.161h0.12c0.844-0.031 1.984-0.276 2.583-0.563l1.542 4.568c-0.583 0.849-3.203 1.833-5.542 1.87h-0.24z"/> </svg>

After

Width:  |  Height:  |  Size: 403 B

View File

@ -1,436 +0,0 @@
{
"...subscribing": "...subscribing",
"About": "About",
"About the project": "About the project",
"Add a few topics so that the reader knows what your content is about and can find it on pages of topics that interest them. Topics can be swapped, the first topic becomes the title": "Add a few topics so that the reader knows what your content is about and can find it on pages of topics that interest them. Topics can be swapped, the first topic becomes the title",
"Add a link or click plus to embed media": "Add a link or click plus to embed media",
"Add an embed widget": "Add an embed widget",
"Add another image": "Add another image",
"Add audio": "Add audio",
"Add blockquote": "Add blockquote",
"Add comment": "Comment",
"Add cover": "Add cover",
"Add image": "Add image",
"Add images": "Add images",
"Add intro": "Add intro",
"Add link": "Add link",
"Add rule": "Add rule",
"Add signature": "Add signature",
"Add subtitle": "Add subtitle",
"Add url": "Add url",
"Address on Discourse": "Address on Discourse",
"Album name": "Название aльбома",
"Alignment center": "Alignment center",
"Alignment left": "Alignment left",
"Alignment right": "Alignment right",
"All": "All",
"All authors": "All authors",
"All posts": "All posts",
"All topics": "All topics",
"Almost done! Check your email.": "Almost done! Just checking your email.",
"Are you sure you want to delete this comment?": "Are you sure you want to delete this comment?",
"Are you sure you want to delete this draft?": "Are you sure you want to delete this draft?",
"Are you sure you want to to proceed the action?": "Are you sure you want to to proceed the action?",
"Art": "Art",
"Artist": "Artist",
"Artworks": "Artworks",
"Audio": "Audio",
"Author": "Author",
"Authors": "Authors",
"Autotypograph": "Autotypograph",
"Back": "Back",
"Back to editor": "Back to editor",
"Back to main page": "Back to main page",
"Become an author": "Become an author",
"Bold": "Bold",
"Bookmarked": "Saved",
"Bookmarks": "Bookmarks",
"Bullet list": "Bullet list",
"By alphabet": "By alphabet",
"By authors": "By authors",
"By name": "By name",
"By popularity": "By popularity",
"By rating": "By popularity",
"By relevance": "By relevance",
"By shouts": "By publications",
"By signing up you agree with our": "By signing up you agree with our",
"By time": "By time",
"By title": "By title",
"By updates": "By updates",
"By views": "By views",
"Cancel": "Cancel",
"Cancel changes": "Cancel changes",
"Characters": "Знаков",
"Chat Title": "Chat Title",
"Choose a post type": "Choose a post type",
"Choose a title image for the article. You can immediately see how the publication card will look like.": "Choose a title image for the article. You can immediately see how the publication card will look like.",
"Choose who you want to write to": "Choose who you want to write to",
"Collaborate": "Help Edit",
"Collections": "Collections",
"Come up with a subtitle for your story": "Come up with a subtitle for your story",
"Come up with a title for your story": "Come up with a title for your story",
"Comment successfully deleted": "Comment successfully deleted",
"Comments": "Comments",
"Communities": "Communities",
"Community Principles": "Community Principles",
"Confirm": "Confirm",
"Cooperate": "Cooperate",
"Copy": "Copy",
"Copy link": "Copy link",
"Corrections history": "Corrections history",
"Create Chat": "Create Chat",
"Create Group": "Create a group",
"Create account": "Create an account",
"Create an account to add to your bookmarks": "Create an account to add to your bookmarks",
"Create an account to participate in discussions": "Create an account to participate in discussions",
"Create an account to publish articles": "Create an account to publish articles",
"Create an account to subscribe": "Create an account to subscribe",
"Create an account to subscribe to new publications": "Create an account to subscribe to new publications",
"Create an account to vote": "Create an account to vote",
"Create gallery": "Create gallery",
"Create post": "Create post",
"Create video": "Create video",
"Date of Birth": "Date of Birth",
"Decline": "Decline",
"Delete": "Delete",
"Delete cover": "Delete cover",
"Description": "Description",
"Discours": "Discours",
"Discours is an intellectual environment, a web space and tools that allows authors to collaborate with readers and come together to co-create publications and media projects": "Discours is&#160;an&#160;intellectual environment, a&#160;web space and tools that allows authors to&#160;collaborate with readers and come together to&#160;co-create publications and media projects.<br/><em>We&#160;are convinced that one voice is&#160;good, but many is&#160;better. We&#160;create the most amazing stories together</em>",
"Discours is created with our common effort": "Discours exists because of our common effort",
"Discussing": "Discussing",
"Discussion rules": "Discussion rules",
"Discussions": "Discussions",
"Dogma": "Dogma",
"Draft successfully deleted": "Draft successfully deleted",
"Drafts": "Drafts",
"Drag the image to this area": "Drag the image to this area",
"Each image must be no larger than 5 MB.": "Each image must be no larger than 5 MB.",
"Edit": "Edit",
"Edit profile": "Edit profile",
"Editing": "Editing",
"Email": "Mail",
"Enter": "Enter",
"Enter URL address": "Enter URL address",
"Enter footnote text": "Enter footnote text",
"Enter image description": "Enter image description",
"Enter image title": "Enter image title",
"Enter text": "Enter text",
"Enter the code or click the link from email to confirm": "Enter the code from the email or follow the link in the email to confirm registration",
"Enter your new password": "Enter your new password",
"Error": "Error",
"Everything is ok, please give us your email address": "It's okay, just enter your email address to receive a password reset link.",
"FAQ": "Tips and suggestions",
"Favorite": "Favorites",
"Favorite topics": "Favorite topics",
"Feed settings": "Feed settings",
"Feedback": "Feedback",
"Fill email": "Fill email",
"Fixed": "Fixed",
"Follow": "Follow",
"Follow the topic": "Follow the topic",
"Followers": "Followers",
"Following": "Following",
"Forgot password?": "Forgot your password?",
"Forward": "Forward",
"Full name": "First and last name",
"Gallery": "Gallery",
"Gallery name": "Gallery name",
"Get to know the most intelligent people of our time, edit and discuss the articles, share your expertise, rate and decide what to publish in the magazine": "Get to know the most intelligent people of our time, edit and discuss the articles, share your expertise, rate and decide what to publish in the magazine",
"Go to main page": "Go to main page",
"Group Chat": "Group Chat",
"Groups": "Groups",
"Header 1": "Header 1",
"Header 2": "Header 2",
"Header 3": "Header 3",
"Headers": "Headers",
"Help": "Помощь",
"Help to edit": "Help to edit",
"Here you can customize your profile the way you want.": "Here you can customize your profile the way you want.",
"Here you can manage all your Discourse subscriptions": "Here you can manage all your Discourse subscriptions",
"Hide table of contents": "Hide table of contents",
"Highlight": "Highlight",
"Hooray! Welcome!": "Hooray! Welcome!",
"Horizontal collaborative journalistic platform": "Horizontal collaborative journalism platform",
"Hot topics": "Hot topics",
"Hotkeys": "Горячие клавиши",
"How can I help/skills": "How can I help/skills",
"How it works": "How it works",
"How to help": "How to help?",
"How to write a good article": "Как написать хорошую статью",
"How to write an article": "How to write an article",
"I have an account": "I have an account!",
"I have no account yet": "I don't have an account yet",
"I know the password": "I know the password",
"Image format not supported": "Image format not supported",
"In&nbsp;bookmarks, you can save favorite discussions and&nbsp;materials that you want to return to": "In&nbsp;bookmarks, you can save favorite discussions and&nbsp;materials that you want to return to",
"Incut": "Incut",
"Independant magazine with an open horizontal cooperation about culture, science and society": "Independant magazine with an open horizontal cooperation about culture, science and society",
"Insert footnote": "Insert footnote",
"Insert video link": "Insert video link",
"Introduce": "Introduction",
"Invalid email": "Check if your email is correct",
"Invalid image URL": "Invalid image URL",
"Invalid url format": "Invalid url format",
"Invite co-authors": "Invite co-authors",
"Invite to collab": "Invite to Collab",
"It does not look like url": "It doesn't look like a link",
"Italic": "Italic",
"Join": "Join",
"Join our maillist": "To receive the best postings, just enter your email",
"Join the community": "Join the community",
"Join the global community of authors!": "Join the global community of authors from all over the world!",
"Just start typing...": "Just start typing...",
"Knowledge base": "Knowledge base",
"Last rev.": "Посл. изм.",
"Let's log in": "Let's log in",
"Link copied": "Link copied",
"Link sent, check your email": "Link sent, check your email",
"Lists": "Lists",
"Literature": "Literature",
"Load more": "Show more",
"Loading": "Loading",
"Logout": "Logout",
"Looks like you forgot to upload the video": "Looks like you forgot to upload the video",
"Manifest": "Manifest",
"Manifesto": "Manifesto",
"Many files, choose only one": "Many files, choose only one",
"Material card": "Material card",
"Message": "Message",
"More": "More",
"Most commented": "Commented",
"Most read": "Readable",
"Move down": "Move down",
"Move up": "Move up",
"Music": "Music",
"My feed": "My feed",
"My subscriptions": "Subscriptions",
"Name": "Name",
"New literary work": "New literary work",
"New only": "New only",
"New password": "New password",
"New stories every day and even more!": "New stories and more are waiting for you every day!",
"NotificationNewCommentText1": "{commentsCount, plural, one {New comment} other {{commentsCount} comments}} to your publication",
"NotificationNewCommentText2": "from",
"NotificationNewCommentText3": "{restUsersCount, plural, =0 {} one { one more user} other { and more {restUsersCount} users}}",
"NotificationNewReplyText1": "{commentsCount, plural, one {New reply} other {{commentsCount} replays}} to your publication",
"NotificationNewReplyText2": "from",
"NotificationNewReplyText3": "{restUsersCount, plural, =0 {} one { and one more user} other { and more {restUsersCount} users}}",
"Newsletter": "Newsletter",
"Night mode": "Night mode",
"No notifications yet": "No notifications yet",
"Write good articles, comment\nand it won't be so empty here": "Write good articles, comment\nand it won't be so empty here",
"Nothing here yet": "There's nothing here yet",
"Nothing is here": "There is nothing here",
"Notifications": "Notifications",
"Or paste a link to an image": "Or paste a link to an image",
"Ordered list": "Ordered list",
"Our regular contributor": "Our regular contributor",
"Paragraphs": "Абзацев",
"Participating": "Participating",
"Partners": "Partners",
"Password": "Password",
"Password again": "Password again",
"Password should be at least 8 characters": "Password should be at least 8 characters",
"Password should contain at least one number": "Password should contain at least one number",
"Password should contain at least one special character: !@#$%^&*": "Password should contain at least one special character: !@#$%^&*",
"Passwords are not equal": "Passwords are not equal",
"Paste Embed code": "Paste Embed code",
"Personal": "Personal",
"Pin": "Pin",
"Platform Guide": "Platform Guide",
"Please check your email address": "Please check your email address",
"Please confirm your email to finish": "Confirm your email and the action will complete",
"Please enter a name to sign your comments and publication": "Please enter a name to sign your comments and publication",
"Please enter email": "Please enter your email",
"Please enter password": "Please enter a password",
"Please enter password again": "Please enter password again",
"Please, confirm email": "Please confirm email",
"Popular": "Popular",
"Popular authors": "Popular authors",
"Principles": "Community principles",
"Profile": "Profile",
"Profile settings": "Profile settings",
"Publications": "Publications",
"PublicationsWithCount": "{count, plural, =0 {no publications} one {{count} publication} other {{count} publications}}",
"Publish Album": "Publish Album",
"Publish Settings": "Publish Settings",
"Punchline": "Punchline",
"Quit": "Quit",
"Quote": "Quote",
"Quotes": "Quotes",
"Reason uknown": "Reason unknown",
"Recent": "Fresh",
"Registered since {date}": "Registered since {date}",
"Remove link": "Remove link",
"Reply": "Reply",
"Report": "Complain",
"Required": "Required",
"Resend code": "Send confirmation",
"Restore password": "Restore password",
"Save draft": "Save draft",
"Save settings": "Save settings",
"Saving...": "Saving...",
"Scroll up": "Scroll up",
"Search": "Search",
"Search author": "Search author",
"Search topic": "Search topic",
"Sections": "Sections",
"Security": "Security",
"Select": "Select",
"Send": "Send",
"Send link again": "Send link again",
"Settings": "Settings",
"Share": "Share",
"Show": "Show",
"Show lyrics": "Show lyrics",
"Show more": "Show more",
"Show table of contents": "Show table of contents",
"Slug": "Slug",
"Social networks": "Social networks",
"Something went wrong, check email and password": "Something went wrong. Check your email and password",
"Something went wrong, please try again": "Something went wrong, please try again",
"Song lyrics": "Song lyrics...",
"Song title": "Song title",
"Sorry, this address is already taken, please choose another one.": "Sorry, this address is already taken, please choose another one",
"Special projects": "Special projects",
"Specify the source and the name of the author": "Specify the source and the name of the author",
"Start conversation": "Start a conversation",
"Subsccriptions": "Subscriptions",
"Subscribe": "Subscribe",
"Subscribe us": "Subscribe us",
"Subscribe what you like to tune your personal feed": "Subscribe to topics that interest you to customize your personal feed and get instant updates on new posts and discussions",
"Subscribe who you like to tune your personal feed": "Subscribe to authors you're interested in to customize your personal feed and get instant updates on new posts and discussions",
"SubscriberWithCount": "{count, plural, =0 {no followers} one {{count} follower} other {{count} followers}",
"Subscription": "Subscription",
"SubscriptionWithCount": "{count, plural, =0 {no subscriptions} one {{count} subscription} other {{count} subscriptions}",
"Subscriptions": "Subscriptions",
"Substrate": "Substrate",
"Success": "Success",
"Successfully authorized": "Authorization successful",
"Suggest an idea": "Suggest an idea",
"Support us": "Help the magazine",
"Terms of use": "Site rules",
"Text checking": "Text checking",
"Thank you": "Thank you",
"There are unsaved changes in your profile settings. Are you sure you want to leave the page without saving?": "There are unsaved changes in your profile settings. Are you sure you want to leave the page without saving?",
"There are unsaved changes in your publishing settings. Are you sure you want to leave the page without saving?": "There are unsaved changes in your publishing settings. Are you sure you want to leave the page without saving?",
"This comment has not yet been rated": "This comment has not yet been rated",
"This email is already taken. If it's you": "This email is already taken. If it's you",
"This functionality is currently not available, we would like to work on this issue. Use the download link.": "This functionality is currently not available, we would like to work on this issue. Use the download link.",
"This post has not been rated yet": "This post has not been rated yet",
"This way we&nbsp;ll realize that you&nbsp;re a real person and&nbsp;ll take your vote into account. And&nbsp;you&nbsp;ll see how others voted": "This way we&nbsp;ll realize that you&nbsp;re a real person and&nbsp;ll take your vote into account. And&nbsp;you&nbsp;ll see how others voted",
"This way you&nbsp;ll be able to subscribe to&nbsp;authors, interesting topics and&nbsp;customize your feed": "This way you&nbsp;ll be able to subscribe to&nbsp;authors, interesting topics and&nbsp;customize your feed",
"To leave a comment please": "To leave a comment please",
"To write a comment, you must": "To write a comment, you must",
"Top authors": "Authors rating",
"Top commented": "Most commented",
"Top discussed": "Top discussed",
"Top month articles": "Top of the month",
"Top rated": "Popular",
"Top recent": "Most recent",
"Top topics": "Interesting topics",
"Top viewed": "Most viewed",
"Topic is supported by": "Topic is supported by",
"Topics": "Topics",
"Topics which supported by author": "Topics which supported by author",
"Try to find another way": "Try to find another way",
"Unfollow": "Unfollow",
"Unfollow the topic": "Unfollow the topic",
"Unnamed draft": "Unnamed draft",
"Upload": "Upload",
"Upload error": "Upload error",
"Upload video": "Upload video",
"Uploading image": "Uploading image",
"Username": "Username",
"Userpic": "Userpic",
"Users": "Users",
"Video": "Video",
"Video format not supported": "Video format not supported",
"Views": "Views",
"We can't find you, check email or": "We can't find you, check email or",
"We know you, please try to login": "This email address is already registered, please try to login",
"We've sent you a message with a link to enter our website.": "We've sent you an email with a link to your email. Follow the link in the email to enter our website.",
"Welcome to Discours": "Welcome to Discours",
"Welcome to Discours to add to your bookmarks": "Welcome to Discours to add to your bookmarks",
"Welcome to Discours to participate in discussions": "Welcome to Discours to participate in discussions",
"Welcome to Discours to publish articles": "Welcome to Discours to publish articles",
"Welcome to Discours to subscribe": "Welcome to Discours to subscribe",
"Welcome to Discours to subscribe to new publications": "Welcome to Discours to subscribe to new publications",
"Welcome to Discours to vote": "Welcome to Discours to vote",
"Where": "From",
"Words": "Слов",
"Work with us": "Cooperate with Discourse",
"Write a comment...": "Write a comment...",
"Write a short introduction": "Write a short introduction",
"Write about the topic": "Write about the topic",
"Write an article": "Write an article",
"Write comment": "Write comment",
"Write message": "Write a message",
"Write to us": "Write to us",
"You can download multiple tracks at once in .mp3, .wav or .flac formats": "You can download multiple tracks at once in .mp3, .wav or .flac formats",
"You were successfully authorized": "You were successfully authorized",
"You&nbsp;ll be able to participate in&nbsp;discussions, rate others' comments and&nbsp;learn about&nbsp;new responses": "You&nbsp;ll be able to participate in&nbsp;discussions, rate others' comments and&nbsp;learn about&nbsp;new responses",
"You've confirmed email": "You've confirmed email",
"You've reached a non-existed page": "You've reached a non-existed page",
"Your email": "Your email",
"Your name will appear on your profile page and as your signature in publications, comments and responses.": "Your name will appear on your profile page and as your signature in publications, comments and responses",
"accomplices": "accomplices",
"actions": "actions",
"add link": "add link",
"all topics": "all topics",
"article": "article",
"author": "author",
"authors": "authors",
"back to menu": "back to menu",
"bold": "bold",
"bookmarks": "bookmarks",
"cancel": "cancel",
"collections": "collections",
"community": "community",
"contents": "contents",
"delimiter": "delimiter",
"discussion": "discourse",
"drafts": "drafts",
"email not confirmed": "email not confirmed",
"enter": "enter",
"feed": "feed",
"follower": "follower",
"general feed": "general tape",
"header 1": "header 1",
"header 2": "header 2",
"header 3": "header 3",
"images": "images",
"invalid password": "invalid password",
"italic": "italic",
"journal": "journal",
"jpg, .png, max. 10 mb.": "jpg, .png, макс. 10 мб.",
"literature": "literature",
"marker list": "marker list",
"min. 1400×1400 pix": "мин. 1400×1400 пикс.",
"music": "music",
"my feed": "my ribbon",
"number list": "number list",
"or sign in with social networks": "or sign in with social networks",
"personal data usage and email notifications": "to process personal data and receive email notifications",
"post": "post",
"register": "register",
"repeat": "repeat",
"shout": "post",
"sign up or sign in": "sign up or sign in",
"slug is used by another user": "Slug is already taken by another user",
"subscriber": "subscriber",
"subscriber_rp": "subscriber",
"subscribers": "subscribers",
"subscription": "subscription",
"subscription_rp": "subscription",
"subscriptions": "subscriptions",
"terms of use": "terms of use",
"topics": "topics",
"user already exist": "user already exists",
"video": "video",
"view": "view"
}

View File

@ -1,18 +0,0 @@
{
"theme_color": "#111111",
"background_color": "#ffffff",
"display": "standalone",
"scope": "/",
"start_url": "/",
"name": "discours.io",
"short_name": "discours.io",
"description": "Дискурс - коллаборативная журналистика",
"icons": [
{
"src": "/favicon.png",
"sizes": "200x200",
"type": "image/png",
"purpose": "any maskable"
}
]
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 379 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 157 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 220 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 192 KiB

51
src/app.tsx Normal file
View File

@ -0,0 +1,51 @@
import { Meta, MetaProvider } from '@solidjs/meta'
import { Router } from '@solidjs/router'
import { FileRoutes } from '@solidjs/start/router'
import { type JSX, Suspense } from 'solid-js'
import { AuthToken } from '@authorizerdev/authorizer-js'
import { Loading } from './components/_shared/Loading'
import { AuthorsProvider } from './context/authors'
import { EditorProvider } from './context/editor'
import { FeedProvider } from './context/feed'
import { LocalizeProvider } from './context/localize'
import { SessionProvider } from './context/session'
import { TopicsProvider } from './context/topics'
import { UIProvider } from './context/ui'
import '~/styles/app.scss'
export const Providers = (props: { children?: JSX.Element }) => {
const sessionStateChanged = (payload: AuthToken) => {
console.debug(payload)
// TODO: maybe load subs here
}
return (
<LocalizeProvider>
<SessionProvider onStateChangeCallback={sessionStateChanged}>
<TopicsProvider>
<FeedProvider>
<MetaProvider>
<Meta name="viewport" content="width=device-width, initial-scale=1" />
<UIProvider>
<EditorProvider>
<AuthorsProvider>
<Suspense fallback={<Loading />}>{props.children}</Suspense>
</AuthorsProvider>
</EditorProvider>
</UIProvider>
</MetaProvider>
</FeedProvider>
</TopicsProvider>
</SessionProvider>
</LocalizeProvider>
)
}
export const App = () => (
<Router root={Providers}>
<FileRoutes />
</Router>
)
export default App

View File

@ -1,127 +0,0 @@
// FIXME: breaks on vercel, research
// import 'solid-devtools'
import { hideModal, MODALS, showModal } from '../stores/ui'
import { Component, createEffect, createMemo } from 'solid-js'
import { ROUTES, useRouter } from '../stores/router'
import { Dynamic } from 'solid-js/web'
import type { PageProps, RootSearchParams } from '../pages/types'
import { HomePage } from '../pages/index.page'
import { AllTopicsPage } from '../pages/allTopics.page'
import { TopicPage } from '../pages/topic.page'
import { AllAuthorsPage } from '../pages/allAuthors.page'
import { AuthorPage } from '../pages/author.page'
import { FeedPage } from '../pages/feed.page'
import { ArticlePage } from '../pages/article.page'
import { SearchPage } from '../pages/search.page'
import { FourOuFourPage } from '../pages/fourOuFour.page'
import { DiscussionRulesPage } from '../pages/about/discussionRules.page'
import { DogmaPage } from '../pages/about/dogma.page'
import { GuidePage } from '../pages/about/guide.page'
import { HelpPage } from '../pages/about/help.page'
import { ManifestPage } from '../pages/about/manifest.page'
import { PartnersPage } from '../pages/about/partners.page'
import { PrinciplesPage } from '../pages/about/principles.page'
import { ProjectsPage } from '../pages/about/projects.page'
import { TermsOfUsePage } from '../pages/about/termsOfUse.page'
import { ThanksPage } from '../pages/about/thanks.page'
import { CreatePage } from '../pages/create.page'
import { EditPage } from '../pages/edit.page'
import { ConnectPage } from '../pages/connect.page'
import { InboxPage } from '../pages/inbox.page'
import { ExpoPage } from '../pages/expo/expo.page'
import { SessionProvider } from '../context/session'
import { ProfileSettingsPage } from '../pages/profile/profileSettings.page'
import { ProfileSecurityPage } from '../pages/profile/profileSecurity.page'
import { ProfileSubscriptionsPage } from '../pages/profile/profileSubscriptions.page'
import { DraftsPage } from '../pages/drafts.page'
import { SnackbarProvider } from '../context/snackbar'
import { LocalizeProvider } from '../context/localize'
import { ConfirmProvider } from '../context/confirm'
import { EditorProvider } from '../context/editor'
import { NotificationsProvider } from '../context/notifications'
// TODO: lazy load
// const SomePage = lazy(() => import('./Pages/SomePage'))
const pagesMap: Record<keyof typeof ROUTES, Component<PageProps>> = {
author: AuthorPage,
authorComments: AuthorPage,
authorAbout: AuthorPage,
inbox: InboxPage,
expo: ExpoPage,
expoLayout: ExpoPage,
connect: ConnectPage,
create: CreatePage,
edit: EditPage,
editSettings: EditPage,
drafts: DraftsPage,
home: HomePage,
topics: AllTopicsPage,
topic: TopicPage,
authors: AllAuthorsPage,
feed: FeedPage,
feedMy: FeedPage,
feedNotifications: FeedPage,
feedBookmarks: FeedPage,
feedCollaborations: FeedPage,
feedDiscussions: FeedPage,
article: ArticlePage,
search: SearchPage,
discussionRules: DiscussionRulesPage,
dogma: DogmaPage,
guide: GuidePage,
help: HelpPage,
manifest: ManifestPage,
projects: ProjectsPage,
partners: PartnersPage,
principles: PrinciplesPage,
termsOfUse: TermsOfUsePage,
thanks: ThanksPage,
profileSettings: ProfileSettingsPage,
profileSecurity: ProfileSecurityPage,
profileSubscriptions: ProfileSubscriptionsPage,
fourOuFour: FourOuFourPage
}
export const App = (props: PageProps) => {
const { page, searchParams } = useRouter<RootSearchParams>()
createEffect(() => {
if (!searchParams().modal) {
hideModal()
}
const modal = MODALS[searchParams().modal]
if (modal) {
showModal(modal)
}
})
const pageComponent = createMemo(() => {
const result = pagesMap[page()?.route || 'home']
if (!result || page()?.path === '/404') {
return FourOuFourPage
}
return result
})
return (
<LocalizeProvider>
<SnackbarProvider>
<ConfirmProvider>
<SessionProvider>
<NotificationsProvider>
<EditorProvider>
<Dynamic component={pageComponent()} {...props} />
</EditorProvider>
</NotificationsProvider>
</SessionProvider>
</ConfirmProvider>
</SnackbarProvider>
</LocalizeProvider>
)
}

View File

@ -1,11 +1,13 @@
h1 { h1 {
@include font-size(4rem); @include font-size(4rem);
line-height: 1.1; line-height: 1.1;
margin-top: 0.5em; margin-top: 0.5em;
} }
h2 { h2 {
@include font-size(4rem); @include font-size(4rem);
line-height: 1.1; line-height: 1.1;
} }
@ -14,30 +16,44 @@ img {
} }
.shoutHeader { .shoutHeader {
margin-bottom: 2em; margin-bottom: 1.5em;
}
@include media-breakpoint-up(md) { .articleContent {
margin: 0 0 2em; img:not([data-disable-lightbox='true']) {
cursor: zoom-in;
width: 100%;
} }
} }
.shoutCover {
background-size: cover;
height: 0;
padding-bottom: 56.2%;
}
.shoutBody { .shoutBody {
@include media-breakpoint-up(sm) {
:global(.width-30) {
width: 30%;
}
:global(.width-50) {
width: 50%;
}
}
font-size: 1.6rem; font-size: 1.6rem;
line-height: 1.6; line-height: 1.6;
img { details {
display: block; text-align: center;
margin-bottom: 0.5em; background-color: lightgray;
line-height: 3em;
}
details p {
text-align: left;
line-height: normal;
} }
blockquote, blockquote,
blockquote[data-type='punchline'] { blockquote[data-type='punchline'] {
clear: both;
font-size: 2.6rem; font-size: 2.6rem;
font-weight: bold; font-weight: bold;
line-height: 1.4; line-height: 1.4;
@ -59,8 +75,19 @@ img {
blockquote[data-type='quote'], blockquote[data-type='quote'],
ta-quotation { ta-quotation {
@include media-breakpoint-up(sm) {
&[data-float='left'] {
margin-right: 1.5em;
}
&[data-float='right'] {
margin-left: 1.5em;
}
}
border: solid #000; border: solid #000;
border-width: 0 0 0 2px; border-width: 0 0 0 2px;
clear: both;
display: block; display: block;
font-weight: 500; font-weight: 500;
line-height: 1.6; line-height: 1.6;
@ -70,19 +97,14 @@ img {
&[data-float='left'], &[data-float='left'],
&[data-float='right'] { &[data-float='right'] {
@include font-size(2.2rem); @include font-size(2.2rem);
@include media-breakpoint-up(sm) {
clear: none;
}
line-height: 1.4; line-height: 1.4;
} }
@include media-breakpoint-up(sm) {
&[data-float='left'] {
margin-right: 1.5em;
}
&[data-float='right'] {
margin-left: 1.5em;
}
}
&::before { &::before {
display: none; display: none;
} }
@ -92,22 +114,28 @@ img {
ta-sub, ta-sub,
ta-selection-frame, ta-selection-frame,
ta-border-sub { ta-border-sub {
background: #f1f2f3;
display: block;
@include font-size(1.4rem); @include font-size(1.4rem);
margin: 3.2rem 0;
padding: 3.2rem;
@include media-breakpoint-up(md) { @include media-breakpoint-up(md) {
margin: 3.2rem -8.3333%; margin: 3.2rem -8.3333%;
padding: 3.2rem 8.3333%; padding: 3.2rem 8.3333%;
} }
background: #f1f2f3;
clear: both;
display: block;
margin: 3.2rem 0;
padding: 3.2rem;
p:last-child { p:last-child {
margin-bottom: 0; margin-bottom: 0;
} }
} }
ta-sub {
font-size: inherit;
}
*[data-bg='black'] { *[data-bg='black'] {
background: #000; background: #000;
color: #fff; color: #fff;
@ -173,15 +201,7 @@ img {
:global(.img-align-left) { :global(.img-align-left) {
float: left; float: left;
margin: 1em 8.3333% 1.5em 0; margin: 0 8.3333% 1.5em 0;
}
:global(.width-30) {
width: 30%;
}
:global(.width-50) {
width: 50%;
} }
:global(.img-align-left.width-50) { :global(.img-align-left.width-50) {
@ -191,13 +211,15 @@ img {
} }
:global(.img-align-right) { :global(.img-align-right) {
float: right; @include media-breakpoint-up(sm) {
margin: 1em 0 1.5em 8.3333%; float: right;
margin: 1em 0 1.5em 8.3333%;
}
} }
:global(.img-align-right.width-50) { :global(.img-align-right.width-50) {
@include media-breakpoint-up(xl) { @include media-breakpoint-up(xl) {
margin-right: -16.6666%; margin-right: -8.3333%;
} }
} }
@ -240,7 +262,6 @@ img {
.shoutAuthorsList { .shoutAuthorsList {
border-bottom: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8;
margin: 2em 0; margin: 2em 0;
padding-bottom: 2em;
h4 { h4 {
color: #696969; color: #696969;
@ -292,29 +313,31 @@ img {
} }
.shoutStats { .shoutStats {
@include media-breakpoint-down(lg) {
flex-wrap: wrap;
}
border-top: 4px solid #000; border-top: 4px solid #000;
display: flex; display: flex;
justify-content: flex-start; justify-content: flex-start;
padding: 3rem 0 0; padding: 3rem 0 0;
position: relative;
@include media-breakpoint-down(sm) {
flex-wrap: wrap;
}
} }
.shoutStatsItem { .shoutStatsItem {
@include font-size(1.5rem); @include font-size(1.5rem);
@include media-breakpoint-up(xl) {
margin-right: 3.2rem;
}
align-items: center; align-items: center;
font-weight: 500; font-weight: 500;
display: flex; display: flex;
margin: 0 6% 1em 0; margin: 0 2rem 1em 0;
vertical-align: baseline; vertical-align: baseline;
cursor: pointer; cursor: pointer;
@include media-breakpoint-up(sm) {
margin-right: 3.2rem;
}
.icon { .icon {
display: inline-block; display: inline-block;
margin-right: 0.2em; margin-right: 0.2em;
@ -355,6 +378,14 @@ img {
} }
} }
.shoutStatsItemBookmarks {
@include media-breakpoint-up(lg) {
margin-left: 0;
}
margin-left: auto;
}
.shoutStatsItemInner { .shoutStatsItemInner {
cursor: pointer; cursor: pointer;
@ -377,45 +408,87 @@ img {
} }
.shoutStatsItemAdditionalData { .shoutStatsItemAdditionalData {
@include media-breakpoint-down(lg) {
flex: 1 100%;
order: 9;
.shoutStatsItemAdditionalDataItem {
margin-left: 0;
}
}
color: rgb(0 0 0 / 40%); color: rgb(0 0 0 / 40%);
cursor: default;
font-weight: normal; font-weight: normal;
justify-self: flex-end; justify-self: flex-end;
margin-right: 0;
margin-left: auto;
white-space: nowrap; white-space: nowrap;
cursor: default;
.icon { .icon {
opacity: 0.4; opacity: 0.4;
height: 2rem; height: 2rem;
} }
@include media-breakpoint-down(sm) {
flex: 1 100%;
}
} }
.shoutStatsItemViews { .shoutStatsItemViews {
@include media-breakpoint-down(lg) {
bottom: 0;
flex: 1 40%;
justify-content: end;
margin-right: 0;
order: 10;
position: absolute;
right: 0;
.icon {
display: none !important;
}
}
color: rgb(0 0 0 / 40%);
cursor: default; cursor: default;
font-weight: normal;
margin-left: auto;
white-space: nowrap;
}
.shoutStatsItemLabel {
font-weight: normal;
margin-left: 0.3em;
}
.commentsTextLabel {
@include media-breakpoint-up(sm) {
display: block;
}
display: none;
}
.shoutStatsItemCount {
@include media-breakpoint-down(lg) {
display: none;
}
} }
.shoutStatsItemAdditionalDataItem { .shoutStatsItemAdditionalDataItem {
font-weight: normal;
display: inline-block;
margin-left: 2rem;
margin-right: 0;
margin-bottom: 0;
cursor: default;
@include media-breakpoint-down(sm) { @include media-breakpoint-down(sm) {
&:first-child { &:first-child {
margin-left: 0; margin-left: 0;
} }
} }
font-weight: normal;
display: inline-block;
// margin-left: 2rem;
margin-right: 0;
margin-bottom: 0;
cursor: default;
} }
.topicsList { .topicsList {
@include font-size(1.2rem); @include font-size(1.2rem);
border-bottom: 1px solid #e8e8e8; border-bottom: 1px solid #e8e8e8;
letter-spacing: 0.08em; letter-spacing: 0.08em;
margin-top: 1.6rem; margin-top: 1.6rem;
@ -455,12 +528,15 @@ img {
} }
.commentsHeaderWrapper { .commentsHeaderWrapper {
display: flex; @include media-breakpoint-up(sm) {
justify-content: space-between; display: flex;
justify-content: space-between;
}
} }
.commentsHeader { .commentsHeader {
@include font-size(2.4rem); @include font-size(2.4rem);
margin-bottom: 1em; margin-bottom: 1em;
.newReactions { .newReactions {
@ -494,6 +570,7 @@ img {
button { button {
@include font-size(1.5rem); @include font-size(1.5rem);
border-radius: 0.8rem; border-radius: 0.8rem;
margin-right: 1.2rem; margin-right: 1.2rem;
padding: 0.9rem 1.2rem; padding: 0.9rem 1.2rem;
@ -575,13 +652,14 @@ a[data-toggle='tooltip'] {
width: 0; width: 0;
height: 0; height: 0;
border-style: solid; border-style: solid;
border-width: 4px 4px 0 4px; border-width: 4px 4px 0;
border-color: var(--black-500) transparent transparent transparent; border-color: var(--black-500) transparent transparent transparent;
} }
} }
.lead { .lead {
@include font-size(1.8rem); @include font-size(1.8rem);
font-weight: 600; font-weight: 600;
b, b,
@ -589,3 +667,19 @@ a[data-toggle='tooltip'] {
font-weight: 700; font-weight: 700;
} }
} }
.articlePopupOpener {
.iconHover {
display: none;
}
&:hover {
.icon {
display: none;
}
.iconHover {
display: inline-block;
}
}
}

View File

@ -36,7 +36,7 @@
width: 200px; width: 200px;
height: 200px; height: 200px;
transition: all 0.2s ease-in-out; transition: all 0.2s ease-in-out;
background: var(--placeholder-color-semi) url('/icons/create-music.svg') no-repeat 50% 50%; background: var(--placeholder-color-semi) url('/icons/create-audio.svg') no-repeat 50% 50%;
.image { .image {
object-fit: cover; object-fit: cover;

View File

@ -1,12 +1,14 @@
import { clsx } from 'clsx' import { clsx } from 'clsx'
import styles from './AudioHeader.module.scss' import { Show, createSignal } from 'solid-js'
import { imageProxy } from '../../../utils/imageProxy'
import { MediaItem } from '../../../pages/types' import { Icon } from '~/components/_shared/Icon'
import { createSignal, Show } from 'solid-js' import { Image } from '~/components/_shared/Image'
import { Icon } from '../../_shared/Icon' import { Topic } from '~/graphql/schema/core.gen'
import { Topic } from '../../../graphql/types.gen' import { MediaItem } from '~/types/mediaitem'
import { CardTopic } from '../../Feed/CardTopic' import { CardTopic } from '../../Feed/CardTopic'
import styles from './AudioHeader.module.scss'
type Props = { type Props = {
title: string title: string
cover?: string cover?: string
@ -19,7 +21,7 @@ export const AudioHeader = (props: Props) => {
return ( return (
<div class={clsx(styles.AudioHeader, { [styles.expandedImage]: expandedImage() })}> <div class={clsx(styles.AudioHeader, { [styles.expandedImage]: expandedImage() })}>
<div class={styles.cover}> <div class={styles.cover}>
<img class={styles.image} src={imageProxy(props.cover)} alt={props.title} /> <Image class={styles.image} src={props.cover} alt={props.title} width={100} />
<Show when={props.cover}> <Show when={props.cover}>
<button type="button" class={styles.expand} onClick={() => setExpandedImage(!expandedImage())}> <button type="button" class={styles.expand} onClick={() => setExpandedImage(!expandedImage())}>
<Icon name="expand-circle" /> <Icon name="expand-circle" />
@ -28,19 +30,19 @@ export const AudioHeader = (props: Props) => {
</div> </div>
<div class={styles.albumInfo}> <div class={styles.albumInfo}>
<Show when={props.topic}> <Show when={props.topic}>
<CardTopic title={props.topic.title} slug={props.topic.slug} /> <CardTopic title={props.topic.title || ''} slug={props.topic.slug} />
</Show> </Show>
<h1>{props.title}</h1> <h1>{props.title}</h1>
<Show when={props.artistData}> <Show when={props.artistData}>
<div class={styles.artistData}> <div class={styles.artistData}>
<Show when={props.artistData?.artist}> <Show when={props.artistData?.artist}>
<div class={styles.item}>{props.artistData.artist}</div> <div class={styles.item}>{props.artistData?.artist || ''}</div>
</Show> </Show>
<Show when={props.artistData?.date}> <Show when={props.artistData?.date}>
<div class={styles.item}>{props.artistData.date}</div> <div class={styles.item}>{props.artistData?.date || ''}</div>
</Show> </Show>
<Show when={props.artistData?.genre}> <Show when={props.artistData?.genre}>
<div class={styles.item}>{props.artistData.genre}</div> <div class={styles.item}>{props.artistData?.genre || ''}</div>
</Show> </Show>
</div> </div>
</Show> </Show>

View File

@ -3,27 +3,32 @@
} }
.playerHeader { .playerHeader {
width: 100%;
display: flex;
justify-content: space-between;
@include media-breakpoint-down(sm) { @include media-breakpoint-down(sm) {
flex-direction: column; flex-direction: column;
} }
width: 100%;
display: flex;
justify-content: space-between;
} }
.playerTitle { .playerTitle {
@include media-breakpoint-down(sm) {
max-width: 100%;
}
max-width: 50%; max-width: 50%;
white-space: nowrap; white-space: nowrap;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
@include media-breakpoint-down(sm) {
max-width: 100%;
}
} }
.playerControls { .playerControls {
@include media-breakpoint-down(sm) {
margin-top: 20px;
margin-left: 0;
}
display: flex; display: flex;
min-width: 160px; min-width: 160px;
align-items: center; align-items: center;
@ -42,16 +47,10 @@
} }
} }
@include media-breakpoint-down(sm) {
margin-top: 20px;
margin-left: 0;
}
.playButton { .playButton {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
width: 40px; width: 40px;
height: 40px; height: 40px;
background: #141414; background: #141414;
@ -108,7 +107,7 @@
position: relative; position: relative;
width: 100%; width: 100%;
cursor: pointer; cursor: pointer;
border-bottom: 2px solid #cccccc; border-bottom: 2px solid #ccc;
} }
.progressFilled { .progressFilled {
@ -126,7 +125,6 @@
position: absolute; position: absolute;
bottom: -10px; bottom: -10px;
right: -8px; right: -8px;
width: 8px; width: 8px;
height: 8px; height: 8px;
border-radius: 50%; border-radius: 50%;
@ -140,7 +138,6 @@
padding-top: 14px; padding-top: 14px;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
font-weight: 500; font-weight: 500;
font-size: 12px; font-size: 12px;
line-height: 16px; line-height: 16px;
@ -157,7 +154,7 @@ $vendors-track: ('::-webkit-slider-runnable-track', '::-moz-range-track', '::-ms
$vendors-thumb: ('::-webkit-slider-thumb', '::-moz-moz-range-thumb', '::-ms-thumb'); $vendors-thumb: ('::-webkit-slider-thumb', '::-moz-moz-range-thumb', '::-ms-thumb');
.volume { .volume {
-webkit-appearance: none; appearance: none;
height: 19px; height: 19px;
float: left; float: left;
outline: none; outline: none;
@ -182,7 +179,7 @@ $vendors-thumb: ('::-webkit-slider-thumb', '::-moz-moz-range-thumb', '::-ms-thum
@each $vendor in $vendors-thumb { @each $vendor in $vendors-thumb {
&#{$vendor} { &#{$vendor} {
position: relative; position: relative;
-webkit-appearance: none; appearance: none;
box-sizing: content-box; box-sizing: content-box;
width: 8px; width: 8px;
height: 8px; height: 8px;
@ -190,7 +187,7 @@ $vendors-thumb: ('::-webkit-slider-thumb', '::-moz-moz-range-thumb', '::-ms-thum
border: 4px solid var(--default-color); border: 4px solid var(--default-color);
background-color: var(--background-color); background-color: var(--background-color);
cursor: pointer; cursor: pointer;
margin: -7px 0 0 0; margin: -7px 0 0;
} }
&:active#{$vendor} { &:active#{$vendor} {
transform: scale(1.2); transform: scale(1.2);
@ -201,6 +198,7 @@ $vendors-thumb: ('::-webkit-slider-thumb', '::-moz-moz-range-thumb', '::-ms-thum
&::-moz-range-progress { &::-moz-range-progress {
background-color: var(--background-color); background-color: var(--background-color);
} }
&::-moz-focus-outer { &::-moz-focus-outer {
border: 0; border: 0;
} }
@ -209,7 +207,6 @@ $vendors-thumb: ('::-webkit-slider-thumb', '::-moz-moz-range-thumb', '::-ms-thum
.playlist { .playlist {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
list-style-type: none; list-style-type: none;
margin: 32px 0 16px; margin: 32px 0 16px;
padding: 0; padding: 0;
@ -222,7 +219,6 @@ $vendors-thumb: ('::-webkit-slider-thumb', '::-moz-moz-range-thumb', '::-ms-thum
.playlistItem { .playlistItem {
display: flex; display: flex;
align-items: center; align-items: center;
min-height: 56px; min-height: 56px;
padding: 16px 0; padding: 16px 0;
} }
@ -256,10 +252,10 @@ $vendors-thumb: ('::-webkit-slider-thumb', '::-moz-moz-range-thumb', '::-ms-thum
@include font-size(1.6rem); @include font-size(1.6rem);
overflow: hidden; overflow: hidden;
max-width: calc(50% - 16px);
text-overflow: ellipsis; text-overflow: ellipsis;
padding: 0; padding: 0;
margin: 0; margin: 0;
max-width: calc(50% - 16px);
border: none; border: none;
&:focus { &:focus {
@ -319,6 +315,7 @@ $vendors-thumb: ('::-webkit-slider-thumb', '::-moz-moz-range-thumb', '::-ms-thum
&:not([disabled]):hover { &:not([disabled]):hover {
border-color: var(--background-color-invert); border-color: var(--background-color-invert);
background: var(--background-color-invert); background: var(--background-color-invert);
img { img {
filter: var(--icon-filter-hover); filter: var(--icon-filter-hover);
} }
@ -334,7 +331,7 @@ $vendors-thumb: ('::-webkit-slider-thumb', '::-moz-moz-range-thumb', '::-ms-thum
display: flex; display: flex;
flex-direction: column; flex-direction: column;
gap: 16px; gap: 16px;
padding: 8px 0 24px 0; padding: 8px 0 24px;
.description, .description,
.lyrics { .lyrics {

View File

@ -1,27 +1,33 @@
import { createEffect, createMemo, createSignal, on, onMount, Show } from 'solid-js' import { Show, createEffect, createMemo, createSignal, on, onMount } from 'solid-js'
import { MediaItem } from '~/types/mediaitem'
import { PlayerHeader } from './PlayerHeader' import { PlayerHeader } from './PlayerHeader'
import { PlayerPlaylist } from './PlayerPlaylist' import { PlayerPlaylist } from './PlayerPlaylist'
import styles from './AudioPlayer.module.scss' import styles from './AudioPlayer.module.scss'
import { MediaItem } from '../../../pages/types'
import { imageProxy } from '../../../utils/imageProxy'
type Props = { type Props = {
media: MediaItem[] media: MediaItem[]
articleSlug?: string articleSlug?: string
body?: string body?: string
editorMode?: boolean editorMode?: boolean
onMediaItemFieldChange?: (index: number, field: keyof MediaItem, value: string) => void onMediaItemFieldChange?: (
onChangeMediaIndex?: (direction: 'up' | 'down', index) => void index: number,
field: keyof MediaItem | string | number | symbol,
value: string
) => void
onChangeMediaIndex?: (direction: 'up' | 'down', index: number) => void
} }
const getFormattedTime = (point) => new Date(point * 1000).toISOString().slice(14, -5) const getFormattedTime = (point: number) => new Date(point * 1000).toISOString().slice(14, -5)
export const AudioPlayer = (props: Props) => { export const AudioPlayer = (props: Props) => {
const audioRef: { current: HTMLAudioElement } = { current: null } let audioRef: HTMLAudioElement | undefined
const gainNodeRef: { current: GainNode } = { current: null } let gainNodeRef: GainNode | undefined
const progressRef: { current: HTMLDivElement } = { current: null } let progressRef: HTMLDivElement | undefined
const audioContextRef: { current: AudioContext } = { current: null } let audioContextRef: AudioContext | undefined
const mouseDownRef: { current: boolean } = { current: false } let mouseDownRef: boolean | undefined
const [currentTrackDuration, setCurrentTrackDuration] = createSignal(0) const [currentTrackDuration, setCurrentTrackDuration] = createSignal(0)
const [currentTime, setCurrentTime] = createSignal(0) const [currentTime, setCurrentTime] = createSignal(0)
@ -29,34 +35,25 @@ export const AudioPlayer = (props: Props) => {
const [isPlaying, setIsPlaying] = createSignal(false) const [isPlaying, setIsPlaying] = createSignal(false)
const currentTack = createMemo(() => props.media[currentTrackIndex()]) const currentTack = createMemo(() => props.media[currentTrackIndex()])
createEffect(on(currentTrackIndex, () => setCurrentTrackDuration(0), { defer: true }))
createEffect(
on(
() => currentTrackIndex(),
() => {
setCurrentTrackDuration(0)
},
{ defer: true }
)
)
const handlePlayMedia = async (trackIndex: number) => { const handlePlayMedia = async (trackIndex: number) => {
setIsPlaying(!isPlaying() || trackIndex !== currentTrackIndex()) setIsPlaying(!isPlaying() || trackIndex !== currentTrackIndex())
setCurrentTrackIndex(trackIndex) setCurrentTrackIndex(trackIndex)
if (audioContextRef.current.state === 'suspended') { if (audioContextRef?.state === 'suspended') {
await audioContextRef.current.resume() await audioContextRef?.resume()
} }
if (isPlaying()) { if (isPlaying()) {
await audioRef.current.play() await audioRef?.play()
} else { } else {
audioRef.current.pause() audioRef?.pause()
} }
} }
const handleVolumeChange = (volume: number) => { const handleVolumeChange = (volume: number) => {
gainNodeRef.current.gain.value = volume if (gainNodeRef) gainNodeRef.gain.value = volume
} }
const handleAudioEnd = () => { const handleAudioEnd = () => {
@ -65,21 +62,22 @@ export const AudioPlayer = (props: Props) => {
return return
} }
audioRef.current.currentTime = 0 if (audioRef) audioRef.currentTime = 0
setIsPlaying(false) setIsPlaying(false)
setCurrentTrackIndex(0) setCurrentTrackIndex(0)
} }
const handleAudioTimeUpdate = () => { const handleAudioTimeUpdate = () => {
setCurrentTime(audioRef.current.currentTime) setCurrentTime(audioRef?.currentTime || 0)
} }
onMount(() => { onMount(() => {
audioContextRef.current = new AudioContext() audioContextRef = new AudioContext()
gainNodeRef.current = audioContextRef.current.createGain() gainNodeRef = audioContextRef.createGain()
if (audioRef) {
const track = audioContextRef.current.createMediaElementSource(audioRef.current) const track = audioContextRef?.createMediaElementSource(audioRef)
track.connect(gainNodeRef.current).connect(audioContextRef.current.destination) track.connect(gainNodeRef).connect(audioContextRef?.destination)
}
}) })
const playPrevTrack = () => { const playPrevTrack = () => {
@ -100,13 +98,18 @@ export const AudioPlayer = (props: Props) => {
setCurrentTrackIndex(newCurrentTrackIndex) setCurrentTrackIndex(newCurrentTrackIndex)
} }
const handleMediaItemFieldChange = (index: number, field: keyof MediaItem, value) => { const handleMediaItemFieldChange = (
props.onMediaItemFieldChange(index, field, value) index: number,
field: keyof MediaItem | string | number | symbol,
value: string
) => {
props.onMediaItemFieldChange?.(index, field, value)
} }
const scrub = (event) => { const scrub = (event: MouseEvent | undefined) => {
audioRef.current.currentTime = if (progressRef && audioRef) {
(event.offsetX / progressRef.current.offsetWidth) * currentTrackDuration() audioRef.currentTime = (event?.offsetX || 0 / progressRef.offsetWidth) * currentTrackDuration()
}
} }
return ( return (
@ -123,11 +126,11 @@ export const AudioPlayer = (props: Props) => {
<div class={styles.timeline}> <div class={styles.timeline}>
<div <div
class={styles.progress} class={styles.progress}
ref={(el) => (progressRef.current = el)} ref={(el) => (progressRef = el)}
onClick={(e) => scrub(e)} onClick={scrub}
onMouseMove={(e) => mouseDownRef.current && scrub(e)} onMouseMove={(e) => mouseDownRef && scrub(e)}
onMouseDown={() => (mouseDownRef.current = true)} onMouseDown={() => (mouseDownRef = true)}
onMouseUp={() => (mouseDownRef.current = false)} onMouseUp={() => (mouseDownRef = false)}
> >
<div <div
class={styles.progressFilled} class={styles.progressFilled}
@ -143,14 +146,13 @@ export const AudioPlayer = (props: Props) => {
</Show> </Show>
</div> </div>
<audio <audio
ref={(el) => (audioRef.current = el)} ref={(el) => (audioRef = el)}
onTimeUpdate={handleAudioTimeUpdate} onTimeUpdate={handleAudioTimeUpdate}
// TEMP SOLUTION for http/https src={currentTack().url.replace('images.discours.io', 'cdn.discours.io')}
src={currentTack().url.startsWith('https') ? currentTack().url : imageProxy(currentTack().url)}
onCanPlay={() => { onCanPlay={() => {
// start to play the next track on src change // start to play the next track on src change
if (isPlaying()) { if (isPlaying() && audioRef) {
audioRef.current.play() audioRef.play()
} }
}} }}
onLoadedMetadata={({ currentTarget }) => setCurrentTrackDuration(currentTarget.duration)} onLoadedMetadata={({ currentTarget }) => setCurrentTrackDuration(currentTarget.duration)}
@ -161,7 +163,7 @@ export const AudioPlayer = (props: Props) => {
<PlayerPlaylist <PlayerPlaylist
editorMode={props.editorMode} editorMode={props.editorMode}
onPlayMedia={handlePlayMedia} onPlayMedia={handlePlayMedia}
onChangeMediaIndex={(direction, index) => props.onChangeMediaIndex(direction, index)} onChangeMediaIndex={(direction, index) => props.onChangeMediaIndex?.(direction, index)}
isPlaying={isPlaying()} isPlaying={isPlaying()}
media={props.media} media={props.media}
currentTrackIndex={currentTrackIndex()} currentTrackIndex={currentTrackIndex()}

View File

@ -1,11 +1,10 @@
import { createSignal, Show } from 'solid-js'
import { clsx } from 'clsx' import { clsx } from 'clsx'
import { Show, createSignal } from 'solid-js'
import { Icon } from '~/components/_shared/Icon'
import { useOutsideClickHandler } from '~/lib/useOutsideClickHandler'
import { useOutsideClickHandler } from '../../../utils/useOutsideClickHandler' import { MediaItem } from '~/types/mediaitem'
import { Icon } from '../../_shared/Icon'
import styles from './AudioPlayer.module.scss' import styles from './AudioPlayer.module.scss'
import { MediaItem } from '../../../pages/types'
type Props = { type Props = {
onPlayMedia: () => void onPlayMedia: () => void
@ -17,10 +16,7 @@ type Props = {
} }
export const PlayerHeader = (props: Props) => { export const PlayerHeader = (props: Props) => {
const volumeContainerRef: { current: HTMLDivElement } = { let volumeContainerRef: HTMLDivElement | undefined
current: null
}
const [isVolumeBarOpened, setIsVolumeBarOpened] = createSignal(false) const [isVolumeBarOpened, setIsVolumeBarOpened] = createSignal(false)
const toggleVolumeBar = () => { const toggleVolumeBar = () => {
@ -65,7 +61,7 @@ export const PlayerHeader = (props: Props) => {
> >
<Icon name="player-arrow" /> <Icon name="player-arrow" />
</button> </button>
<div ref={(el) => (volumeContainerRef.current = el)} class={styles.volumeContainer}> <div ref={(el) => (volumeContainerRef = el)} class={styles.volumeContainer}>
<Show when={isVolumeBarOpened()}> <Show when={isVolumeBarOpened()}>
<input <input
type="range" type="range"
@ -78,7 +74,7 @@ export const PlayerHeader = (props: Props) => {
onChange={({ target }) => props.onVolumeChange(Number(target.value))} onChange={({ target }) => props.onVolumeChange(Number(target.value))}
/> />
</Show> </Show>
<button onClick={toggleVolumeBar} class={styles.volumeButton} role="button" aria-label="Volume"> <button onClick={toggleVolumeBar} class={styles.volumeButton} aria-label="Volume">
<Icon name="volume" /> <Icon name="volume" />
</button> </button>
</div> </div>

View File

@ -1,14 +1,16 @@
import { createSignal, For, Show } from 'solid-js' import { For, Show, createSignal, lazy } from 'solid-js'
import { Icon } from '~/components/_shared/Icon'
import { Popover } from '~/components/_shared/Popover'
import { useLocalize } from '~/context/localize'
import { MediaItem } from '~/types/mediaitem'
import { descFromBody } from '~/utils/meta'
import { SharePopup, getShareUrl } from '../SharePopup' import { SharePopup, getShareUrl } from '../SharePopup'
import { getDescription } from '../../../utils/meta'
import { useLocalize } from '../../../context/localize'
import { Popover } from '../../_shared/Popover'
import { Icon } from '../../_shared/Icon'
import styles from './AudioPlayer.module.scss' import styles from './AudioPlayer.module.scss'
import { GrowingTextarea } from '../../_shared/GrowingTextarea'
import MD from '../MD' const MicroEditor = lazy(() => import('../../Editor/MicroEditor'))
import { MediaItem } from '../../../pages/types' const GrowingTextarea = lazy(() => import('~/components/_shared/GrowingTextarea/GrowingTextarea'))
import SimplifiedEditor from '../../Editor/SimplifiedEditor'
type Props = { type Props = {
media: MediaItem[] media: MediaItem[]
@ -19,20 +21,31 @@ type Props = {
body?: string body?: string
editorMode?: boolean editorMode?: boolean
onMediaItemFieldChange?: (index: number, field: keyof MediaItem, value: string) => void onMediaItemFieldChange?: (index: number, field: keyof MediaItem, value: string) => void
onChangeMediaIndex?: (direction: 'up' | 'down', index) => void onChangeMediaIndex?: (direction: 'up' | 'down', index: number) => void
} }
const _getMediaTitle = (itm: MediaItem, idx: number) => `${idx}. ${itm.artist} - ${itm.title}`
export const PlayerPlaylist = (props: Props) => { export const PlayerPlaylist = (props: Props) => {
const { t } = useLocalize() const { t } = useLocalize()
const [activeEditIndex, setActiveEditIndex] = createSignal(-1) const [activeEditIndex, setActiveEditIndex] = createSignal(-1)
const toggleDropDown = (index) => { const toggleDropDown = (index: number) => {
setActiveEditIndex(activeEditIndex() === index ? -1 : index) setActiveEditIndex(activeEditIndex() === index ? -1 : index)
} }
const handleMediaItemFieldChange = (field: keyof MediaItem, value: string) => { const handleMediaItemFieldChange = (field: keyof MediaItem, value: string) => {
props.onMediaItemFieldChange(activeEditIndex(), field, value) props.onMediaItemFieldChange?.(activeEditIndex(), field, value)
} }
const play = (index: number) => {
props.onPlayMedia(index)
//const mi = props.media[index]
//gtag('event', 'select_item', {
//item_list_id: props.articleSlug,
//item_list_name: getMediaTitle(mi, index),
//items: props.media.map((it, ix) => getMediaTitle(it, ix)),
//})
}
return ( return (
<ul class={styles.playlist}> <ul class={styles.playlist}>
<For each={props.media}> <For each={props.media}>
@ -41,7 +54,7 @@ export const PlayerPlaylist = (props: Props) => {
<div class={styles.playlistItem}> <div class={styles.playlistItem}>
<button <button
class={styles.playlistItemPlayButton} class={styles.playlistItemPlayButton}
onClick={() => props.onPlayMedia(index())} onClick={() => play(index())}
type="button" type="button"
aria-label="Play" aria-label="Play"
> >
@ -52,8 +65,8 @@ export const PlayerPlaylist = (props: Props) => {
when={activeEditIndex() === index() && props.editorMode} when={activeEditIndex() === index() && props.editorMode}
fallback={ fallback={
<> <>
<div class={styles.title}>{mi.title || t('Song title')}</div> <div class={styles.title}>{mi.title || index()}</div>
<div class={styles.artist}>{mi.artist || t('Artist')}</div> <div class={styles.artist}>{mi.artist || ''}</div>
</> </>
} }
> >
@ -76,26 +89,26 @@ export const PlayerPlaylist = (props: Props) => {
<div class={styles.actions}> <div class={styles.actions}>
<Show when={props.editorMode}> <Show when={props.editorMode}>
<Popover content={t('Move up')}> <Popover content={t('Move up')}>
{(triggerRef: (el) => void) => ( {(triggerRef: (el: HTMLElement) => void) => (
<button <button
type="button" type="button"
ref={triggerRef} ref={triggerRef}
class={styles.action} class={styles.action}
disabled={index() === 0} disabled={index() === 0}
onClick={() => props.onChangeMediaIndex('up', index())} onClick={() => props.onChangeMediaIndex?.('up', index())}
> >
<Icon name="up-button" /> <Icon name="up-button" />
</button> </button>
)} )}
</Popover> </Popover>
<Popover content={t('Move down')}> <Popover content={t('Move down')}>
{(triggerRef: (el) => void) => ( {(triggerRef: (el: HTMLElement) => void) => (
<button <button
type="button" type="button"
ref={triggerRef} ref={triggerRef}
class={styles.action} class={styles.action}
disabled={index() === props.media.length - 1} disabled={index() === props.media.length - 1}
onClick={() => props.onChangeMediaIndex('down', index())} onClick={() => props.onChangeMediaIndex?.('down', index())}
> >
<Icon name="up-button" class={styles.moveIconDown} /> <Icon name="up-button" class={styles.moveIconDown} />
</button> </button>
@ -104,7 +117,7 @@ export const PlayerPlaylist = (props: Props) => {
</Show> </Show>
<Show when={(mi.lyrics || mi.body) && !props.editorMode}> <Show when={(mi.lyrics || mi.body) && !props.editorMode}>
<Popover content={t('Show lyrics')}> <Popover content={t('Show lyrics')}>
{(triggerRef: (el) => void) => ( {(triggerRef: (el: HTMLElement) => void) => (
<button ref={triggerRef} type="button" onClick={() => toggleDropDown(index())}> <button ref={triggerRef} type="button" onClick={() => toggleDropDown(index())}>
<Icon name="list" /> <Icon name="list" />
</button> </button>
@ -112,7 +125,7 @@ export const PlayerPlaylist = (props: Props) => {
</Popover> </Popover>
</Show> </Show>
<Popover content={props.editorMode ? t('Edit') : t('Share')}> <Popover content={props.editorMode ? t('Edit') : t('Share')}>
{(triggerRef: (el) => void) => ( {(triggerRef: (el: HTMLElement) => void) => (
<div ref={triggerRef}> <div ref={triggerRef}>
<Show <Show
when={!props.editorMode} when={!props.editorMode}
@ -124,8 +137,8 @@ export const PlayerPlaylist = (props: Props) => {
> >
<SharePopup <SharePopup
title={mi.title} title={mi.title}
description={getDescription(props.body)} description={descFromBody(props.body || '')}
imageUrl={mi.pic} imageUrl={mi.pic || ''}
shareUrl={getShareUrl({ pathname: `/${props.articleSlug}` })} shareUrl={getShareUrl({ pathname: `/${props.articleSlug}` })}
trigger={ trigger={
<div> <div>
@ -146,23 +159,22 @@ export const PlayerPlaylist = (props: Props) => {
<div class={styles.descriptionBlock}> <div class={styles.descriptionBlock}>
<Show when={mi.body}> <Show when={mi.body}>
<div class={styles.description}> <div class={styles.description}>
<MD body={mi.body} /> <div innerHTML={mi.body} />
</div> </div>
</Show> </Show>
<Show when={mi.lyrics}> <Show when={mi.lyrics}>
<div class={styles.lyrics}> <div class={styles.lyrics}>
<MD body={mi.lyrics} /> <div innerHTML={mi.lyrics} />
</div> </div>
</Show> </Show>
</div> </div>
} }
> >
<div class={styles.descriptionBlock}> <div class={styles.descriptionBlock}>
<SimplifiedEditor <MicroEditor
initialContent={mi.body} content={mi.body}
placeholder={`${t('Description')}...`} placeholder={`${t('Description')}...`}
smallHeight={true} onChange={(value: string) => handleMediaItemFieldChange('body', value)}
onChange={(value) => handleMediaItemFieldChange('body', value)}
/> />
<GrowingTextarea <GrowingTextarea
allowEnterKey={true} allowEnterKey={true}

View File

@ -1,6 +1,10 @@
.comment { .comment {
@include media-breakpoint-down(sm) {
padding-right: 0;
}
margin: 0 0 0.5em; margin: 0 0 0.5em;
padding: 1rem; padding: 0 1rem;
transition: background-color 0.3s; transition: background-color 0.3s;
position: relative; position: relative;
list-style: none; list-style: none;
@ -10,15 +14,13 @@
background: rgb(38 56 217 / 5%); background: rgb(38 56 217 / 5%);
} }
@include media-breakpoint-down(sm) {
margin-right: -1.2rem;
}
.comment { .comment {
margin-right: -1rem;
&::before, &::before,
&::after { &::after {
content: ''; content: '';
left: 0; left: -14px;
position: absolute; position: absolute;
} }
@ -26,9 +28,9 @@
border-bottom: 2px solid #ccc; border-bottom: 2px solid #ccc;
border-left: 2px solid #ccc; border-left: 2px solid #ccc;
border-radius: 0 0 0 1.2rem; border-radius: 0 0 0 1.2rem;
top: -1rem; top: -24px;
height: 2.4rem; height: 50px;
width: 1.2rem; width: 12px;
} }
&::after { &::after {
@ -57,24 +59,29 @@
align-items: center; align-items: center;
margin-bottom: 1.4rem; margin-bottom: 1.4rem;
} }
.commentControl:not(.commentControlReply) {
opacity: 0;
}
} }
.commentContent { .commentContent {
padding: 0 1rem 1rem 0;
&:hover { &:hover {
.commentControlReply, .commentControlReply,
.commentControlShare, .commentControlShare,
.commentControlDelete, .commentControlDelete,
.commentControlEdit, .commentControlEdit,
.commentControlComplain { .commentControlComplain,
.commentControl {
opacity: 1; opacity: 1;
} }
} }
}
.commentControls { p:last-child {
@include font-size(1.2rem); margin-bottom: 0;
}
margin-bottom: 0.5em;
} }
.commentControlReply, .commentControlReply,
@ -104,7 +111,7 @@
.commentControl { .commentControl {
border: none; border: none;
color: #696969; color: var(--secondary-color);
cursor: pointer; cursor: pointer;
display: inline-flex; display: inline-flex;
line-height: 1.2; line-height: 1.2;
@ -117,8 +124,8 @@
vertical-align: top; vertical-align: top;
&:hover { &:hover {
background: #000; background: var(--background-color-invert);
color: #fff; color: var(--default-color-invert);
.icon { .icon {
filter: invert(1); filter: invert(1);
@ -172,18 +179,20 @@
@include font-size(1.2rem); @include font-size(1.2rem);
} }
.commentAuthor {
margin-right: 2rem;
}
.articleAuthor { .articleAuthor {
color: #2638d9; @include font-size(1.2rem);
font-size: 12px;
margin-right: 12px; color: var(--blue-500);
margin: 0.3rem 1rem 0;
} }
.articleLink { .articleLink {
@include font-size(1.2rem); @include font-size(1.2rem);
flex: 0 0 50%;
margin-right: 2em;
@include media-breakpoint-down(md) { @include media-breakpoint-down(md) {
margin: 0.3em 0 0.5em; margin: 0.3em 0 0.5em;
} }
@ -196,9 +205,16 @@
overflow: hidden; overflow: hidden;
white-space: nowrap; white-space: nowrap;
} }
flex: 0 0 50%;
margin-right: 2em;
} }
.articleLinkIcon { .articleLinkIcon {
@include media-breakpoint-up(md) {
margin-left: 1em;
}
display: inline-block; display: inline-block;
margin-right: 1em; margin-right: 1em;
vertical-align: middle; vertical-align: middle;
@ -206,6 +222,8 @@
} }
.commentDates { .commentDates {
@include font-size(1.2rem);
flex: 1; flex: 1;
display: flex; display: flex;
gap: 1rem; gap: 1rem;
@ -215,8 +233,6 @@
margin: 0 1em 4px 0; margin: 0 1em 4px 0;
color: rgb(0 0 0 / 30%); color: rgb(0 0 0 / 30%);
@include font-size(1.2rem);
.date { .date {
.icon { .icon {
line-height: 1; line-height: 1;
@ -230,13 +246,13 @@
} }
.commentDetails { .commentDetails {
padding: 1rem 0.2rem 0;
margin-bottom: 1.2rem;
@include media-breakpoint-up(md) { @include media-breakpoint-up(md) {
align-items: center; align-items: center;
display: flex; display: flex;
} }
padding: 1rem 0.2rem 0;
margin-bottom: 1.2rem;
} }
.compactUserpic { .compactUserpic {

View File

@ -1,38 +1,39 @@
import { Show, createMemo, createSignal, For, lazy, Suspense } from 'solid-js' import { A } from '@solidjs/router'
import { clsx } from 'clsx' import { clsx } from 'clsx'
import { getPagePath } from '@nanostores/router' import { For, Show, Suspense, createMemo, createSignal, lazy } from 'solid-js'
import { Icon } from '~/components/_shared/Icon'
import MD from './MD' import { ShowIfAuthenticated } from '~/components/_shared/ShowIfAuthenticated'
import { AuthorCard } from '../Author/AuthorCard' import { useLocalize } from '~/context/localize'
import { Userpic } from '../Author/Userpic' import { useReactions } from '~/context/reactions'
import { CommentRatingControl } from './CommentRatingControl' import { useSession } from '~/context/session'
import { CommentDate } from './CommentDate' import { useSnackbar, useUI } from '~/context/ui'
import { ShowIfAuthenticated } from '../_shared/ShowIfAuthenticated' import deleteReactionMutation from '~/graphql/mutation/core/reaction-destroy'
import { Icon } from '../_shared/Icon' import {
Author,
import { useSession } from '../../context/session' MutationCreate_ReactionArgs,
import { useLocalize } from '../../context/localize' MutationUpdate_ReactionArgs,
import { useReactions } from '../../context/reactions' Reaction,
import { useSnackbar } from '../../context/snackbar' ReactionKind
import { useConfirm } from '../../context/confirm' } from '~/graphql/schema/core.gen'
import { AuthorLink } from '../../Author/AuthorLink'
import { Author, Reaction, ReactionKind } from '../../graphql/types.gen' import { Userpic } from '../../Author/Userpic'
import { router } from '../../stores/router' import { CommentDate } from '../CommentDate'
import { CommentRatingControl } from '../CommentRatingControl'
import styles from './Comment.module.scss' import styles from './Comment.module.scss'
const SimplifiedEditor = lazy(() => import('../Editor/SimplifiedEditor')) const MiniEditor = lazy(() => import('../../Editor/MiniEditor'))
type Props = { type Props = {
comment: Reaction comment: Reaction
compact?: boolean compact?: boolean
isArticleAuthor?: boolean isArticleAuthor?: boolean
sortedComments?: Reaction[] sortedComments?: Reaction[]
lastSeen?: Date lastSeen?: number
class?: string class?: string
showArticleLink?: boolean showArticleLink?: boolean
clickedReply?: (id: number) => void clickedReply?: (id: number) => void
clickedReplyId?: number clickedReplyId?: number
onDelete?: (id: number) => void
} }
export const Comment = (props: Props) => { export const Comment = (props: Props) => {
@ -40,27 +41,22 @@ export const Comment = (props: Props) => {
const [isReplyVisible, setIsReplyVisible] = createSignal(false) const [isReplyVisible, setIsReplyVisible] = createSignal(false)
const [loading, setLoading] = createSignal(false) const [loading, setLoading] = createSignal(false)
const [editMode, setEditMode] = createSignal(false) const [editMode, setEditMode] = createSignal(false)
const [clearEditor, setClearEditor] = createSignal(false) const [editedBody, setEditedBody] = createSignal<string>()
const { session } = useSession() const { session, client } = useSession()
const author = createMemo<Author>(() => session()?.user?.app_data?.profile as Author)
const { createShoutReaction, updateShoutReaction } = useReactions()
const { showConfirm } = useUI()
const { showSnackbar } = useSnackbar()
const canEdit = createMemo(
() =>
Boolean(author()?.id) &&
(props.comment?.created_by?.slug === author()?.slug || session()?.user?.roles?.includes('editor'))
)
const { const body = createMemo(() => (editedBody() ? editedBody()?.trim() : props.comment.body?.trim() || ''))
actions: { createReaction, deleteReaction, updateReaction }
} = useReactions()
const {
actions: { showConfirm }
} = useConfirm()
const {
actions: { showSnackbar }
} = useSnackbar()
const isCommentAuthor = createMemo(() => props.comment.createdBy?.slug === session()?.user?.slug)
const comment = createMemo(() => props.comment)
const body = createMemo(() => (comment().body || '').trim())
const remove = async () => { const remove = async () => {
if (comment()?.id) { if (props.comment?.id) {
try { try {
const isConfirmed = await showConfirm({ const isConfirmed = await showConfirm({
confirmBody: t('Are you sure you want to delete this comment?'), confirmBody: t('Are you sure you want to delete this comment?'),
@ -70,46 +66,68 @@ export const Comment = (props: Props) => {
}) })
if (isConfirmed) { if (isConfirmed) {
await deleteReaction(comment().id) const resp = await client()
?.mutation(deleteReactionMutation, { id: props.comment.id })
.toPromise()
const result = resp?.data?.delete_reaction
const { error } = result
const notificationType = error ? 'error' : 'success'
const notificationMessage = error
? t('Failed to delete comment')
: t('Comment successfully deleted')
await showSnackbar({
type: notificationType,
body: notificationMessage,
duration: 3
})
await showSnackbar({ body: t('Comment successfully deleted') }) if (!error && props.onDelete) {
props.onDelete(props.comment.id)
}
} }
} catch (error) { } catch (error) {
await showSnackbar({ body: 'error' })
console.error('[deleteReaction]', error) console.error('[deleteReaction]', error)
} }
} }
} }
const handleCreate = async (value) => { const handleCreate = async (value: string) => {
try { try {
setLoading(true) setLoading(true)
await createReaction({ await createShoutReaction({
kind: ReactionKind.Comment, reaction: {
replyTo: props.comment.id, kind: ReactionKind.Comment,
body: value, reply_to: props.comment.id,
shout: props.comment.shout.id body: value,
}) shout: props.comment.shout.id
setClearEditor(true) }
} as MutationCreate_ReactionArgs)
setIsReplyVisible(false) setIsReplyVisible(false)
setLoading(false) setLoading(false)
} catch (error) { } catch (error) {
console.error('[handleCreate reaction]:', error) console.error('[handleCreate reaction]:', error)
} }
setClearEditor(false)
} }
const toggleEditMode = () => { const toggleEditMode = () => {
setEditMode((oldEditMode) => !oldEditMode) setEditMode((oldEditMode) => !oldEditMode)
} }
const handleUpdate = async (value) => { const handleUpdate = async (value: string) => {
setLoading(true) setLoading(true)
try { try {
await updateReaction(props.comment.id, { const reaction = await updateShoutReaction({
kind: ReactionKind.Comment, reaction: {
body: value, id: props.comment.id || 0,
shout: props.comment.shout.id kind: ReactionKind.Comment,
}) body: value,
shout: props.comment.shout.id
}
} as MutationUpdate_ReactionArgs)
if (reaction) {
setEditedBody(value)
}
setEditMode(false) setEditMode(false)
setLoading(false) setLoading(false)
} catch (error) { } catch (error) {
@ -117,13 +135,12 @@ export const Comment = (props: Props) => {
} }
} }
const createdAt = new Date(comment()?.createdAt)
return ( return (
<li <li
id={`comment_${comment().id}`} id={`comment_${props.comment.id}`}
class={clsx(styles.comment, props.class, { class={clsx(styles.comment, props.class, {
[styles.isNew]: !isCommentAuthor() && createdAt > props.lastSeen [styles.isNew]:
(props.lastSeen || Date.now()) > (props.comment.updated_at || props.comment.created_at)
})} })}
> >
<Show when={!!body()}> <Show when={!!body()}>
@ -133,28 +150,21 @@ export const Comment = (props: Props) => {
fallback={ fallback={
<div> <div>
<Userpic <Userpic
name={comment().createdBy.name} name={props.comment.created_by.name || ''}
userpic={comment().createdBy.userpic} userpic={props.comment.created_by.pic || ''}
isBig={false}
class={clsx({ class={clsx({
[styles.compactUserpic]: props.compact [styles.compactUserpic]: props.compact
})} })}
/> />
<small> <small>
<a href={`#comment_${comment()?.id}`}>{comment()?.shout.title || ''}</a> <a href={`#comment_${props.comment?.id}`}>{props.comment?.shout.title || ''}</a>
</small> </small>
</div> </div>
} }
> >
<div class={styles.commentDetails}> <div class={styles.commentDetails}>
<div class={styles.commentAuthor}> <div class={styles.commentAuthor}>
<AuthorCard <AuthorLink author={props.comment?.created_by as Author} />
author={comment()?.createdBy as Author}
hideDescription={true}
hideFollow={true}
isComments={true}
hasLink={true}
/>
</div> </div>
<Show when={props.isArticleAuthor}> <Show when={props.isArticleAuthor}>
@ -164,46 +174,36 @@ export const Comment = (props: Props) => {
<Show when={props.showArticleLink}> <Show when={props.showArticleLink}>
<div class={styles.articleLink}> <div class={styles.articleLink}>
<Icon name="arrow-right" class={styles.articleLinkIcon} /> <Icon name="arrow-right" class={styles.articleLinkIcon} />
<a <A href={`${props.comment.shout.slug}?commentId=${props.comment.id}`}>
href={`${getPagePath(router, 'article', { slug: comment().shout.slug })}?commentId=${ {props.comment.shout.title}
comment().id </A>
}`}
>
{comment().shout.title}
</a>
</div> </div>
</Show> </Show>
<CommentDate showOnHover={true} comment={props.comment} isShort={true} />
<CommentDate comment={comment()} isShort={true} /> <CommentRatingControl comment={props.comment} />
<CommentRatingControl comment={comment()} />
</div> </div>
</Show> </Show>
<div class={styles.commentBody}> <div class={styles.commentBody}>
<Show when={editMode()} fallback={<MD body={body()} />}> <Show when={editMode()} fallback={<div innerHTML={body()} />}>
<Suspense fallback={<p>{t('Loading')}</p>}> <Suspense fallback={<p>{t('Loading')}</p>}>
<SimplifiedEditor <MiniEditor
initialContent={comment().body} content={editedBody() || props.comment.body || ''}
submitButtonText={t('Save')}
quoteEnabled={true}
imageEnabled={true}
placeholder={t('Write a comment...')} placeholder={t('Write a comment...')}
onSubmit={(value) => handleUpdate(value)} onSubmit={(value) => handleUpdate(value)}
submitByCtrlEnter={true} onCancel={() => setEditMode(false)}
setClear={clearEditor()}
/> />
</Suspense> </Suspense>
</Show> </Show>
</div> </div>
<Show when={!props.compact}> <Show when={!props.compact}>
<div class={styles.commentControls}> <div>
<ShowIfAuthenticated> <ShowIfAuthenticated>
<button <button
disabled={loading()} disabled={loading()}
onClick={() => { onClick={() => {
setIsReplyVisible(!isReplyVisible()) setIsReplyVisible(!isReplyVisible())
props.clickedReply(props.comment.id) props.clickedReply?.(props.comment.id)
}} }}
class={clsx(styles.commentControl, styles.commentControlReply)} class={clsx(styles.commentControl, styles.commentControlReply)}
> >
@ -211,7 +211,7 @@ export const Comment = (props: Props) => {
{loading() ? t('Loading') : t('Reply')} {loading() ? t('Loading') : t('Reply')}
</button> </button>
</ShowIfAuthenticated> </ShowIfAuthenticated>
<Show when={isCommentAuthor()}> <Show when={canEdit()}>
<button <button
class={clsx(styles.commentControl, styles.commentControlEdit)} class={clsx(styles.commentControl, styles.commentControlEdit)}
onClick={toggleEditMode} onClick={toggleEditMode}
@ -229,7 +229,7 @@ export const Comment = (props: Props) => {
</Show> </Show>
{/*<SharePopup*/} {/*<SharePopup*/}
{/* title={'artile.title'}*/} {/* title={'article.title'}*/}
{/* description={getDescription(body())}*/} {/* description={getDescription(body())}*/}
{/* containerCssClass={stylesHeader.control}*/} {/* containerCssClass={stylesHeader.control}*/}
{/* trigger={*/} {/* trigger={*/}
@ -244,18 +244,15 @@ export const Comment = (props: Props) => {
{/* class={clsx(styles.commentControl, styles.commentControlComplain)}*/} {/* class={clsx(styles.commentControl, styles.commentControlComplain)}*/}
{/* onClick={() => showModal('reportComment')}*/} {/* onClick={() => showModal('reportComment')}*/}
{/*>*/} {/*>*/}
{/* {t('Report')}*/} {/* {t('Complain')}*/}
{/*</button>*/} {/*</button>*/}
</div> </div>
<Show when={isReplyVisible() && props.clickedReplyId === props.comment.id}> <Show when={isReplyVisible() && props.clickedReplyId === props.comment.id}>
<Suspense fallback={<p>{t('Loading')}</p>}> <Suspense fallback={<p>{t('Loading')}</p>}>
<SimplifiedEditor <MiniEditor
quoteEnabled={true}
imageEnabled={true}
placeholder={t('Write a comment...')} placeholder={t('Write a comment...')}
onSubmit={(value) => handleCreate(value)} onSubmit={(value) => handleCreate(value)}
submitByCtrlEnter={true}
/> />
</Suspense> </Suspense>
</Show> </Show>
@ -264,7 +261,7 @@ export const Comment = (props: Props) => {
</Show> </Show>
<Show when={props.sortedComments}> <Show when={props.sortedComments}>
<ul> <ul>
<For each={props.sortedComments.filter((r) => r.replyTo === props.comment.id)}> <For each={props.sortedComments?.filter((r) => r.reply_to === props.comment.id)}>
{(c) => ( {(c) => (
<Comment <Comment
sortedComments={props.sortedComments} sortedComments={props.sortedComments}

View File

@ -0,0 +1 @@
export { Comment } from './Comment'

View File

@ -1,31 +0,0 @@
.commentDates {
color: #9fa1a7;
align-items: center;
align-self: center;
display: flex;
flex: 1;
flex-wrap: wrap;
@include font-size(1.2rem);
font-size: 1.2rem;
justify-content: flex-start;
margin: 0 1em 0 0;
.date {
font-weight: 500;
margin-right: 1rem;
.icon {
line-height: 1;
width: 1rem;
display: inline-block;
opacity: 0.6;
margin-right: 0.5rem;
vertical-align: middle;
}
}
}
.commentDatesLastInRow {
margin-right: 0;
white-space: nowrap;
}

View File

@ -1,37 +0,0 @@
import { Show } from 'solid-js'
import { Icon } from '../_shared/Icon'
import type { Reaction } from '../../graphql/types.gen'
import { formatDate } from '../../utils'
import { useLocalize } from '../../context/localize'
import { clsx } from 'clsx'
import styles from './CommentDate.module.scss'
type Props = {
comment: Reaction
isShort?: boolean
isLastInRow?: boolean
}
export const CommentDate = (props: Props) => {
const { t } = useLocalize()
const formattedDate = (date) => {
const formatDateOptions: Intl.DateTimeFormatOptions = props.isShort
? { month: 'long', day: 'numeric', year: 'numeric' }
: { hour: 'numeric', minute: 'numeric' }
return formatDate(new Date(date), formatDateOptions)
}
return (
<div class={clsx(styles.commentDates, { [styles.commentDatesLastInRow]: props.isLastInRow })}>
<time class={styles.date}>{formattedDate(props.comment.createdAt)}</time>
<Show when={props.comment.updatedAt}>
<time class={styles.date}>
<Icon name="edit" class={styles.icon} />
{t('Edited')} {formattedDate(props.comment.updatedAt)}
</time>
</Show>
</div>
)
}

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