From 8b773e5feddb257b8162ccd7e0c08087bb464e47 Mon Sep 17 00:00:00 2001 From: Untone Date: Thu, 4 Jul 2024 10:51:15 +0300 Subject: [PATCH] refactored-folder-structure+imports-alias --- docs/article.puml | 66 ------------------- docs/i18n.puml | 40 ----------- docs/routing.puml | 24 ------- .../Article/AudioHeader/AudioHeader.tsx | 6 +- .../Article/AudioPlayer/PlayerHeader.tsx | 4 +- .../Article/AudioPlayer/PlayerPlaylist.tsx | 10 +-- src/components/Article/Comment/Comment.tsx | 12 ++-- .../Article/CommentDate/CommentDate.tsx | 4 +- .../Article/CommentRatingControl.tsx | 8 +-- src/components/Article/CommentsTree.tsx | 12 ++-- src/components/Article/FullArticle.tsx | 16 ++--- src/components/Article/ShoutRatingControl.tsx | 8 +-- src/components/AuthGuard/AuthGuard.tsx | 2 +- .../Author/AuthorBadge/AuthorBadge.tsx | 22 +++---- .../Author/AuthorCard/AuthorCard.tsx | 24 +++---- .../Author/AuthorLink/AuthorLink.tsx | 10 +-- src/components/Author/AuthorRatingControl.tsx | 2 +- src/components/Author/AuthorShoutsRating.tsx | 2 +- src/components/Author/Userpic/Userpic.tsx | 6 +- src/components/AuthorsList/AuthorsList.tsx | 2 +- src/components/Discours/Banner.tsx | 2 +- src/components/Discours/Donate.tsx | 2 +- src/components/Discours/Feedback.tsx | 2 +- src/components/Discours/Footer.tsx | 2 +- src/components/Discours/Hero.tsx | 2 +- src/components/Draft/Draft.tsx | 4 +- .../Editor/AudioUploader/AudioUploader.tsx | 6 +- .../Editor/AutoSaveNotice/AutoSaveNotice.tsx | 6 +- .../BubbleMenu/BlockquoteBubbleMenu.tsx | 6 +- .../Editor/BubbleMenu/FigureBubbleMenu.tsx | 8 +-- .../Editor/BubbleMenu/IncutBubbleMenu.tsx | 4 +- src/components/Editor/Editor.tsx | 8 +-- .../EditorFloatingMenu/EditorFloatingMenu.tsx | 8 +-- .../Editor/InlineForm/InlineForm.tsx | 6 +- .../Editor/InsertLinkForm/InsertLinkForm.tsx | 4 +- src/components/Editor/Panel/Panel.tsx | 14 ++-- src/components/Editor/SimplifiedEditor.tsx | 4 +- .../Editor/TextBubbleMenu/TextBubbleMenu.tsx | 6 +- .../Editor/TopicSelect/TopicSelect.tsx | 2 +- .../UploadModalContent/UploadModalContent.tsx | 14 ++-- .../Editor/VideoUploader/VideoUploader.tsx | 8 +-- .../Feed/ArticleCard/ArticleCard.tsx | 16 ++--- src/components/Feed/Beside.tsx | 4 +- .../FeedArticlePopup/FeedArticlePopup.tsx | 10 +-- src/components/Feed/Group.tsx | 2 +- .../Feed/Placeholder/Placeholder.tsx | 6 +- src/components/Feed/Row1.tsx | 2 +- src/components/Feed/Row2.tsx | 2 +- src/components/Feed/Row3.tsx | 2 +- src/components/Feed/Row5.tsx | 2 +- src/components/Feed/RowShort.tsx | 2 +- src/components/Feed/Sidebar/Sidebar.tsx | 8 +-- src/components/Inbox/CreateModalContent.tsx | 6 +- src/components/Inbox/DialogAvatar.tsx | 2 +- src/components/Inbox/DialogCard.tsx | 6 +- src/components/Inbox/DialogHeader.tsx | 2 +- src/components/Inbox/GroupDialogAvatar.tsx | 2 +- src/components/Inbox/InviteUser.tsx | 2 +- src/components/Inbox/Message.tsx | 4 +- src/components/Inbox/MessageActionsPopup.tsx | 2 +- src/components/InlineLoader/InlineLoader.tsx | 2 +- .../Nav/AuthModal/ChangePasswordForm.tsx | 4 +- src/components/Nav/AuthModal/EmailConfirm.tsx | 4 +- src/components/Nav/AuthModal/LoginForm.tsx | 6 +- src/components/Nav/AuthModal/RegisterForm.tsx | 6 +- .../Nav/AuthModal/SendEmailConfirm.tsx | 2 +- .../Nav/AuthModal/SendResetLinkForm.tsx | 6 +- src/components/Nav/AuthModal/index.tsx | 4 +- .../Nav/ConfirmModal/ConfirmModal.tsx | 6 +- src/components/Nav/Header/Header.tsx | 16 ++--- src/components/Nav/HeaderAuth.tsx | 8 +-- src/components/Nav/Modal/Modal.tsx | 4 +- src/components/Nav/ProfilePopup.tsx | 4 +- .../ProfileSettingsNavigation.tsx | 2 +- .../Nav/SearchModal/SearchModal.tsx | 10 +-- .../Nav/SearchModal/SearchResultItem.tsx | 2 +- src/components/Nav/Topics/Topics.tsx | 4 +- .../EmptyMessage/EmptyMessage.tsx | 2 +- .../NotificationView/NotificationGroup.tsx | 10 +-- .../NotificationsPanel/NotificationsPanel.tsx | 10 +-- .../ProfileSettings/ProfileSettings.tsx | 24 +++---- .../TableOfContents/TableOfContents.tsx | 4 +- src/components/Topic/Card.tsx | 10 +-- src/components/Topic/FloorHeader.tsx | 4 +- src/components/Topic/Full.tsx | 10 +-- .../Topic/TopicBadge/TopicBadge.tsx | 14 ++-- .../Views/AllAuthors/AllAuthors.tsx | 20 +++--- src/components/Views/AllTopics/AllTopics.tsx | 20 +++--- src/components/Views/Author/Author.tsx | 30 ++++----- .../Views/EditView/EditSettingsView.tsx | 14 ++-- src/components/Views/EditView/EditView.tsx | 28 ++++---- src/components/Views/Expo/Expo.tsx | 16 ++--- src/components/Views/Feed/Feed.tsx | 32 ++++----- src/components/Views/FeedSettings.tsx | 2 +- src/components/Views/FourOuFour.tsx | 2 +- src/components/Views/Home.tsx | 16 ++--- src/components/Views/Inbox/Inbox.tsx | 16 ++--- .../ProfileSubscriptions.tsx | 14 ++-- .../Views/PublishSettings/PublishSettings.tsx | 18 ++--- src/components/Views/Search.tsx | 8 +-- src/components/Views/Topic.tsx | 27 ++++---- .../_shared/DarkModeToggle/DarkModeToggle.tsx | 2 +- src/components/_shared/DropArea/DropArea.tsx | 10 +-- .../_shared/DropdownSelect/DropdownSelect.tsx | 2 +- .../FollowingButton/FollowingButton.tsx | 2 +- .../FollowingCounters/FollowingCounters.tsx | 4 +- .../_shared/GroupAvatar/GroupAvatar.tsx | 2 +- src/components/_shared/Image/Image.tsx | 2 +- .../_shared/ImageCropper/ImageCropper.tsx | 2 +- .../_shared/InviteMembers/InviteMembers.tsx | 8 +-- src/components/_shared/Lightbox/Lightbox.tsx | 4 +- .../_shared/Newsletter/Newsletter.tsx | 4 +- src/components/_shared/Popup/Popup.tsx | 2 +- .../_shared/SearchField/SearchField.tsx | 2 +- .../_shared/ShareLinks/ShareLinks.tsx | 2 +- .../_shared/ShareModal/ShareModal.tsx | 2 +- .../_shared/ShowIfAuthenticated.tsx | 2 +- .../_shared/SolidSwiper/ArticleCardSwiper.tsx | 2 +- .../_shared/SolidSwiper/EditorSwiper.tsx | 12 ++-- .../_shared/SolidSwiper/ImageSwiper.tsx | 2 +- src/components/_shared/SoonChip/SoonChip.tsx | 2 +- src/components/_shared/TimeAgo/TimeAgo.tsx | 2 +- .../_shared/VideoPlayer/VideoPlayer.tsx | 2 +- .../_shared/VotersList/VotersList.tsx | 2 +- src/{lib => config}/locales/en/keywords.json | 0 .../locales/en/translation.json | 0 src/{lib => config}/locales/ru/keywords.json | 0 .../locales/ru/translation.json | 0 src/config/routes.ts | 38 ----------- src/context/authors.tsx | 8 +-- src/context/connect.tsx | 4 +- src/context/editor.tsx | 6 +- src/context/following.tsx | 4 +- src/context/inbox.tsx | 4 +- src/context/localize.tsx | 2 +- src/context/notifications.tsx | 2 +- src/context/profile.tsx | 2 +- src/context/reactions.tsx | 2 +- src/context/topics.tsx | 4 +- src/{lib => graphql}/api/private.ts | 0 src/{lib => graphql}/api/public.ts | 0 src/graphql/client/core.ts | 0 src/routes/(home).tsx | 2 +- src/routes/[...slug].tsx | 4 +- src/routes/author/(all).tsx | 2 +- src/routes/author/[slug]/[...tab].tsx | 2 +- src/routes/edit/new.tsx | 4 +- src/routes/expo/[...layout].tsx | 10 +-- src/routes/feed/[...feed].tsx | 6 +- src/routes/guide/(guide).tsx | 10 +-- src/routes/guide/debate.tsx | 6 +- src/routes/guide/manifest.tsx | 14 ++-- src/routes/guide/partners.tsx | 6 +- src/routes/guide/principles.tsx | 10 +-- src/routes/guide/projects.tsx | 4 +- src/routes/guide/support.tsx | 8 +-- src/routes/guide/terms.tsx | 6 +- src/routes/guide/thanks.tsx | 6 +- src/routes/profile/(settings).tsx | 8 +-- src/routes/profile/security.tsx | 22 +++---- src/routes/profile/subs.tsx | 8 +-- src/routes/search/(search).tsx | 12 ++-- src/routes/topic/(all).tsx | 12 ++-- src/routes/topic/[...slug].tsx | 2 +- src/types/server.d.ts | 8 +-- src/utils/dummyFilter.ts | 2 +- src/utils/getRandomTopicsFromArray.ts | 2 +- src/utils/groupby.ts | 2 +- src/{lib => utils}/i18next.ts | 4 +- src/utils/isAuthor.ts | 2 +- src/utils/meta.ts | 2 +- src/utils/sortby.ts | 2 +- src/utils/translate.ts | 2 +- 173 files changed, 546 insertions(+), 717 deletions(-) delete mode 100644 docs/article.puml delete mode 100644 docs/i18n.puml delete mode 100644 docs/routing.puml rename src/{lib => config}/locales/en/keywords.json (100%) rename src/{lib => config}/locales/en/translation.json (100%) rename src/{lib => config}/locales/ru/keywords.json (100%) rename src/{lib => config}/locales/ru/translation.json (100%) delete mode 100644 src/config/routes.ts rename src/{lib => graphql}/api/private.ts (100%) rename src/{lib => graphql}/api/public.ts (100%) delete mode 100644 src/graphql/client/core.ts rename src/{lib => utils}/i18next.ts (90%) diff --git a/docs/article.puml b/docs/article.puml deleted file mode 100644 index 3897e1e6..00000000 --- a/docs/article.puml +++ /dev/null @@ -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 -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 -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 -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 - diff --git a/docs/i18n.puml b/docs/i18n.puml deleted file mode 100644 index 6c04fce1..00000000 --- a/docs/i18n.puml +++ /dev/null @@ -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 - diff --git a/docs/routing.puml b/docs/routing.puml deleted file mode 100644 index 7ace8f8e..00000000 --- a/docs/routing.puml +++ /dev/null @@ -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 - diff --git a/src/components/Article/AudioHeader/AudioHeader.tsx b/src/components/Article/AudioHeader/AudioHeader.tsx index 68454c97..aa36ca28 100644 --- a/src/components/Article/AudioHeader/AudioHeader.tsx +++ b/src/components/Article/AudioHeader/AudioHeader.tsx @@ -1,11 +1,11 @@ import { clsx } from 'clsx' import { Show, createSignal } from 'solid-js' +import { Icon } from '~/components/_shared/Icon' +import { Image } from '~/components/_shared/Image' +import { Topic } from '~/graphql/schema/core.gen' import { MediaItem } from '~/types/mediaitem' -import { Topic } from '../../../graphql/schema/core.gen' import { CardTopic } from '../../Feed/CardTopic' -import { Icon } from '../../_shared/Icon' -import { Image } from '../../_shared/Image' import styles from './AudioHeader.module.scss' diff --git a/src/components/Article/AudioPlayer/PlayerHeader.tsx b/src/components/Article/AudioPlayer/PlayerHeader.tsx index 2570682b..11d430e1 100644 --- a/src/components/Article/AudioPlayer/PlayerHeader.tsx +++ b/src/components/Article/AudioPlayer/PlayerHeader.tsx @@ -1,7 +1,7 @@ import { clsx } from 'clsx' import { Show, createSignal } from 'solid-js' -import { useOutsideClickHandler } from '../../../utils/useOutsideClickHandler' -import { Icon } from '../../_shared/Icon' +import { Icon } from '~/components/_shared/Icon' +import { useOutsideClickHandler } from '~/utils/useOutsideClickHandler' import { MediaItem } from '~/types/mediaitem' import styles from './AudioPlayer.module.scss' diff --git a/src/components/Article/AudioPlayer/PlayerPlaylist.tsx b/src/components/Article/AudioPlayer/PlayerPlaylist.tsx index 6766b82e..b278c3d4 100644 --- a/src/components/Article/AudioPlayer/PlayerPlaylist.tsx +++ b/src/components/Article/AudioPlayer/PlayerPlaylist.tsx @@ -1,16 +1,16 @@ 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 { useLocalize } from '../../../context/localize' -import { getDescription } from '../../../utils/meta' -import { Icon } from '../../_shared/Icon' -import { Popover } from '../../_shared/Popover' +import { getDescription } from '~/utils/meta' import { SharePopup, getShareUrl } from '../SharePopup' import styles from './AudioPlayer.module.scss' const SimplifiedEditor = lazy(() => import('../../Editor/SimplifiedEditor')) -const GrowingTextarea = lazy(() => import('../../_shared/GrowingTextarea/GrowingTextarea')) +const GrowingTextarea = lazy(() => import('~/components/_shared/GrowingTextarea/GrowingTextarea')) type Props = { media: MediaItem[] diff --git a/src/components/Article/Comment/Comment.tsx b/src/components/Article/Comment/Comment.tsx index 552ca361..18693fa2 100644 --- a/src/components/Article/Comment/Comment.tsx +++ b/src/components/Article/Comment/Comment.tsx @@ -1,23 +1,23 @@ import { A } from '@solidjs/router' import { clsx } from 'clsx' import { For, Show, Suspense, createMemo, createSignal, lazy } from 'solid-js' +import { Icon } from '~/components/_shared/Icon' +import { ShowIfAuthenticated } from '~/components/_shared/ShowIfAuthenticated' import { useGraphQL } from '~/context/graphql' +import { useLocalize } from '~/context/localize' +import { useReactions } from '~/context/reactions' +import { useSession } from '~/context/session' import { useSnackbar, useUI } from '~/context/ui' import deleteReactionMutation from '~/graphql/mutation/core/reaction-destroy' -import { useLocalize } from '../../../context/localize' -import { useReactions } from '../../../context/reactions' -import { useSession } from '../../../context/session' import { Author, MutationCreate_ReactionArgs, MutationUpdate_ReactionArgs, Reaction, ReactionKind -} from '../../../graphql/schema/core.gen' +} from '~/graphql/schema/core.gen' import { AuthorLink } from '../../Author/AuthorLink' import { Userpic } from '../../Author/Userpic' -import { Icon } from '../../_shared/Icon' -import { ShowIfAuthenticated } from '../../_shared/ShowIfAuthenticated' import { CommentDate } from '../CommentDate' import { CommentRatingControl } from '../CommentRatingControl' import styles from './Comment.module.scss' diff --git a/src/components/Article/CommentDate/CommentDate.tsx b/src/components/Article/CommentDate/CommentDate.tsx index ffcdcb99..295376c1 100644 --- a/src/components/Article/CommentDate/CommentDate.tsx +++ b/src/components/Article/CommentDate/CommentDate.tsx @@ -1,8 +1,8 @@ -import type { Reaction } from '../../../graphql/schema/core.gen' +import type { Reaction } from '~/graphql/schema/core.gen' import { clsx } from 'clsx' -import { useLocalize } from '../../../context/localize' +import { useLocalize } from '~/context/localize' import styles from './CommentDate.module.scss' diff --git a/src/components/Article/CommentRatingControl.tsx b/src/components/Article/CommentRatingControl.tsx index 7d60e9bb..08c8d555 100644 --- a/src/components/Article/CommentRatingControl.tsx +++ b/src/components/Article/CommentRatingControl.tsx @@ -2,11 +2,11 @@ import { clsx } from 'clsx' import { createMemo } from 'solid-js' import { useFeed } from '~/context/feed' +import { useLocalize } from '~/context/localize' +import { useReactions } from '~/context/reactions' +import { useSession } from '~/context/session' import { useSnackbar } from '~/context/ui' -import { useLocalize } from '../../context/localize' -import { useReactions } from '../../context/reactions' -import { useSession } from '../../context/session' -import { Reaction, ReactionKind } from '../../graphql/schema/core.gen' +import { Reaction, ReactionKind } from '~/graphql/schema/core.gen' import { Popup } from '../_shared/Popup' import { VotersList } from '../_shared/VotersList' diff --git a/src/components/Article/CommentsTree.tsx b/src/components/Article/CommentsTree.tsx index e942060b..13881d8e 100644 --- a/src/components/Article/CommentsTree.tsx +++ b/src/components/Article/CommentsTree.tsx @@ -1,18 +1,18 @@ import { clsx } from 'clsx' import { For, Show, createMemo, createSignal, lazy, onMount } from 'solid-js' -import { useLocalize } from '../../context/localize' -import { useReactions } from '../../context/reactions' -import { useSession } from '../../context/session' -import { Author, Reaction, ReactionKind, ReactionSort } from '../../graphql/schema/core.gen' -import { byCreated, byStat } from '../../utils/sortby' +import { useLocalize } from '~/context/localize' +import { useReactions } from '~/context/reactions' +import { useSession } from '~/context/session' +import { Author, Reaction, ReactionKind, ReactionSort } from '~/graphql/schema/core.gen' +import { byCreated, byStat } from '~/utils/sortby' import { Button } from '../_shared/Button' import { ShowIfAuthenticated } from '../_shared/ShowIfAuthenticated' import { Comment } from './Comment' import { SortFunction } from '~/context/authors' -import { useFeed } from '../../context/feed' +import { useFeed } from '~/context/feed' import styles from './Article.module.scss' const SimplifiedEditor = lazy(() => import('../Editor/SimplifiedEditor')) diff --git a/src/components/Article/FullArticle.tsx b/src/components/Article/FullArticle.tsx index 86f49c0b..9b8b74c7 100644 --- a/src/components/Article/FullArticle.tsx +++ b/src/components/Article/FullArticle.tsx @@ -5,16 +5,16 @@ import { For, Show, createEffect, createMemo, createSignal, on, onCleanup, onMou import { isServer } from 'solid-js/web' import { Link, Meta } from '@solidjs/meta' +import { useLocalize } from '~/context/localize' +import { useReactions } from '~/context/reactions' +import { useSession } from '~/context/session' import { DEFAULT_HEADER_OFFSET, useUI } from '~/context/ui' +import type { Author, Maybe, Shout, Topic } from '~/graphql/schema/core.gen' import { MediaItem } from '~/types/mediaitem' -import { useLocalize } from '../../context/localize' -import { useReactions } from '../../context/reactions' -import { useSession } from '../../context/session' -import type { Author, Maybe, Shout, Topic } from '../../graphql/schema/core.gen' -import { capitalize } from '../../utils/capitalize' -import { getImageUrl, getOpenGraphImageUrl } from '../../utils/getImageUrl' -import { getDescription, getKeywords } from '../../utils/meta' -import { isCyrillic } from '../../utils/translate' +import { capitalize } from '~/utils/capitalize' +import { getImageUrl, getOpenGraphImageUrl } from '~/utils/getImageUrl' +import { getDescription, getKeywords } from '~/utils/meta' +import { isCyrillic } from '~/utils/translate' import { AuthorBadge } from '../Author/AuthorBadge' import { CardTopic } from '../Feed/CardTopic' import { FeedArticlePopup } from '../Feed/FeedArticlePopup' diff --git a/src/components/Article/ShoutRatingControl.tsx b/src/components/Article/ShoutRatingControl.tsx index e7671b72..b1302ed1 100644 --- a/src/components/Article/ShoutRatingControl.tsx +++ b/src/components/Article/ShoutRatingControl.tsx @@ -1,11 +1,11 @@ import { clsx } from 'clsx' import { Show, createMemo, createSignal } from 'solid-js' import { useFeed } from '~/context/feed' +import { useLocalize } from '~/context/localize' +import { useReactions } from '~/context/reactions' +import { useSession } from '~/context/session' import type { Author } from '~/graphql/schema/core.gen' -import { useLocalize } from '../../context/localize' -import { useReactions } from '../../context/reactions' -import { useSession } from '../../context/session' -import { ReactionKind, Shout } from '../../graphql/schema/core.gen' +import { ReactionKind, Shout } from '~/graphql/schema/core.gen' import { Icon } from '../_shared/Icon' import { Popup } from '../_shared/Popup' import { VotersList } from '../_shared/VotersList' diff --git a/src/components/AuthGuard/AuthGuard.tsx b/src/components/AuthGuard/AuthGuard.tsx index 2224f9f9..3390fbe3 100644 --- a/src/components/AuthGuard/AuthGuard.tsx +++ b/src/components/AuthGuard/AuthGuard.tsx @@ -1,7 +1,7 @@ import { useSearchParams } from '@solidjs/router' import { JSX, Show, createEffect, createMemo, on } from 'solid-js' +import { useSession } from '~/context/session' import { useUI } from '~/context/ui' -import { useSession } from '../../context/session' type Props = { children: JSX.Element diff --git a/src/components/Author/AuthorBadge/AuthorBadge.tsx b/src/components/Author/AuthorBadge/AuthorBadge.tsx index 007a5556..4029d8ff 100644 --- a/src/components/Author/AuthorBadge/AuthorBadge.tsx +++ b/src/components/Author/AuthorBadge/AuthorBadge.tsx @@ -2,18 +2,18 @@ import { clsx } from 'clsx' import { Match, Show, Switch, createEffect, createMemo, createSignal, on } from 'solid-js' import { useNavigate, useSearchParams } from '@solidjs/router' +import { Button } from '~/components/_shared/Button' +import { CheckButton } from '~/components/_shared/CheckButton' +import { ConditionalWrapper } from '~/components/_shared/ConditionalWrapper' +import { FollowingButton } from '~/components/_shared/FollowingButton' +import { Icon } from '~/components/_shared/Icon' +import { useFollowing } from '~/context/following' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' +import { Author, FollowingEntity } from '~/graphql/schema/core.gen' import { mediaMatches } from '~/utils/media-query' -import { useFollowing } from '../../../context/following' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' -import { Author, FollowingEntity } from '../../../graphql/schema/core.gen' -import { translit } from '../../../utils/ru2en' -import { isCyrillic } from '../../../utils/translate' -import { Button } from '../../_shared/Button' -import { CheckButton } from '../../_shared/CheckButton' -import { ConditionalWrapper } from '../../_shared/ConditionalWrapper' -import { FollowingButton } from '../../_shared/FollowingButton' -import { Icon } from '../../_shared/Icon' +import { translit } from '~/utils/ru2en' +import { isCyrillic } from '~/utils/translate' import { Userpic } from '../Userpic' import styles from './AuthorBadge.module.scss' diff --git a/src/components/Author/AuthorCard/AuthorCard.tsx b/src/components/Author/AuthorCard/AuthorCard.tsx index 3c32b2b4..2d05107d 100644 --- a/src/components/Author/AuthorCard/AuthorCard.tsx +++ b/src/components/Author/AuthorCard/AuthorCard.tsx @@ -1,25 +1,25 @@ -import type { Author, Community } from '../../../graphql/schema/core.gen' +import type { Author, Community } from '~/graphql/schema/core.gen' import { clsx } from 'clsx' import { For, Show, createEffect, createMemo, createSignal, onMount } from 'solid-js' -import { FollowsFilter, useFollowing } from '../../../context/following' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' -import { FollowingEntity, Topic } from '../../../graphql/schema/core.gen' -import { isAuthor } from '../../../utils/isAuthor' -import { translit } from '../../../utils/ru2en' -import { isCyrillic } from '../../../utils/translate' +import { Button } from '~/components/_shared/Button' +import { FollowingCounters } from '~/components/_shared/FollowingCounters/FollowingCounters' +import { ShowOnlyOnClient } from '~/components/_shared/ShowOnlyOnClient' +import { FollowsFilter, useFollowing } from '~/context/following' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' +import { FollowingEntity, Topic } from '~/graphql/schema/core.gen' +import { isAuthor } from '~/utils/isAuthor' +import { translit } from '~/utils/ru2en' +import { isCyrillic } from '~/utils/translate' import { SharePopup, getShareUrl } from '../../Article/SharePopup' import { Modal } from '../../Nav/Modal' import { TopicBadge } from '../../Topic/TopicBadge' -import { Button } from '../../_shared/Button' -import { FollowingCounters } from '../../_shared/FollowingCounters/FollowingCounters' -import { ShowOnlyOnClient } from '../../_shared/ShowOnlyOnClient' import { AuthorBadge } from '../AuthorBadge' import { Userpic } from '../Userpic' import { useNavigate, useSearchParams } from '@solidjs/router' -import stylesButton from '../../_shared/Button/Button.module.scss' +import stylesButton from '~/components/_shared/Button/Button.module.scss' import styles from './AuthorCard.module.scss' type Props = { diff --git a/src/components/Author/AuthorLink/AuthorLink.tsx b/src/components/Author/AuthorLink/AuthorLink.tsx index d075d731..cfac518e 100644 --- a/src/components/Author/AuthorLink/AuthorLink.tsx +++ b/src/components/Author/AuthorLink/AuthorLink.tsx @@ -1,11 +1,11 @@ import { clsx } from 'clsx' import { createMemo } from 'solid-js' -import { useLocalize } from '../../../context/localize' -import { Author } from '../../../graphql/schema/core.gen' -import { capitalize } from '../../../utils/capitalize' -import { translit } from '../../../utils/ru2en' -import { isCyrillic } from '../../../utils/translate' +import { useLocalize } from '~/context/localize' +import { Author } from '~/graphql/schema/core.gen' +import { capitalize } from '~/utils/capitalize' +import { translit } from '~/utils/ru2en' +import { isCyrillic } from '~/utils/translate' import { Userpic } from '../Userpic' import styles from './AhtorLink.module.scss' diff --git a/src/components/Author/AuthorRatingControl.tsx b/src/components/Author/AuthorRatingControl.tsx index 85c7079b..5220b9ea 100644 --- a/src/components/Author/AuthorRatingControl.tsx +++ b/src/components/Author/AuthorRatingControl.tsx @@ -1,4 +1,4 @@ -import type { Author } from '../../graphql/schema/core.gen' +import type { Author } from '~/graphql/schema/core.gen' import { clsx } from 'clsx' import { Show, createSignal } from 'solid-js' diff --git a/src/components/Author/AuthorShoutsRating.tsx b/src/components/Author/AuthorShoutsRating.tsx index 02f23e3c..4c30bb0d 100644 --- a/src/components/Author/AuthorShoutsRating.tsx +++ b/src/components/Author/AuthorShoutsRating.tsx @@ -1,4 +1,4 @@ -import type { Author } from '../../graphql/schema/core.gen' +import type { Author } from '~/graphql/schema/core.gen' import { clsx } from 'clsx' import { createMemo } from 'solid-js' diff --git a/src/components/Author/Userpic/Userpic.tsx b/src/components/Author/Userpic/Userpic.tsx index 3cfd1152..4233f0c5 100644 --- a/src/components/Author/Userpic/Userpic.tsx +++ b/src/components/Author/Userpic/Userpic.tsx @@ -1,9 +1,9 @@ import { clsx } from 'clsx' import { Show, createMemo } from 'solid-js' -import { ConditionalWrapper } from '../../_shared/ConditionalWrapper' -import { Image } from '../../_shared/Image' -import { Loading } from '../../_shared/Loading' +import { ConditionalWrapper } from '~/components/_shared/ConditionalWrapper' +import { Image } from '~/components/_shared/Image' +import { Loading } from '~/components/_shared/Loading' import styles from './Userpic.module.scss' diff --git a/src/components/AuthorsList/AuthorsList.tsx b/src/components/AuthorsList/AuthorsList.tsx index cabc14be..be9ee978 100644 --- a/src/components/AuthorsList/AuthorsList.tsx +++ b/src/components/AuthorsList/AuthorsList.tsx @@ -2,9 +2,9 @@ import { clsx } from 'clsx' import { For, Show, createEffect, createSignal, on } from 'solid-js' import { useAuthors } from '~/context/authors' import { useGraphQL } from '~/context/graphql' +import { useLocalize } from '~/context/localize' import loadAuthorsByQuery from '~/graphql/query/core/authors-load-by' import { Author } from '~/graphql/schema/core.gen' -import { useLocalize } from '../../context/localize' import { AuthorBadge } from '../Author/AuthorBadge' import { InlineLoader } from '../InlineLoader' import { Button } from '../_shared/Button' diff --git a/src/components/Discours/Banner.tsx b/src/components/Discours/Banner.tsx index 125cf5ca..572e93a8 100644 --- a/src/components/Discours/Banner.tsx +++ b/src/components/Discours/Banner.tsx @@ -1,7 +1,7 @@ import { clsx } from 'clsx' +import { useLocalize } from '~/context/localize' import { useUI } from '~/context/ui' -import { useLocalize } from '../../context/localize' import { Image } from '../_shared/Image' import styles from './Banner.module.scss' diff --git a/src/components/Discours/Donate.tsx b/src/components/Discours/Donate.tsx index 52b255fc..15445f41 100644 --- a/src/components/Discours/Donate.tsx +++ b/src/components/Discours/Donate.tsx @@ -1,8 +1,8 @@ import { clsx } from 'clsx' import { createSignal, onMount } from 'solid-js' +import { useLocalize } from '~/context/localize' import { useSnackbar, useUI } from '~/context/ui' -import { useLocalize } from '../../context/localize' import styles from './Donate.module.scss' diff --git a/src/components/Discours/Feedback.tsx b/src/components/Discours/Feedback.tsx index 161a8f18..145ff30a 100644 --- a/src/components/Discours/Feedback.tsx +++ b/src/components/Discours/Feedback.tsx @@ -1,5 +1,5 @@ +import { useLocalize } from '~/context/localize' import { useUI } from '~/context/ui' -import { useLocalize } from '../../context/localize' import { Button } from '../_shared/Button' export const Feedback = () => { diff --git a/src/components/Discours/Footer.tsx b/src/components/Discours/Footer.tsx index 37c4a424..834578a2 100644 --- a/src/components/Discours/Footer.tsx +++ b/src/components/Discours/Footer.tsx @@ -1,6 +1,6 @@ import { clsx } from 'clsx' import { For, createSignal, onMount } from 'solid-js' -import { useLocalize } from '../../context/localize' +import { useLocalize } from '~/context/localize' import { Icon } from '../_shared/Icon' import { Newsletter } from '../_shared/Newsletter' import styles from './Footer.module.scss' diff --git a/src/components/Discours/Hero.tsx b/src/components/Discours/Hero.tsx index 29f32c20..9f5d667a 100644 --- a/src/components/Discours/Hero.tsx +++ b/src/components/Discours/Hero.tsx @@ -1,5 +1,5 @@ +import { useLocalize } from '~/context/localize' import { useUI } from '~/context/ui' -import { useLocalize } from '../../context/localize' import { useSearchParams } from '@solidjs/router' import styles from './Hero.module.scss' diff --git a/src/components/Draft/Draft.tsx b/src/components/Draft/Draft.tsx index 784ce128..1821dfaf 100644 --- a/src/components/Draft/Draft.tsx +++ b/src/components/Draft/Draft.tsx @@ -1,8 +1,8 @@ import { clsx } from 'clsx' +import { useLocalize } from '~/context/localize' import { useSnackbar, useUI } from '~/context/ui' -import { useLocalize } from '../../context/localize' -import type { Shout } from '../../graphql/schema/core.gen' +import type { Shout } from '~/graphql/schema/core.gen' import { Icon } from '../_shared/Icon' import { A } from '@solidjs/router' diff --git a/src/components/Editor/AudioUploader/AudioUploader.tsx b/src/components/Editor/AudioUploader/AudioUploader.tsx index fcd7691d..ebc00864 100644 --- a/src/components/Editor/AudioUploader/AudioUploader.tsx +++ b/src/components/Editor/AudioUploader/AudioUploader.tsx @@ -1,11 +1,11 @@ import { clsx } from 'clsx' import { Show } from 'solid-js' +import { DropArea } from '~/components/_shared/DropArea' +import { useLocalize } from '~/context/localize' import { MediaItem } from '~/types/mediaitem' -import { useLocalize } from '../../../context/localize' -import { composeMediaItems } from '../../../utils/composeMediaItems' +import { composeMediaItems } from '~/utils/composeMediaItems' import { AudioPlayer } from '../../Article/AudioPlayer' -import { DropArea } from '../../_shared/DropArea' // import { Buffer } from 'node:buffer' import styles from './AudioUploader.module.scss' diff --git a/src/components/Editor/AutoSaveNotice/AutoSaveNotice.tsx b/src/components/Editor/AutoSaveNotice/AutoSaveNotice.tsx index 956d5735..0b1b9cab 100644 --- a/src/components/Editor/AutoSaveNotice/AutoSaveNotice.tsx +++ b/src/components/Editor/AutoSaveNotice/AutoSaveNotice.tsx @@ -1,8 +1,6 @@ import { clsx } from 'clsx' - -import { useLocalize } from '../../../context/localize' -import { Loading } from '../../_shared/Loading' - +import { Loading } from '~/components/_shared/Loading' +import { useLocalize } from '~/context/localize' import styles from './AutoSaveNotice.module.scss' type Props = { diff --git a/src/components/Editor/BubbleMenu/BlockquoteBubbleMenu.tsx b/src/components/Editor/BubbleMenu/BlockquoteBubbleMenu.tsx index b25809c5..4d1b4f2e 100644 --- a/src/components/Editor/BubbleMenu/BlockquoteBubbleMenu.tsx +++ b/src/components/Editor/BubbleMenu/BlockquoteBubbleMenu.tsx @@ -1,8 +1,8 @@ import type { Editor } from '@tiptap/core' -import { useLocalize } from '../../../context/localize' -import { Icon } from '../../_shared/Icon' -import { Popover } from '../../_shared/Popover' +import { Icon } from '~/components/_shared/Icon' +import { Popover } from '~/components/_shared/Popover' +import { useLocalize } from '~/context/localize' import styles from './BubbleMenu.module.scss' diff --git a/src/components/Editor/BubbleMenu/FigureBubbleMenu.tsx b/src/components/Editor/BubbleMenu/FigureBubbleMenu.tsx index 2facc7ee..5654b874 100644 --- a/src/components/Editor/BubbleMenu/FigureBubbleMenu.tsx +++ b/src/components/Editor/BubbleMenu/FigureBubbleMenu.tsx @@ -1,11 +1,11 @@ import type { Editor } from '@tiptap/core' +import { Icon } from '~/components/_shared/Icon' +import { Popover } from '~/components/_shared/Popover' +import { useLocalize } from '~/context/localize' import { UploadedFile } from '~/types/upload' -import { useLocalize } from '../../../context/localize' -import { renderUploadedImage } from '../../../utils/renderUploadedImage' +import { renderUploadedImage } from '~/utils/renderUploadedImage' import { Modal } from '../../Nav/Modal' -import { Icon } from '../../_shared/Icon' -import { Popover } from '../../_shared/Popover' import { UploadModalContent } from '../UploadModalContent' import { useUI } from '~/context/ui' diff --git a/src/components/Editor/BubbleMenu/IncutBubbleMenu.tsx b/src/components/Editor/BubbleMenu/IncutBubbleMenu.tsx index d07ddc6f..01517729 100644 --- a/src/components/Editor/BubbleMenu/IncutBubbleMenu.tsx +++ b/src/components/Editor/BubbleMenu/IncutBubbleMenu.tsx @@ -3,8 +3,8 @@ import type { Editor } from '@tiptap/core' import { clsx } from 'clsx' import { For, Show, createSignal } from 'solid-js' -import { useLocalize } from '../../../context/localize' -import { Icon } from '../../_shared/Icon' +import { Icon } from '~/components/_shared/Icon' +import { useLocalize } from '~/context/localize' import styles from './BubbleMenu.module.scss' diff --git a/src/components/Editor/Editor.tsx b/src/components/Editor/Editor.tsx index 2321a682..b223c3f1 100644 --- a/src/components/Editor/Editor.tsx +++ b/src/components/Editor/Editor.tsx @@ -30,11 +30,11 @@ import { createTiptapEditor, useEditorHTML } from 'solid-tiptap' import uniqolor from 'uniqolor' import { Doc } from 'yjs' +import { useEditorContext } from '~/context/editor' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' import { useSnackbar } from '~/context/ui' -import { useEditorContext } from '../../context/editor' -import { useLocalize } from '../../context/localize' -import { useSession } from '../../context/session' -import { handleImageUpload } from '../../utils/handleImageUpload' +import { handleImageUpload } from '~/utils/handleImageUpload' import { BlockquoteBubbleMenu, FigureBubbleMenu, IncutBubbleMenu } from './BubbleMenu' import { EditorFloatingMenu } from './EditorFloatingMenu' diff --git a/src/components/Editor/EditorFloatingMenu/EditorFloatingMenu.tsx b/src/components/Editor/EditorFloatingMenu/EditorFloatingMenu.tsx index cdcc774f..fe1907bf 100644 --- a/src/components/Editor/EditorFloatingMenu/EditorFloatingMenu.tsx +++ b/src/components/Editor/EditorFloatingMenu/EditorFloatingMenu.tsx @@ -1,13 +1,13 @@ import type { Editor } from '@tiptap/core' import { Show, createEffect, createSignal } from 'solid-js' +import { Icon } from '~/components/_shared/Icon' +import { useLocalize } from '~/context/localize' import { useUI } from '~/context/ui' import { UploadedFile } from '~/types/upload' -import { useLocalize } from '../../../context/localize' -import { renderUploadedImage } from '../../../utils/renderUploadedImage' -import { useOutsideClickHandler } from '../../../utils/useOutsideClickHandler' +import { renderUploadedImage } from '~/utils/renderUploadedImage' +import { useOutsideClickHandler } from '~/utils/useOutsideClickHandler' import { Modal } from '../../Nav/Modal' -import { Icon } from '../../_shared/Icon' import { InlineForm } from '../InlineForm' import { UploadModalContent } from '../UploadModalContent' import { Menu } from './Menu' diff --git a/src/components/Editor/InlineForm/InlineForm.tsx b/src/components/Editor/InlineForm/InlineForm.tsx index 21707315..2eaf983f 100644 --- a/src/components/Editor/InlineForm/InlineForm.tsx +++ b/src/components/Editor/InlineForm/InlineForm.tsx @@ -1,9 +1,9 @@ import { clsx } from 'clsx' import { createSignal, onMount } from 'solid-js' -import { useLocalize } from '../../../context/localize' -import { Icon } from '../../_shared/Icon' -import { Popover } from '../../_shared/Popover' +import { Icon } from '~/components/_shared/Icon' +import { Popover } from '~/components/_shared/Popover' +import { useLocalize } from '~/context/localize' import styles from './InlineForm.module.scss' diff --git a/src/components/Editor/InsertLinkForm/InsertLinkForm.tsx b/src/components/Editor/InsertLinkForm/InsertLinkForm.tsx index de051726..b409b6dd 100644 --- a/src/components/Editor/InsertLinkForm/InsertLinkForm.tsx +++ b/src/components/Editor/InsertLinkForm/InsertLinkForm.tsx @@ -1,8 +1,8 @@ import { Editor } from '@tiptap/core' import { createEditorTransaction } from 'solid-tiptap' -import { useLocalize } from '../../../context/localize' -import { validateUrl } from '../../../utils/validateUrl' +import { useLocalize } from '~/context/localize' +import { validateUrl } from '~/utils/validateUrl' import { InlineForm } from '../InlineForm' type Props = { diff --git a/src/components/Editor/Panel/Panel.tsx b/src/components/Editor/Panel/Panel.tsx index 57ba8c57..152ee574 100644 --- a/src/components/Editor/Panel/Panel.tsx +++ b/src/components/Editor/Panel/Panel.tsx @@ -3,14 +3,14 @@ import { Show, createSignal } from 'solid-js' import { useEditorHTML } from 'solid-tiptap' import Typograf from 'typograf' +import { Button } from '~/components/_shared/Button' +import { DarkModeToggle } from '~/components/_shared/DarkModeToggle' +import { Icon } from '~/components/_shared/Icon' +import { useEditorContext } from '~/context/editor' +import { useLocalize } from '~/context/localize' import { useUI } from '~/context/ui' -import { useEditorContext } from '../../../context/editor' -import { useLocalize } from '../../../context/localize' -import { useEscKeyDownHandler } from '../../../utils/useEscKeyDownHandler' -import { useOutsideClickHandler } from '../../../utils/useOutsideClickHandler' -import { Button } from '../../_shared/Button' -import { DarkModeToggle } from '../../_shared/DarkModeToggle' -import { Icon } from '../../_shared/Icon' +import { useEscKeyDownHandler } from '~/utils/useEscKeyDownHandler' +import { useOutsideClickHandler } from '~/utils/useOutsideClickHandler' import { A } from '@solidjs/router' import styles from './Panel.module.scss' diff --git a/src/components/Editor/SimplifiedEditor.tsx b/src/components/Editor/SimplifiedEditor.tsx index e0b5dd24..0141d2b6 100644 --- a/src/components/Editor/SimplifiedEditor.tsx +++ b/src/components/Editor/SimplifiedEditor.tsx @@ -20,9 +20,9 @@ import { useEditorIsFocused } from 'solid-tiptap' +import { useEditorContext } from '~/context/editor' +import { useLocalize } from '~/context/localize' import { UploadedFile } from '~/types/upload' -import { useEditorContext } from '../../context/editor' -import { useLocalize } from '../../context/localize' import { Modal } from '../Nav/Modal' import { Button } from '../_shared/Button' import { Icon } from '../_shared/Icon' diff --git a/src/components/Editor/TextBubbleMenu/TextBubbleMenu.tsx b/src/components/Editor/TextBubbleMenu/TextBubbleMenu.tsx index 176fff95..633fa63e 100644 --- a/src/components/Editor/TextBubbleMenu/TextBubbleMenu.tsx +++ b/src/components/Editor/TextBubbleMenu/TextBubbleMenu.tsx @@ -4,9 +4,9 @@ import { clsx } from 'clsx' import { Match, Show, Switch, createEffect, createSignal, lazy, onCleanup, onMount } from 'solid-js' import { createEditorTransaction } from 'solid-tiptap' -import { useLocalize } from '../../../context/localize' -import { Icon } from '../../_shared/Icon' -import { Popover } from '../../_shared/Popover' +import { Icon } from '~/components/_shared/Icon' +import { Popover } from '~/components/_shared/Popover' +import { useLocalize } from '~/context/localize' import { InsertLinkForm } from '../InsertLinkForm' import styles from './TextBubbleMenu.module.scss' diff --git a/src/components/Editor/TopicSelect/TopicSelect.tsx b/src/components/Editor/TopicSelect/TopicSelect.tsx index e7ec1364..a250f705 100644 --- a/src/components/Editor/TopicSelect/TopicSelect.tsx +++ b/src/components/Editor/TopicSelect/TopicSelect.tsx @@ -1,7 +1,7 @@ import { clsx } from 'clsx' import { For, Show, createSignal } from 'solid-js' +import { useLocalize } from '~/context/localize' import type { Topic } from '~/graphql/schema/core.gen' -import { useLocalize } from '../../../context/localize' import styles from './TopicSelect.module.scss' type TopicSelectProps = { diff --git a/src/components/Editor/UploadModalContent/UploadModalContent.tsx b/src/components/Editor/UploadModalContent/UploadModalContent.tsx index 432a8170..ad09765e 100644 --- a/src/components/Editor/UploadModalContent/UploadModalContent.tsx +++ b/src/components/Editor/UploadModalContent/UploadModalContent.tsx @@ -2,15 +2,15 @@ import { UploadFile, createDropzone, createFileUploader } from '@solid-primitive import { clsx } from 'clsx' import { Show, createSignal } from 'solid-js' +import { Button } from '~/components/_shared/Button' +import { Icon } from '~/components/_shared/Icon' +import { Loading } from '~/components/_shared/Loading' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' import { useUI } from '~/context/ui' import { UploadedFile } from '~/types/upload' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' -import { handleImageUpload } from '../../../utils/handleImageUpload' -import { verifyImg } from '../../../utils/verifyImg' -import { Button } from '../../_shared/Button' -import { Icon } from '../../_shared/Icon' -import { Loading } from '../../_shared/Loading' +import { handleImageUpload } from '~/utils/handleImageUpload' +import { verifyImg } from '~/utils/verifyImg' import { InlineForm } from '../InlineForm' import styles from './UploadModalContent.module.scss' diff --git a/src/components/Editor/VideoUploader/VideoUploader.tsx b/src/components/Editor/VideoUploader/VideoUploader.tsx index 8244d7da..1413c0c4 100644 --- a/src/components/Editor/VideoUploader/VideoUploader.tsx +++ b/src/components/Editor/VideoUploader/VideoUploader.tsx @@ -2,11 +2,11 @@ import { createDropzone } from '@solid-primitives/upload' import { clsx } from 'clsx' import { For, Show, createSignal } from 'solid-js' +import { VideoPlayer } from '~/components/_shared/VideoPlayer' +import { useLocalize } from '~/context/localize' import { useSnackbar } from '~/context/ui' -import { useLocalize } from '../../../context/localize' -import { composeMediaItems } from '../../../utils/composeMediaItems' -import { validateUrl } from '../../../utils/validateUrl' -import { VideoPlayer } from '../../_shared/VideoPlayer' +import { composeMediaItems } from '~/utils/composeMediaItems' +import { validateUrl } from '~/utils/validateUrl' import { MediaItem } from '~/types/mediaitem' import styles from './VideoUploader.module.scss' diff --git a/src/components/Feed/ArticleCard/ArticleCard.tsx b/src/components/Feed/ArticleCard/ArticleCard.tsx index c6621624..a7e66adc 100644 --- a/src/components/Feed/ArticleCard/ArticleCard.tsx +++ b/src/components/Feed/ArticleCard/ArticleCard.tsx @@ -1,19 +1,19 @@ import { A, useNavigate, useSearchParams } from '@solidjs/router' import { clsx } from 'clsx' import { Accessor, For, Show, createMemo, createSignal } from 'solid-js' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' -import type { Author, Maybe, Shout, Topic } from '../../../graphql/schema/core.gen' -import { capitalize } from '../../../utils/capitalize' -import { getDescription } from '../../../utils/meta' +import { Icon } from '~/components/_shared/Icon' +import { Image } from '~/components/_shared/Image' +import { Popover } from '~/components/_shared/Popover' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' +import type { Author, Maybe, Shout, Topic } from '~/graphql/schema/core.gen' +import { capitalize } from '~/utils/capitalize' +import { getDescription } from '~/utils/meta' import { CoverImage } from '../../Article/CoverImage' import { SharePopup, getShareUrl } from '../../Article/SharePopup' import { ShoutRatingControl } from '../../Article/ShoutRatingControl' import { AuthorLink } from '../../Author/AuthorLink' import stylesHeader from '../../Nav/Header/Header.module.scss' -import { Icon } from '../../_shared/Icon' -import { Image } from '../../_shared/Image' -import { Popover } from '../../_shared/Popover' import { CardTopic } from '../CardTopic' import { FeedArticlePopup } from '../FeedArticlePopup' import styles from './ArticleCard.module.scss' diff --git a/src/components/Feed/Beside.tsx b/src/components/Feed/Beside.tsx index 7c1e01fe..772054a8 100644 --- a/src/components/Feed/Beside.tsx +++ b/src/components/Feed/Beside.tsx @@ -1,10 +1,10 @@ // TODO: additional entities list column + article -import type { Author, Shout, Topic } from '../../graphql/schema/core.gen' +import type { Author, Shout, Topic } from '~/graphql/schema/core.gen' import { clsx } from 'clsx' import { For, Show } from 'solid-js' -import { useLocalize } from '../../context/localize' +import { useLocalize } from '~/context/localize' import { AuthorBadge } from '../Author/AuthorBadge' import { TopicCard } from '../Topic/Card' import { Icon } from '../_shared/Icon' diff --git a/src/components/Feed/FeedArticlePopup/FeedArticlePopup.tsx b/src/components/Feed/FeedArticlePopup/FeedArticlePopup.tsx index f5f1c06f..1aaf587b 100644 --- a/src/components/Feed/FeedArticlePopup/FeedArticlePopup.tsx +++ b/src/components/Feed/FeedArticlePopup/FeedArticlePopup.tsx @@ -1,12 +1,12 @@ -import type { PopupProps } from '../../_shared/Popup' +import type { PopupProps } from '~/components/_shared/Popup' import { clsx } from 'clsx' import { Show, createSignal } from 'solid-js' -import { useLocalize } from '../../../context/localize' -import { Icon } from '../../_shared/Icon' -import { Popup } from '../../_shared/Popup' -import { SoonChip } from '../../_shared/SoonChip' +import { Icon } from '~/components/_shared/Icon' +import { Popup } from '~/components/_shared/Popup' +import { SoonChip } from '~/components/_shared/SoonChip' +import { useLocalize } from '~/context/localize' import styles from './FeedArticlePopup.module.scss' diff --git a/src/components/Feed/Group.tsx b/src/components/Feed/Group.tsx index 8efd45b4..ceffa7f1 100644 --- a/src/components/Feed/Group.tsx +++ b/src/components/Feed/Group.tsx @@ -1,5 +1,5 @@ import type { JSX } from 'solid-js/jsx-runtime' -import type { Shout } from '../../graphql/schema/core.gen' +import type { Shout } from '~/graphql/schema/core.gen' import { For, Show } from 'solid-js' diff --git a/src/components/Feed/Placeholder/Placeholder.tsx b/src/components/Feed/Placeholder/Placeholder.tsx index 5d0e6d1d..495af7b9 100644 --- a/src/components/Feed/Placeholder/Placeholder.tsx +++ b/src/components/Feed/Placeholder/Placeholder.tsx @@ -1,9 +1,9 @@ import { clsx } from 'clsx' import { For, Show, createMemo } from 'solid-js' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' -import { Icon } from '../../_shared/Icon' +import { Icon } from '~/components/_shared/Icon' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' import styles from './Placeholder.module.scss' type ProfileLink = { diff --git a/src/components/Feed/Row1.tsx b/src/components/Feed/Row1.tsx index 41deb490..8fa819e9 100644 --- a/src/components/Feed/Row1.tsx +++ b/src/components/Feed/Row1.tsx @@ -1,4 +1,4 @@ -import type { Shout } from '../../graphql/schema/core.gen' +import type { Shout } from '~/graphql/schema/core.gen' import { Show } from 'solid-js' diff --git a/src/components/Feed/Row2.tsx b/src/components/Feed/Row2.tsx index 2c927570..4d757ef7 100644 --- a/src/components/Feed/Row2.tsx +++ b/src/components/Feed/Row2.tsx @@ -1,4 +1,4 @@ -import type { Shout } from '../../graphql/schema/core.gen' +import type { Shout } from '~/graphql/schema/core.gen' import { For, Show, createEffect, createSignal } from 'solid-js' diff --git a/src/components/Feed/Row3.tsx b/src/components/Feed/Row3.tsx index 12433206..1de498d1 100644 --- a/src/components/Feed/Row3.tsx +++ b/src/components/Feed/Row3.tsx @@ -1,5 +1,5 @@ import type { JSX } from 'solid-js/jsx-runtime' -import type { Shout } from '../../graphql/schema/core.gen' +import type { Shout } from '~/graphql/schema/core.gen' import { For, Show } from 'solid-js' diff --git a/src/components/Feed/Row5.tsx b/src/components/Feed/Row5.tsx index 34d82d60..d2db45bb 100644 --- a/src/components/Feed/Row5.tsx +++ b/src/components/Feed/Row5.tsx @@ -1,4 +1,4 @@ -import type { Shout } from '../../graphql/schema/core.gen' +import type { Shout } from '~/graphql/schema/core.gen' import { ArticleCard } from './ArticleCard' diff --git a/src/components/Feed/RowShort.tsx b/src/components/Feed/RowShort.tsx index 6188b270..1f1a9315 100644 --- a/src/components/Feed/RowShort.tsx +++ b/src/components/Feed/RowShort.tsx @@ -1,4 +1,4 @@ -import type { Shout } from '../../graphql/schema/core.gen' +import type { Shout } from '~/graphql/schema/core.gen' import { For } from 'solid-js' diff --git a/src/components/Feed/Sidebar/Sidebar.tsx b/src/components/Feed/Sidebar/Sidebar.tsx index 27c7744f..01f83d31 100644 --- a/src/components/Feed/Sidebar/Sidebar.tsx +++ b/src/components/Feed/Sidebar/Sidebar.tsx @@ -2,12 +2,12 @@ import { clsx } from 'clsx' import { For, Show, createSignal } from 'solid-js' import { A, useMatch } from '@solidjs/router' +import { Icon } from '~/components/_shared/Icon' import { useFeed } from '~/context/feed' -import { useFollowing } from '../../../context/following' -import { useLocalize } from '../../../context/localize' -import { Author } from '../../../graphql/schema/core.gen' +import { useFollowing } from '~/context/following' +import { useLocalize } from '~/context/localize' +import { Author } from '~/graphql/schema/core.gen' import { Userpic } from '../../Author/Userpic' -import { Icon } from '../../_shared/Icon' import styles from './Sidebar.module.scss' export const Sidebar = () => { diff --git a/src/components/Inbox/CreateModalContent.tsx b/src/components/Inbox/CreateModalContent.tsx index a91755ca..ad0bc77e 100644 --- a/src/components/Inbox/CreateModalContent.tsx +++ b/src/components/Inbox/CreateModalContent.tsx @@ -1,9 +1,9 @@ import { For, createEffect, createSignal } from 'solid-js' +import { useInbox } from '~/context/inbox' +import { useLocalize } from '~/context/localize' import { useUI } from '~/context/ui' -import { useInbox } from '../../context/inbox' -import { useLocalize } from '../../context/localize' -import type { Author } from '../../graphql/schema/core.gen' +import type { Author } from '~/graphql/schema/core.gen' import InviteUser from './InviteUser' import styles from './CreateModalContent.module.scss' diff --git a/src/components/Inbox/DialogAvatar.tsx b/src/components/Inbox/DialogAvatar.tsx index 3a40e751..094ccd7d 100644 --- a/src/components/Inbox/DialogAvatar.tsx +++ b/src/components/Inbox/DialogAvatar.tsx @@ -1,7 +1,7 @@ import { clsx } from 'clsx' import { Show, createMemo } from 'solid-js' -import { getImageUrl } from '../../utils/getImageUrl' +import { getImageUrl } from '~/utils/getImageUrl' import './DialogCard.module.scss' import styles from './DialogAvatar.module.scss' diff --git a/src/components/Inbox/DialogCard.tsx b/src/components/Inbox/DialogCard.tsx index e63bdf8a..e1f7c3e4 100644 --- a/src/components/Inbox/DialogCard.tsx +++ b/src/components/Inbox/DialogCard.tsx @@ -1,10 +1,10 @@ -import type { ChatMember } from '../../graphql/schema/chat.gen' +import type { ChatMember } from '~/graphql/schema/chat.gen' import { clsx } from 'clsx' import { Match, Show, Switch, createMemo } from 'solid-js' -import { useLocalize } from '../../context/localize' -import { Author } from '../../graphql/schema/core.gen' +import { useLocalize } from '~/context/localize' +import { Author } from '~/graphql/schema/core.gen' import { AuthorBadge } from '../Author/AuthorBadge' import DialogAvatar from './DialogAvatar' diff --git a/src/components/Inbox/DialogHeader.tsx b/src/components/Inbox/DialogHeader.tsx index 5b2df4ca..8a92ba52 100644 --- a/src/components/Inbox/DialogHeader.tsx +++ b/src/components/Inbox/DialogHeader.tsx @@ -1,4 +1,4 @@ -import type { Chat, ChatMember } from '../../graphql/schema/chat.gen' +import type { Chat, ChatMember } from '~/graphql/schema/chat.gen' import DialogCard from './DialogCard' diff --git a/src/components/Inbox/GroupDialogAvatar.tsx b/src/components/Inbox/GroupDialogAvatar.tsx index b949fe6d..b0a366ed 100644 --- a/src/components/Inbox/GroupDialogAvatar.tsx +++ b/src/components/Inbox/GroupDialogAvatar.tsx @@ -1,4 +1,4 @@ -import type { ChatMember } from '../../graphql/schema/chat.gen' +import type { ChatMember } from '~/graphql/schema/chat.gen' import { clsx } from 'clsx' import { For } from 'solid-js' diff --git a/src/components/Inbox/InviteUser.tsx b/src/components/Inbox/InviteUser.tsx index 0caf4ce4..c06c42b7 100644 --- a/src/components/Inbox/InviteUser.tsx +++ b/src/components/Inbox/InviteUser.tsx @@ -1,4 +1,4 @@ -import type { Author } from '../../graphql/schema/core.gen' +import type { Author } from '~/graphql/schema/core.gen' import { Icon } from '../_shared/Icon' diff --git a/src/components/Inbox/Message.tsx b/src/components/Inbox/Message.tsx index 61548fc5..75b7136f 100644 --- a/src/components/Inbox/Message.tsx +++ b/src/components/Inbox/Message.tsx @@ -1,9 +1,9 @@ -import type { ChatMember, Message as MessageType } from '../../graphql/schema/chat.gen' +import type { ChatMember, Message as MessageType } from '~/graphql/schema/chat.gen' import { clsx } from 'clsx' import { Show, createSignal } from 'solid-js' -import { useLocalize } from '../../context/localize' +import { useLocalize } from '~/context/localize' import { Icon } from '../_shared/Icon' import DialogAvatar from './DialogAvatar' diff --git a/src/components/Inbox/MessageActionsPopup.tsx b/src/components/Inbox/MessageActionsPopup.tsx index 76e54f71..fed7b881 100644 --- a/src/components/Inbox/MessageActionsPopup.tsx +++ b/src/components/Inbox/MessageActionsPopup.tsx @@ -2,7 +2,7 @@ import type { PopupProps } from '../_shared/Popup' import { For, createEffect, createSignal } from 'solid-js' -import { useLocalize } from '../../context/localize' +import { useLocalize } from '~/context/localize' import { Popup } from '../_shared/Popup' export type MessageActionType = 'reply' | 'copy' | 'pin' | 'forward' | 'select' | 'delete' diff --git a/src/components/InlineLoader/InlineLoader.tsx b/src/components/InlineLoader/InlineLoader.tsx index 335e1f82..d05e9af7 100644 --- a/src/components/InlineLoader/InlineLoader.tsx +++ b/src/components/InlineLoader/InlineLoader.tsx @@ -1,4 +1,4 @@ -import { useLocalize } from '../../context/localize' +import { useLocalize } from '~/context/localize' import { Loading } from '../_shared/Loading' import styles from './InlineLoader.module.scss' diff --git a/src/components/Nav/AuthModal/ChangePasswordForm.tsx b/src/components/Nav/AuthModal/ChangePasswordForm.tsx index a2c0a129..84b190c4 100644 --- a/src/components/Nav/AuthModal/ChangePasswordForm.tsx +++ b/src/components/Nav/AuthModal/ChangePasswordForm.tsx @@ -1,9 +1,9 @@ import { clsx } from 'clsx' import { JSX, Show, createSignal } from 'solid-js' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' import { useUI } from '~/context/ui' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' import { PasswordField } from './PasswordField' import { useSearchParams } from '@solidjs/router' diff --git a/src/components/Nav/AuthModal/EmailConfirm.tsx b/src/components/Nav/AuthModal/EmailConfirm.tsx index 1766d3ef..9529bc0c 100644 --- a/src/components/Nav/AuthModal/EmailConfirm.tsx +++ b/src/components/Nav/AuthModal/EmailConfirm.tsx @@ -1,9 +1,9 @@ import { clsx } from 'clsx' import { Show, createEffect, createSignal } from 'solid-js' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' import { useUI } from '~/context/ui' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' import { email, setEmail } from './sharedLogic' diff --git a/src/components/Nav/AuthModal/LoginForm.tsx b/src/components/Nav/AuthModal/LoginForm.tsx index 1d4a1825..b6cff004 100644 --- a/src/components/Nav/AuthModal/LoginForm.tsx +++ b/src/components/Nav/AuthModal/LoginForm.tsx @@ -1,10 +1,10 @@ import { clsx } from 'clsx' import { JSX, Show, createSignal } from 'solid-js' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' import { useSnackbar, useUI } from '~/context/ui' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' -import { validateEmail } from '../../../utils/validateEmail' +import { validateEmail } from '~/utils/validateEmail' import { AuthModalHeader } from './AuthModalHeader' import { PasswordField } from './PasswordField' diff --git a/src/components/Nav/AuthModal/RegisterForm.tsx b/src/components/Nav/AuthModal/RegisterForm.tsx index ecbb13ea..70e7502a 100644 --- a/src/components/Nav/AuthModal/RegisterForm.tsx +++ b/src/components/Nav/AuthModal/RegisterForm.tsx @@ -3,10 +3,10 @@ import type { JSX } from 'solid-js' import { Show, createMemo, createSignal } from 'solid-js' import { useSearchParams } from '@solidjs/router' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' import { useUI } from '~/context/ui' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' -import { validateEmail } from '../../../utils/validateEmail' +import { validateEmail } from '~/utils/validateEmail' import { AuthModalHeader } from './AuthModalHeader' import { PasswordField } from './PasswordField' import { SocialProviders } from './SocialProviders' diff --git a/src/components/Nav/AuthModal/SendEmailConfirm.tsx b/src/components/Nav/AuthModal/SendEmailConfirm.tsx index b2f03778..97f9e677 100644 --- a/src/components/Nav/AuthModal/SendEmailConfirm.tsx +++ b/src/components/Nav/AuthModal/SendEmailConfirm.tsx @@ -1,7 +1,7 @@ import { clsx } from 'clsx' +import { useLocalize } from '~/context/localize' import { useUI } from '~/context/ui' -import { useLocalize } from '../../../context/localize' import styles from './AuthModal.module.scss' diff --git a/src/components/Nav/AuthModal/SendResetLinkForm.tsx b/src/components/Nav/AuthModal/SendResetLinkForm.tsx index 29f5a9cf..076bcb1d 100644 --- a/src/components/Nav/AuthModal/SendResetLinkForm.tsx +++ b/src/components/Nav/AuthModal/SendResetLinkForm.tsx @@ -1,9 +1,9 @@ import { clsx } from 'clsx' import { JSX, Show, createSignal, onMount } from 'solid-js' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' -import { validateEmail } from '../../../utils/validateEmail' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' +import { validateEmail } from '~/utils/validateEmail' import { email, setEmail } from './sharedLogic' import { useSearchParams } from '@solidjs/router' diff --git a/src/components/Nav/AuthModal/index.tsx b/src/components/Nav/AuthModal/index.tsx index cc88dff9..1c3e29b8 100644 --- a/src/components/Nav/AuthModal/index.tsx +++ b/src/components/Nav/AuthModal/index.tsx @@ -2,9 +2,9 @@ import { clsx } from 'clsx' import { Component, Show, createEffect, createMemo } from 'solid-js' import { Dynamic } from 'solid-js/web' +import { useLocalize } from '~/context/localize' import { AuthModalSource, useUI } from '~/context/ui' -import { useLocalize } from '../../../context/localize' -import { isMobile } from '../../../utils/media-query' +import { isMobile } from '~/utils/media-query' import { ChangePasswordForm } from './ChangePasswordForm' import { EmailConfirm } from './EmailConfirm' import { LoginForm } from './LoginForm' diff --git a/src/components/Nav/ConfirmModal/ConfirmModal.tsx b/src/components/Nav/ConfirmModal/ConfirmModal.tsx index d3c565c1..79f3cfca 100644 --- a/src/components/Nav/ConfirmModal/ConfirmModal.tsx +++ b/src/components/Nav/ConfirmModal/ConfirmModal.tsx @@ -1,6 +1,6 @@ -import { useLocalize } from '../../../context/localize' -import { useUI } from '../../../context/ui' -import { Button } from '../../_shared/Button' +import { Button } from '~/components/_shared/Button' +import { useLocalize } from '~/context/localize' +import { useUI } from '~/context/ui' import styles from './ConfirmModal.module.scss' diff --git a/src/components/Nav/Header/Header.tsx b/src/components/Nav/Header/Header.tsx index a95b78d3..49bb8517 100644 --- a/src/components/Nav/Header/Header.tsx +++ b/src/components/Nav/Header/Header.tsx @@ -1,16 +1,16 @@ import { A, useLocation, useNavigate, useSearchParams } from '@solidjs/router' import { clsx } from 'clsx' import { For, Show, createEffect, createMemo, createSignal, onCleanup, onMount } from 'solid-js' +import { Icon } from '~/components/_shared/Icon' +import { Newsletter } from '~/components/_shared/Newsletter' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' +import { useTopics } from '~/context/topics' import { useUI } from '~/context/ui' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' -import { useTopics } from '../../../context/topics' -import type { Topic } from '../../../graphql/schema/core.gen' -import { getRandomTopicsFromArray } from '../../../utils/getRandomTopicsFromArray' -import { getDescription } from '../../../utils/meta' +import type { Topic } from '~/graphql/schema/core.gen' +import { getRandomTopicsFromArray } from '~/utils/getRandomTopicsFromArray' +import { getDescription } from '~/utils/meta' import { SharePopup, getShareUrl } from '../../Article/SharePopup' -import { Icon } from '../../_shared/Icon' -import { Newsletter } from '../../_shared/Newsletter' import { AuthModal } from '../AuthModal' import { ConfirmModal } from '../ConfirmModal' import { HeaderAuth } from '../HeaderAuth' diff --git a/src/components/Nav/HeaderAuth.tsx b/src/components/Nav/HeaderAuth.tsx index fdd2737d..d968fad7 100644 --- a/src/components/Nav/HeaderAuth.tsx +++ b/src/components/Nav/HeaderAuth.tsx @@ -1,11 +1,11 @@ import { clsx } from 'clsx' import { Show, createMemo, createSignal, onCleanup, onMount } from 'solid-js' +import { useEditorContext } from '~/context/editor' +import { useLocalize } from '~/context/localize' +import { useNotifications } from '~/context/notifications' +import { useSession } from '~/context/session' import { useUI } from '~/context/ui' import type { Author } from '~/graphql/schema/core.gen' -import { useEditorContext } from '../../context/editor' -import { useLocalize } from '../../context/localize' -import { useNotifications } from '../../context/notifications' -import { useSession } from '../../context/session' import { Userpic } from '../Author/Userpic' import { Button } from '../_shared/Button' import { Icon } from '../_shared/Icon' diff --git a/src/components/Nav/Modal/Modal.tsx b/src/components/Nav/Modal/Modal.tsx index e9261522..4843c2ca 100644 --- a/src/components/Nav/Modal/Modal.tsx +++ b/src/components/Nav/Modal/Modal.tsx @@ -1,10 +1,10 @@ import { clsx } from 'clsx' import type { JSX } from 'solid-js' import { Show } from 'solid-js' +import { Icon } from '~/components/_shared/Icon' import { useUI } from '~/context/ui' import { isPortrait } from '~/utils/media-query' -import { useEscKeyDownHandler } from '../../../utils/useEscKeyDownHandler' -import { Icon } from '../../_shared/Icon' +import { useEscKeyDownHandler } from '~/utils/useEscKeyDownHandler' import styles from './Modal.module.scss' interface Props { diff --git a/src/components/Nav/ProfilePopup.tsx b/src/components/Nav/ProfilePopup.tsx index 1ff3289d..f3f5fce1 100644 --- a/src/components/Nav/ProfilePopup.tsx +++ b/src/components/Nav/ProfilePopup.tsx @@ -1,8 +1,8 @@ import { clsx } from 'clsx' import { createMemo } from 'solid-js' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' import type { Author } from '~/graphql/schema/core.gen' -import { useLocalize } from '../../context/localize' -import { useSession } from '../../context/session' import { Icon } from '../_shared/Icon' import type { PopupProps } from '../_shared/Popup' import { Popup } from '../_shared/Popup' diff --git a/src/components/Nav/ProfileSettingsNavigation/ProfileSettingsNavigation.tsx b/src/components/Nav/ProfileSettingsNavigation/ProfileSettingsNavigation.tsx index 3f5d6318..253b1329 100644 --- a/src/components/Nav/ProfileSettingsNavigation/ProfileSettingsNavigation.tsx +++ b/src/components/Nav/ProfileSettingsNavigation/ProfileSettingsNavigation.tsx @@ -1,6 +1,6 @@ import { clsx } from 'clsx' -import { useLocalize } from '../../../context/localize' +import { useLocalize } from '~/context/localize' import { useLocation } from '@solidjs/router' import styles from './ProfileSettingsNavigation.module.scss' diff --git a/src/components/Nav/SearchModal/SearchModal.tsx b/src/components/Nav/SearchModal/SearchModal.tsx index c6416145..0b2c6500 100644 --- a/src/components/Nav/SearchModal/SearchModal.tsx +++ b/src/components/Nav/SearchModal/SearchModal.tsx @@ -1,15 +1,15 @@ -import type { Shout } from '../../../graphql/schema/core.gen' +import type { Shout } from '~/graphql/schema/core.gen' import { For, Show, createResource, createSignal, onCleanup } from 'solid-js' import { debounce } from 'throttle-debounce' +import { Button } from '~/components/_shared/Button' +import { Icon } from '~/components/_shared/Icon' import { useFeed } from '~/context/feed' import { useLocalize } from '~/context/localize' -import { restoreScrollPosition, saveScrollPosition } from '../../../utils/scroll' -import { byScore } from '../../../utils/sortby' +import { restoreScrollPosition, saveScrollPosition } from '~/utils/scroll' +import { byScore } from '~/utils/sortby' import { FEED_PAGE_SIZE } from '../../Views/Feed/Feed' -import { Button } from '../../_shared/Button' -import { Icon } from '../../_shared/Icon' import { SearchResultItem } from './SearchResultItem' diff --git a/src/components/Nav/SearchModal/SearchResultItem.tsx b/src/components/Nav/SearchModal/SearchResultItem.tsx index 948e37de..235f038c 100644 --- a/src/components/Nav/SearchModal/SearchResultItem.tsx +++ b/src/components/Nav/SearchModal/SearchResultItem.tsx @@ -1,4 +1,4 @@ -import type { Shout } from '../../../graphql/schema/core.gen' +import type { Shout } from '~/graphql/schema/core.gen' import { ArticleCard } from '../../Feed/ArticleCard' diff --git a/src/components/Nav/Topics/Topics.tsx b/src/components/Nav/Topics/Topics.tsx index a6439434..866e19d2 100644 --- a/src/components/Nav/Topics/Topics.tsx +++ b/src/components/Nav/Topics/Topics.tsx @@ -1,6 +1,6 @@ import { clsx } from 'clsx' -import { useLocalize } from '../../../context/localize' -import { Icon } from '../../_shared/Icon' +import { Icon } from '~/components/_shared/Icon' +import { useLocalize } from '~/context/localize' import { A, useMatch } from '@solidjs/router' import styles from './Topics.module.scss' diff --git a/src/components/NotificationsPanel/EmptyMessage/EmptyMessage.tsx b/src/components/NotificationsPanel/EmptyMessage/EmptyMessage.tsx index 39e0e597..7cb3e0bc 100644 --- a/src/components/NotificationsPanel/EmptyMessage/EmptyMessage.tsx +++ b/src/components/NotificationsPanel/EmptyMessage/EmptyMessage.tsx @@ -1,6 +1,6 @@ import { clsx } from 'clsx' -import { useLocalize } from '../../../context/localize' +import { useLocalize } from '~/context/localize' import styles from './EmptyMessage.module.scss' diff --git a/src/components/NotificationsPanel/NotificationView/NotificationGroup.tsx b/src/components/NotificationsPanel/NotificationView/NotificationGroup.tsx index 3679eb67..2eab2fd9 100644 --- a/src/components/NotificationsPanel/NotificationView/NotificationGroup.tsx +++ b/src/components/NotificationsPanel/NotificationView/NotificationGroup.tsx @@ -1,11 +1,11 @@ import { clsx } from 'clsx' import { For, Show } from 'solid-js' -import { useLocalize } from '../../../context/localize' -import { useNotifications } from '../../../context/notifications' -import { Author, NotificationGroup as Group } from '../../../graphql/schema/core.gen' -import { GroupAvatar } from '../../_shared/GroupAvatar' -import { TimeAgo } from '../../_shared/TimeAgo' +import { GroupAvatar } from '~/components/_shared/GroupAvatar' +import { TimeAgo } from '~/components/_shared/TimeAgo' +import { useLocalize } from '~/context/localize' +import { useNotifications } from '~/context/notifications' +import { Author, NotificationGroup as Group } from '~/graphql/schema/core.gen' import { A, useNavigate, useSearchParams } from '@solidjs/router' import styles from './NotificationView.module.scss' diff --git a/src/components/NotificationsPanel/NotificationsPanel.tsx b/src/components/NotificationsPanel/NotificationsPanel.tsx index 927c74d0..a40448e7 100644 --- a/src/components/NotificationsPanel/NotificationsPanel.tsx +++ b/src/components/NotificationsPanel/NotificationsPanel.tsx @@ -2,11 +2,11 @@ import { clsx } from 'clsx' import { Show, createEffect, createMemo, createSignal, on, onCleanup, onMount } from 'solid-js' import { throttle } from 'throttle-debounce' -import { useLocalize } from '../../context/localize' -import { PAGE_SIZE, useNotifications } from '../../context/notifications' -import { useSession } from '../../context/session' -import { useEscKeyDownHandler } from '../../utils/useEscKeyDownHandler' -import { useOutsideClickHandler } from '../../utils/useOutsideClickHandler' +import { useLocalize } from '~/context/localize' +import { PAGE_SIZE, useNotifications } from '~/context/notifications' +import { useSession } from '~/context/session' +import { useEscKeyDownHandler } from '~/utils/useEscKeyDownHandler' +import { useOutsideClickHandler } from '~/utils/useOutsideClickHandler' import { Button } from '../_shared/Button' import { Icon } from '../_shared/Icon' diff --git a/src/components/ProfileSettings/ProfileSettings.tsx b/src/components/ProfileSettings/ProfileSettings.tsx index 0be68c33..3d3ef64a 100644 --- a/src/components/ProfileSettings/ProfileSettings.tsx +++ b/src/components/ProfileSettings/ProfileSettings.tsx @@ -14,16 +14,16 @@ import { onMount } from 'solid-js' import { createStore } from 'solid-js/store' -import { useLocalize } from '../../context/localize' -import { useProfile } from '../../context/profile' -import { useSession } from '../../context/session' -import { useSnackbar, useUI } from '../../context/ui' -import { InputMaybe, ProfileInput } from '../../graphql/schema/core.gen' -import { clone } from '../../utils/clone' -import { getImageUrl } from '../../utils/getImageUrl' -import { handleImageUpload } from '../../utils/handleImageUpload' -import { profileSocialLinks } from '../../utils/profileSocialLinks' -import { validateUrl } from '../../utils/validateUrl' +import { useLocalize } from '~/context/localize' +import { useProfile } from '~/context/profile' +import { useSession } from '~/context/session' +import { useSnackbar, useUI } from '~/context/ui' +import { InputMaybe, ProfileInput } from '~/graphql/schema/core.gen' +import { clone } from '~/utils/clone' +import { getImageUrl } from '~/utils/getImageUrl' +import { handleImageUpload } from '~/utils/handleImageUpload' +import { profileSocialLinks } from '~/utils/profileSocialLinks' +import { validateUrl } from '~/utils/validateUrl' import { Modal } from '../Nav/Modal' import { ProfileSettingsNavigation } from '../Nav/ProfileSettingsNavigation' import { Button } from '../_shared/Button' @@ -34,8 +34,8 @@ import { Popover } from '../_shared/Popover' import { SocialNetworkInput } from '../_shared/SocialNetworkInput' import styles from './Settings.module.scss' -const SimplifiedEditor = lazy(() => import('../../components/Editor/SimplifiedEditor')) -const GrowingTextarea = lazy(() => import('../../components/_shared/GrowingTextarea/GrowingTextarea')) +const SimplifiedEditor = lazy(() => import('~/components/Editor/SimplifiedEditor')) +const GrowingTextarea = lazy(() => import('~/components/_shared/GrowingTextarea/GrowingTextarea')) function filterNulls(arr: InputMaybe[]): string[] { return arr.filter((item): item is string => item !== null && item !== undefined) diff --git a/src/components/TableOfContents/TableOfContents.tsx b/src/components/TableOfContents/TableOfContents.tsx index 3b5482cd..971163d6 100644 --- a/src/components/TableOfContents/TableOfContents.tsx +++ b/src/components/TableOfContents/TableOfContents.tsx @@ -2,9 +2,9 @@ import { clsx } from 'clsx' import { For, Show, createEffect, createSignal, on, onCleanup, onMount } from 'solid-js' import { debounce, throttle } from 'throttle-debounce' +import { useLocalize } from '~/context/localize' import { DEFAULT_HEADER_OFFSET } from '~/context/ui' -import { useLocalize } from '../../context/localize' -import { isDesktop } from '../../utils/media-query' +import { isDesktop } from '~/utils/media-query' import { Icon } from '../_shared/Icon' import styles from './TableOfContents.module.scss' diff --git a/src/components/Topic/Card.tsx b/src/components/Topic/Card.tsx index a78ac6a9..6cac701c 100644 --- a/src/components/Topic/Card.tsx +++ b/src/components/Topic/Card.tsx @@ -1,11 +1,11 @@ import { clsx } from 'clsx' import { Show, createEffect, createMemo, createSignal, on } from 'solid-js' -import { useFollowing } from '../../context/following' -import { useLocalize } from '../../context/localize' -import { useSession } from '../../context/session' -import { Author, FollowingEntity, type Topic } from '../../graphql/schema/core.gen' -import { capitalize } from '../../utils/capitalize' +import { useFollowing } from '~/context/following' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' +import { Author, FollowingEntity, type Topic } from '~/graphql/schema/core.gen' +import { capitalize } from '~/utils/capitalize' import { CardTopic } from '../Feed/CardTopic' import { CheckButton } from '../_shared/CheckButton' import { FollowingButton } from '../_shared/FollowingButton' diff --git a/src/components/Topic/FloorHeader.tsx b/src/components/Topic/FloorHeader.tsx index dcc201dd..6f237019 100644 --- a/src/components/Topic/FloorHeader.tsx +++ b/src/components/Topic/FloorHeader.tsx @@ -1,6 +1,6 @@ -import type { Topic } from '../../graphql/schema/core.gen' +import type { Topic } from '~/graphql/schema/core.gen' -import { useLocalize } from '../../context/localize' +import { useLocalize } from '~/context/localize' import { Icon } from '../_shared/Icon' import './FloorHeader.scss' diff --git a/src/components/Topic/Full.tsx b/src/components/Topic/Full.tsx index 9fea127e..15c35d84 100644 --- a/src/components/Topic/Full.tsx +++ b/src/components/Topic/Full.tsx @@ -1,12 +1,12 @@ -import type { Author, Topic } from '../../graphql/schema/core.gen' +import type { Author, Topic } from '~/graphql/schema/core.gen' import { clsx } from 'clsx' import { Show, createEffect, createSignal } from 'solid-js' -import { useFollowing } from '../../context/following' -import { useLocalize } from '../../context/localize' -import { useSession } from '../../context/session' -import { FollowingEntity } from '../../graphql/schema/core.gen' +import { useFollowing } from '~/context/following' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' +import { FollowingEntity } from '~/graphql/schema/core.gen' import { Button } from '../_shared/Button' import { FollowingCounters } from '../_shared/FollowingCounters/FollowingCounters' diff --git a/src/components/Topic/TopicBadge/TopicBadge.tsx b/src/components/Topic/TopicBadge/TopicBadge.tsx index 6ee8f572..d9f57ec4 100644 --- a/src/components/Topic/TopicBadge/TopicBadge.tsx +++ b/src/components/Topic/TopicBadge/TopicBadge.tsx @@ -1,14 +1,14 @@ import { clsx } from 'clsx' import { Show, createEffect, createSignal, on } from 'solid-js' +import { FollowingButton } from '~/components/_shared/FollowingButton' +import { useFollowing } from '~/context/following' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' +import { FollowingEntity, Topic } from '~/graphql/schema/core.gen' +import { capitalize } from '~/utils/capitalize' +import { getImageUrl } from '~/utils/getImageUrl' import { mediaMatches } from '~/utils/media-query' -import { useFollowing } from '../../../context/following' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' -import { FollowingEntity, Topic } from '../../../graphql/schema/core.gen' -import { capitalize } from '../../../utils/capitalize' -import { getImageUrl } from '../../../utils/getImageUrl' -import { FollowingButton } from '../../_shared/FollowingButton' import styles from './TopicBadge.module.scss' type Props = { diff --git a/src/components/Views/AllAuthors/AllAuthors.tsx b/src/components/Views/AllAuthors/AllAuthors.tsx index 3a818e09..622ed6f2 100644 --- a/src/components/Views/AllAuthors/AllAuthors.tsx +++ b/src/components/Views/AllAuthors/AllAuthors.tsx @@ -2,18 +2,18 @@ import { Meta } from '@solidjs/meta' import { useSearchParams } from '@solidjs/router' import { clsx } from 'clsx' import { For, Show, createMemo, createSignal, onMount } from 'solid-js' -import ruKeywords from '~/lib/locales/ru/keywords.json' -import enKeywords from '~/lib/locales/ru/keywords.json' +import { Loading } from '~/components/_shared/Loading' +import { SearchField } from '~/components/_shared/SearchField' +import enKeywords from '~/config/locales/en/keywords.json' +import ruKeywords from '~/config/locales/ru/keywords.json' +import { type SortFunction, useAuthors } from '~/context/authors' +import { useLocalize } from '~/context/localize' +import type { Author } from '~/graphql/schema/core.gen' +import { getImageUrl } from '~/utils/getImageUrl' +import { scrollHandler } from '~/utils/scroll' import { byFirstChar, byStat } from '~/utils/sortby' -import { type SortFunction, useAuthors } from '../../../context/authors' -import { useLocalize } from '../../../context/localize' -import type { Author } from '../../../graphql/schema/core.gen' -import { getImageUrl } from '../../../utils/getImageUrl' -import { scrollHandler } from '../../../utils/scroll' -import { authorLetterReduce, translateAuthor } from '../../../utils/translate' +import { authorLetterReduce, translateAuthor } from '~/utils/translate' import { AuthorsList } from '../../AuthorsList' -import { Loading } from '../../_shared/Loading' -import { SearchField } from '../../_shared/SearchField' import styles from './AllAuthors.module.scss' type Props = { diff --git a/src/components/Views/AllTopics/AllTopics.tsx b/src/components/Views/AllTopics/AllTopics.tsx index b3ed309e..30c81a45 100644 --- a/src/components/Views/AllTopics/AllTopics.tsx +++ b/src/components/Views/AllTopics/AllTopics.tsx @@ -2,18 +2,18 @@ import { Meta } from '@solidjs/meta' import { A, useSearchParams } from '@solidjs/router' import { clsx } from 'clsx' import { For, Show, createEffect, createMemo, createSignal, on, onMount } from 'solid-js' +import { Loading } from '~/components/_shared/Loading' +import { SearchField } from '~/components/_shared/SearchField' +import enKeywords from '~/config/locales/en/keywords.json' +import ruKeywords from '~/config/locales/ru/keywords.json' +import { useLocalize } from '~/context/localize' import { useTopics } from '~/context/topics' -import ruKeywords from '~/lib/locales/ru/keywords.json' -import enKeywords from '~/lib/locales/ru/keywords.json' -import { useLocalize } from '../../../context/localize' -import type { Topic } from '../../../graphql/schema/core.gen' -import { capitalize } from '../../../utils/capitalize' -import { dummyFilter } from '../../../utils/dummyFilter' -import { getImageUrl } from '../../../utils/getImageUrl' -import { scrollHandler } from '../../../utils/scroll' +import type { Topic } from '~/graphql/schema/core.gen' +import { capitalize } from '~/utils/capitalize' +import { dummyFilter } from '~/utils/dummyFilter' +import { getImageUrl } from '~/utils/getImageUrl' +import { scrollHandler } from '~/utils/scroll' import { TopicBadge } from '../../Topic/TopicBadge' -import { Loading } from '../../_shared/Loading' -import { SearchField } from '../../_shared/SearchField' import styles from './AllTopics.module.scss' type Props = { diff --git a/src/components/Views/Author/Author.tsx b/src/components/Views/Author/Author.tsx index 16041cc1..8c26aa49 100644 --- a/src/components/Views/Author/Author.tsx +++ b/src/components/Views/Author/Author.tsx @@ -2,23 +2,24 @@ import { Meta, Title } from '@solidjs/meta' import { A, useLocation, useParams } from '@solidjs/router' import { clsx } from 'clsx' import { For, Match, Show, Switch, createEffect, createMemo, createSignal, on, onMount } from 'solid-js' +import { Loading } from '~/components/_shared/Loading' import { useAuthors } from '~/context/authors' +import { useFeed } from '~/context/feed' +import { useFollowing } from '~/context/following' import { useGraphQL } from '~/context/graphql' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' import { useUI } from '~/context/ui' -import { useFeed } from '../../../context/feed' -import { useFollowing } from '../../../context/following' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' -import loadShoutsQuery from '../../../graphql/query/core/articles-load-by' -import getAuthorFollowersQuery from '../../../graphql/query/core/author-followers' -import getAuthorFollowsQuery from '../../../graphql/query/core/author-follows' -import loadReactionsBy from '../../../graphql/query/core/reactions-load-by' -import type { Author, Reaction, Shout, Topic } from '../../../graphql/schema/core.gen' -import { getImageUrl } from '../../../utils/getImageUrl' -import { getDescription } from '../../../utils/meta' -import { restoreScrollPosition, saveScrollPosition } from '../../../utils/scroll' -import { byCreated } from '../../../utils/sortby' -import { splitToPages } from '../../../utils/splitToPages' +import loadShoutsQuery from '~/graphql/query/core/articles-load-by' +import getAuthorFollowersQuery from '~/graphql/query/core/author-followers' +import getAuthorFollowsQuery from '~/graphql/query/core/author-follows' +import loadReactionsBy from '~/graphql/query/core/reactions-load-by' +import type { Author, Reaction, Shout, Topic } from '~/graphql/schema/core.gen' +import { getImageUrl } from '~/utils/getImageUrl' +import { getDescription } from '~/utils/meta' +import { restoreScrollPosition, saveScrollPosition } from '~/utils/scroll' +import { byCreated } from '~/utils/sortby' +import { splitToPages } from '~/utils/splitToPages' import stylesArticle from '../../Article/Article.module.scss' import { Comment } from '../../Article/Comment' import { AuthorCard } from '../../Author/AuthorCard' @@ -27,7 +28,6 @@ import { Placeholder } from '../../Feed/Placeholder' import { Row1 } from '../../Feed/Row1' import { Row2 } from '../../Feed/Row2' import { Row3 } from '../../Feed/Row3' -import { Loading } from '../../_shared/Loading' import styles from './Author.module.scss' type Props = { diff --git a/src/components/Views/EditView/EditSettingsView.tsx b/src/components/Views/EditView/EditSettingsView.tsx index a9427af7..9337c33a 100644 --- a/src/components/Views/EditView/EditSettingsView.tsx +++ b/src/components/Views/EditView/EditSettingsView.tsx @@ -3,19 +3,19 @@ import deepEqual from 'fast-deep-equal' import { Show, createEffect, createSignal, on, onCleanup, onMount } from 'solid-js' import { createStore } from 'solid-js/store' import { debounce } from 'throttle-debounce' +import { Icon } from '~/components/_shared/Icon' +import { InviteMembers } from '~/components/_shared/InviteMembers' +import { ShoutForm, useEditorContext } from '~/context/editor' import { useGraphQL } from '~/context/graphql' +import { useLocalize } from '~/context/localize' import getMyShoutQuery from '~/graphql/query/core/article-my' -import { ShoutForm, useEditorContext } from '../../../context/editor' -import { useLocalize } from '../../../context/localize' -import type { Shout, Topic } from '../../../graphql/schema/core.gen' -import { clone } from '../../../utils/clone' -import { isDesktop } from '../../../utils/media-query' +import type { Shout, Topic } from '~/graphql/schema/core.gen' +import { clone } from '~/utils/clone' +import { isDesktop } from '~/utils/media-query' import { Panel } from '../../Editor' import { AutoSaveNotice } from '../../Editor/AutoSaveNotice' import { Modal } from '../../Nav/Modal' import { TableOfContents } from '../../TableOfContents' -import { Icon } from '../../_shared/Icon' -import { InviteMembers } from '../../_shared/InviteMembers' import { PublishSettings } from '../PublishSettings' import styles from './EditView.module.scss' diff --git a/src/components/Views/EditView/EditView.tsx b/src/components/Views/EditView/EditView.tsx index 24310641..00de2bc6 100644 --- a/src/components/Views/EditView/EditView.tsx +++ b/src/components/Views/EditView/EditView.tsx @@ -13,33 +13,33 @@ import { } from 'solid-js' import { createStore } from 'solid-js/store' import { debounce } from 'throttle-debounce' +import { DropArea } from '~/components/_shared/DropArea' +import { Icon } from '~/components/_shared/Icon' +import { InviteMembers } from '~/components/_shared/InviteMembers' +import { Loading } from '~/components/_shared/Loading' +import { Popover } from '~/components/_shared/Popover' +import { EditorSwiper } from '~/components/_shared/SolidSwiper' +import { ShoutForm, useEditorContext } from '~/context/editor' import { useGraphQL } from '~/context/graphql' +import { useLocalize } from '~/context/localize' import getMyShoutQuery from '~/graphql/query/core/article-my' +import type { Shout, Topic } from '~/graphql/schema/core.gen' import { LayoutType } from '~/types/common' import { MediaItem } from '~/types/mediaitem' -import { ShoutForm, useEditorContext } from '../../../context/editor' -import { useLocalize } from '../../../context/localize' -import type { Shout, Topic } from '../../../graphql/schema/core.gen' -import { clone } from '../../../utils/clone' -import { getImageUrl } from '../../../utils/getImageUrl' -import { isDesktop } from '../../../utils/media-query' -import { slugify } from '../../../utils/slugify' +import { clone } from '~/utils/clone' +import { getImageUrl } from '~/utils/getImageUrl' +import { isDesktop } from '~/utils/media-query' +import { slugify } from '~/utils/slugify' import { Editor, Panel } from '../../Editor' import { AudioUploader } from '../../Editor/AudioUploader' import { AutoSaveNotice } from '../../Editor/AutoSaveNotice' import { VideoUploader } from '../../Editor/VideoUploader' import { Modal } from '../../Nav/Modal' import { TableOfContents } from '../../TableOfContents' -import { DropArea } from '../../_shared/DropArea' -import { Icon } from '../../_shared/Icon' -import { InviteMembers } from '../../_shared/InviteMembers' -import { Loading } from '../../_shared/Loading' -import { Popover } from '../../_shared/Popover' -import { EditorSwiper } from '../../_shared/SolidSwiper' import styles from './EditView.module.scss' const SimplifiedEditor = lazy(() => import('../../Editor/SimplifiedEditor')) -const GrowingTextarea = lazy(() => import('../../_shared/GrowingTextarea/GrowingTextarea')) +const GrowingTextarea = lazy(() => import('~/components/_shared/GrowingTextarea/GrowingTextarea')) type Props = { shout: Shout diff --git a/src/components/Views/Expo/Expo.tsx b/src/components/Views/Expo/Expo.tsx index 4ad9cd95..3924cbd7 100644 --- a/src/components/Views/Expo/Expo.tsx +++ b/src/components/Views/Expo/Expo.tsx @@ -2,19 +2,19 @@ import { clsx } from 'clsx' import { For, Show, createEffect, createSignal, on, onCleanup, onMount } from 'solid-js' import { A } from '@solidjs/router' +import { Button } from '~/components/_shared/Button' +import { ConditionalWrapper } from '~/components/_shared/ConditionalWrapper' +import { Loading } from '~/components/_shared/Loading' +import { ArticleCardSwiper } from '~/components/_shared/SolidSwiper/ArticleCardSwiper' import { useGraphQL } from '~/context/graphql' +import { useLocalize } from '~/context/localize' import getShoutsQuery from '~/graphql/query/core/articles-load-by' import getRandomTopShoutsQuery from '~/graphql/query/core/articles-load-random-top' +import { LoadShoutsFilters, LoadShoutsOptions, Shout } from '~/graphql/schema/core.gen' import { LayoutType } from '~/types/common' -import { useLocalize } from '../../../context/localize' -import { LoadShoutsFilters, LoadShoutsOptions, Shout } from '../../../graphql/schema/core.gen' -import { getUnixtime } from '../../../utils/getServerDate' -import { restoreScrollPosition, saveScrollPosition } from '../../../utils/scroll' +import { getUnixtime } from '~/utils/getServerDate' +import { restoreScrollPosition, saveScrollPosition } from '~/utils/scroll' import { ArticleCard } from '../../Feed/ArticleCard' -import { Button } from '../../_shared/Button' -import { ConditionalWrapper } from '../../_shared/ConditionalWrapper' -import { Loading } from '../../_shared/Loading' -import { ArticleCardSwiper } from '../../_shared/SolidSwiper/ArticleCardSwiper' import styles from './Expo.module.scss' type Props = { diff --git a/src/components/Views/Feed/Feed.tsx b/src/components/Views/Feed/Feed.tsx index 6e571463..e6d45d5a 100644 --- a/src/components/Views/Feed/Feed.tsx +++ b/src/components/Views/Feed/Feed.tsx @@ -2,21 +2,26 @@ import { Meta } from '@solidjs/meta' import { A, createAsync, useLocation, useNavigate, useSearchParams } from '@solidjs/router' import { clsx } from 'clsx' import { For, Show, createMemo, createSignal, onMount } from 'solid-js' +import { DropDown } from '~/components/_shared/DropDown' import { Option } from '~/components/_shared/DropDown/DropDown' +import { Icon } from '~/components/_shared/Icon' +import { InviteMembers } from '~/components/_shared/InviteMembers' +import { Loading } from '~/components/_shared/Loading' +import { ShareModal } from '~/components/_shared/ShareModal' +import ruKeywords from '~/config/locales/ru/keywords.json' +import enKeywords from '~/config/locales/ru/keywords.json' +import { useAuthors } from '~/context/authors' import { useGraphQL } from '~/context/graphql' +import { useLocalize } from '~/context/localize' +import { useReactions } from '~/context/reactions' +import { useSession } from '~/context/session' +import { useTopics } from '~/context/topics' import { useUI } from '~/context/ui' -import { loadUnratedShouts } from '~/lib/api/private' -import ruKeywords from '~/lib/locales/ru/keywords.json' -import enKeywords from '~/lib/locales/ru/keywords.json' +import { loadUnratedShouts } from '~/graphql/api/private' +import type { Author, Reaction, Shout } from '~/graphql/schema/core.gen' import { FeedSearchParams } from '~/routes/feed/[...feed]' -import { useAuthors } from '../../../context/authors' -import { useLocalize } from '../../../context/localize' -import { useReactions } from '../../../context/reactions' -import { useSession } from '../../../context/session' -import { useTopics } from '../../../context/topics' -import type { Author, Reaction, Shout } from '../../../graphql/schema/core.gen' -import { getImageUrl } from '../../../utils/getImageUrl' -import { byCreated } from '../../../utils/sortby' +import { getImageUrl } from '~/utils/getImageUrl' +import { byCreated } from '~/utils/sortby' import { CommentDate } from '../../Article/CommentDate' import { getShareUrl } from '../../Article/SharePopup' import { AuthorBadge } from '../../Author/AuthorBadge' @@ -27,11 +32,6 @@ import stylesTopic from '../../Feed/CardTopic.module.scss' import { Placeholder } from '../../Feed/Placeholder' import { Sidebar } from '../../Feed/Sidebar' import { Modal } from '../../Nav/Modal' -import { DropDown } from '../../_shared/DropDown' -import { Icon } from '../../_shared/Icon' -import { InviteMembers } from '../../_shared/InviteMembers' -import { Loading } from '../../_shared/Loading' -import { ShareModal } from '../../_shared/ShareModal' import styles from './Feed.module.scss' export const FEED_PAGE_SIZE = 20 diff --git a/src/components/Views/FeedSettings.tsx b/src/components/Views/FeedSettings.tsx index 22cc9109..34089309 100644 --- a/src/components/Views/FeedSettings.tsx +++ b/src/components/Views/FeedSettings.tsx @@ -1,4 +1,4 @@ -import { useLocalize } from '../../context/localize' +import { useLocalize } from '~/context/localize' import styles from '../../styles/FeedSettings.module.scss' diff --git a/src/components/Views/FourOuFour.tsx b/src/components/Views/FourOuFour.tsx index fe5dc9f3..d9681289 100644 --- a/src/components/Views/FourOuFour.tsx +++ b/src/components/Views/FourOuFour.tsx @@ -1,6 +1,6 @@ import { clsx } from 'clsx' -import { useLocalize } from '../../context/localize' +import { useLocalize } from '~/context/localize' import { Icon } from '../_shared/Icon' import { useNavigate } from '@solidjs/router' diff --git a/src/components/Views/Home.tsx b/src/components/Views/Home.tsx index 7cf336df..86135646 100644 --- a/src/components/Views/Home.tsx +++ b/src/components/Views/Home.tsx @@ -1,16 +1,16 @@ import { For, Show, createEffect, createMemo, createSignal, on } from 'solid-js' import { Meta } from '@solidjs/meta' +import enKeywords from '~/config/locales/en/keywords.json' +import ruKeywords from '~/config/locales/ru/keywords.json' import { useAuthors } from '~/context/authors' -import { loadShouts } from '~/lib/api/public' -import ruKeywords from '~/lib/locales/ru/keywords.json' -import enKeywords from '~/lib/locales/ru/keywords.json' +import { useLocalize } from '~/context/localize' +import { useTopics } from '~/context/topics' +import { loadShouts } from '~/graphql/api/public' +import { Author, Shout, Topic } from '~/graphql/schema/core.gen' import { SHOUTS_PER_PAGE } from '~/routes/(home)' -import { useLocalize } from '../../context/localize' -import { useTopics } from '../../context/topics' -import { Author, Shout, Topic } from '../../graphql/schema/core.gen' -import { capitalize } from '../../utils/capitalize' -import { splitToPages } from '../../utils/splitToPages' +import { capitalize } from '~/utils/capitalize' +import { splitToPages } from '~/utils/splitToPages' import Banner from '../Discours/Banner' import Hero from '../Discours/Hero' import { Beside } from '../Feed/Beside' diff --git a/src/components/Views/Inbox/Inbox.tsx b/src/components/Views/Inbox/Inbox.tsx index f78d9ffe..d3bf17c1 100644 --- a/src/components/Views/Inbox/Inbox.tsx +++ b/src/components/Views/Inbox/Inbox.tsx @@ -1,17 +1,20 @@ import { clsx } from 'clsx' import { For, Show, createEffect, createMemo, createSignal, on, onMount } from 'solid-js' +import { Icon } from '~/components/_shared/Icon' +import { InviteMembers } from '~/components/_shared/InviteMembers' +import { Popover } from '~/components/_shared/Popover' +import { useInbox } from '~/context/inbox' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' import { useUI } from '~/context/ui' -import { useInbox } from '../../../context/inbox' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' import type { Chat, ChatMember, Message as MessageType, MutationCreate_MessageArgs -} from '../../../graphql/schema/chat.gen' -import type { Author } from '../../../graphql/schema/core.gen' +} from '~/graphql/schema/chat.gen' +import type { Author } from '~/graphql/schema/core.gen' import SimplifiedEditor from '../../Editor/SimplifiedEditor' import DialogCard from '../../Inbox/DialogCard' import DialogHeader from '../../Inbox/DialogHeader' @@ -19,9 +22,6 @@ import { Message } from '../../Inbox/Message' import MessagesFallback from '../../Inbox/MessagesFallback' import Search from '../../Inbox/Search' import { Modal } from '../../Nav/Modal' -import { Icon } from '../../_shared/Icon' -import { InviteMembers } from '../../_shared/InviteMembers' -import { Popover } from '../../_shared/Popover' import { useSearchParams } from '@solidjs/router' import styles from './Inbox.module.scss' diff --git a/src/components/Views/ProfileSubscriptions/ProfileSubscriptions.tsx b/src/components/Views/ProfileSubscriptions/ProfileSubscriptions.tsx index c53d02d5..29960e1a 100644 --- a/src/components/Views/ProfileSubscriptions/ProfileSubscriptions.tsx +++ b/src/components/Views/ProfileSubscriptions/ProfileSubscriptions.tsx @@ -1,16 +1,16 @@ import { clsx } from 'clsx' import { For, Show, createEffect, createSignal, on } from 'solid-js' -import { FollowsFilter, useFollowing } from '../../../context/following' -import { useLocalize } from '../../../context/localize' -import { Author, Topic } from '../../../graphql/schema/core.gen' -import { dummyFilter } from '../../../utils/dummyFilter' -import { isAuthor } from '../../../utils/isAuthor' +import { Loading } from '~/components/_shared/Loading' +import { SearchField } from '~/components/_shared/SearchField' +import { FollowsFilter, useFollowing } from '~/context/following' +import { useLocalize } from '~/context/localize' +import { Author, Topic } from '~/graphql/schema/core.gen' +import { dummyFilter } from '~/utils/dummyFilter' +import { isAuthor } from '~/utils/isAuthor' import { AuthorBadge } from '../../Author/AuthorBadge' import { ProfileSettingsNavigation } from '../../Nav/ProfileSettingsNavigation' import { TopicBadge } from '../../Topic/TopicBadge' -import { Loading } from '../../_shared/Loading' -import { SearchField } from '../../_shared/SearchField' import styles from '../../../pages/profile/Settings.module.scss' import stylesSettings from '../../../styles/FeedSettings.module.scss' diff --git a/src/components/Views/PublishSettings/PublishSettings.tsx b/src/components/Views/PublishSettings/PublishSettings.tsx index 56302262..141e130d 100644 --- a/src/components/Views/PublishSettings/PublishSettings.tsx +++ b/src/components/Views/PublishSettings/PublishSettings.tsx @@ -2,17 +2,17 @@ import { clsx } from 'clsx' import { Show, createEffect, createMemo, createSignal, lazy, onMount } from 'solid-js' import { createStore } from 'solid-js/store' +import { Button } from '~/components/_shared/Button' +import { Icon } from '~/components/_shared/Icon' +import { Image } from '~/components/_shared/Image' +import { ShoutForm, useEditorContext } from '~/context/editor' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' +import { useTopics } from '~/context/topics' import { useSnackbar, useUI } from '~/context/ui' -import { ShoutForm, useEditorContext } from '../../../context/editor' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' -import { useTopics } from '../../../context/topics' -import { Topic } from '../../../graphql/schema/core.gen' +import { Topic } from '~/graphql/schema/core.gen' import { TopicSelect, UploadModalContent } from '../../Editor' import { Modal } from '../../Nav/Modal' -import { Button } from '../../_shared/Button' -import { Icon } from '../../_shared/Icon' -import { Image } from '../../_shared/Image' import { useNavigate } from '@solidjs/router' import { UploadedFile } from '~/types/upload' @@ -20,7 +20,7 @@ import stylesBeside from '../../Feed/Beside.module.scss' import styles from './PublishSettings.module.scss' const SimplifiedEditor = lazy(() => import('../../Editor/SimplifiedEditor')) -const GrowingTextarea = lazy(() => import('../../_shared/GrowingTextarea/GrowingTextarea')) +const GrowingTextarea = lazy(() => import('~/components/_shared/GrowingTextarea/GrowingTextarea')) const DESCRIPTION_MAX_LENGTH = 400 type Props = { diff --git a/src/components/Views/Search.tsx b/src/components/Views/Search.tsx index 22952d5b..3bdc2eb2 100644 --- a/src/components/Views/Search.tsx +++ b/src/components/Views/Search.tsx @@ -1,10 +1,10 @@ import { For, Show, createSignal, onMount } from 'solid-js' import { useSearchParams } from '@solidjs/router' -import { useFeed } from '../../context/feed' -import { useLocalize } from '../../context/localize' -import type { SearchResult } from '../../graphql/schema/core.gen' -import { restoreScrollPosition, saveScrollPosition } from '../../utils/scroll' +import { useFeed } from '~/context/feed' +import { useLocalize } from '~/context/localize' +import type { SearchResult } from '~/graphql/schema/core.gen' +import { restoreScrollPosition, saveScrollPosition } from '~/utils/scroll' import { ArticleCard } from '../Feed/ArticleCard' import '../../styles/Search.scss' diff --git a/src/components/Views/Topic.tsx b/src/components/Views/Topic.tsx index 5ce27a2a..08f8642c 100644 --- a/src/components/Views/Topic.tsx +++ b/src/components/Views/Topic.tsx @@ -1,26 +1,28 @@ -import { Author, AuthorsBy, LoadShoutsOptions, Shout, Topic } from '../../graphql/schema/core.gen' +import { Author, AuthorsBy, LoadShoutsOptions, Shout, Topic } from '~/graphql/schema/core.gen' import { Meta } from '@solidjs/meta' import { clsx } from 'clsx' import { For, Show, createEffect, createMemo, createSignal, on, onMount } from 'solid-js' import { useSearchParams } from '@solidjs/router' +import enKeywords from '~/config/locales/en/keywords.json' +import ruKeywords from '~/config/locales/ru/keywords.json' +import { useAuthors } from '~/context/authors' +import { useFeed } from '~/context/feed' import { useGraphQL } from '~/context/graphql' +import { useLocalize } from '~/context/localize' +import { useTopics } from '~/context/topics' import getRandomTopShoutsQuery from '~/graphql/query/core/articles-load-random-top' import loadShoutsRandomQuery from '~/graphql/query/core/articles-load-random-topic' import loadAuthorsByQuery from '~/graphql/query/core/authors-load-by' import getTopicFollowersQuery from '~/graphql/query/core/topic-followers' -import { useAuthors } from '../../context/authors' -import { useFeed } from '../../context/feed' -import { useLocalize } from '../../context/localize' -import { useTopics } from '../../context/topics' +import { capitalize } from '~/utils/capitalize' +import { getImageUrl } from '~/utils/getImageUrl' +import { getUnixtime } from '~/utils/getServerDate' +import { getDescription } from '~/utils/meta' +import { restoreScrollPosition, saveScrollPosition } from '~/utils/scroll' +import { splitToPages } from '~/utils/splitToPages' import styles from '../../styles/Topic.module.scss' -import { capitalize } from '../../utils/capitalize' -import { getImageUrl } from '../../utils/getImageUrl' -import { getUnixtime } from '../../utils/getServerDate' -import { getDescription } from '../../utils/meta' -import { restoreScrollPosition, saveScrollPosition } from '../../utils/scroll' -import { splitToPages } from '../../utils/splitToPages' import { Beside } from '../Feed/Beside' import { Row1 } from '../Feed/Row1' import { Row2 } from '../Feed/Row2' @@ -28,9 +30,6 @@ import { Row3 } from '../Feed/Row3' import { FullTopic } from '../Topic/Full' import { ArticleCardSwiper } from '../_shared/SolidSwiper/ArticleCardSwiper' -import ruKeywords from '~/lib/locales/ru/keywords.json' -import enKeywords from '~/lib/locales/ru/keywords.json' - type TopicsPageSearchParams = { by: 'comments' | '' | 'recent' | 'viewed' | 'rating' | 'commented' } diff --git a/src/components/_shared/DarkModeToggle/DarkModeToggle.tsx b/src/components/_shared/DarkModeToggle/DarkModeToggle.tsx index 1961529d..e3fd15e6 100644 --- a/src/components/_shared/DarkModeToggle/DarkModeToggle.tsx +++ b/src/components/_shared/DarkModeToggle/DarkModeToggle.tsx @@ -1,7 +1,7 @@ import { clsx } from 'clsx' import { createSignal, onCleanup, onMount } from 'solid-js' -import { useLocalize } from '../../../context/localize' +import { useLocalize } from '~/context/localize' import { Icon } from '../Icon' import styles from './DarkModeToggle.module.scss' diff --git a/src/components/_shared/DropArea/DropArea.tsx b/src/components/_shared/DropArea/DropArea.tsx index eab31c71..30a5a1e1 100644 --- a/src/components/_shared/DropArea/DropArea.tsx +++ b/src/components/_shared/DropArea/DropArea.tsx @@ -2,11 +2,11 @@ import { UploadFile, createDropzone, createFileUploader } from '@solid-primitive import { clsx } from 'clsx' import { JSX, Show, createSignal } from 'solid-js' -import { useLocalize } from '../../../context/localize' -import { useSession } from '../../../context/session' -import { handleFileUpload } from '../../../utils/handleFileUpload' -import { handleImageUpload } from '../../../utils/handleImageUpload' -import { validateFiles } from '../../../utils/validateFile' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' +import { handleFileUpload } from '~/utils/handleFileUpload' +import { handleImageUpload } from '~/utils/handleImageUpload' +import { validateFiles } from '~/utils/validateFile' import styles from './DropArea.module.scss' diff --git a/src/components/_shared/DropdownSelect/DropdownSelect.tsx b/src/components/_shared/DropdownSelect/DropdownSelect.tsx index dcfca82f..fe972703 100644 --- a/src/components/_shared/DropdownSelect/DropdownSelect.tsx +++ b/src/components/_shared/DropdownSelect/DropdownSelect.tsx @@ -1,7 +1,7 @@ import { clsx } from 'clsx' import { For, Show, createSignal } from 'solid-js' -import { useOutsideClickHandler } from '../../../utils/useOutsideClickHandler' +import { useOutsideClickHandler } from '~/utils/useOutsideClickHandler' import styles from './DropdownSelect.module.scss' diff --git a/src/components/_shared/FollowingButton/FollowingButton.tsx b/src/components/_shared/FollowingButton/FollowingButton.tsx index 797c8acc..4e099f48 100644 --- a/src/components/_shared/FollowingButton/FollowingButton.tsx +++ b/src/components/_shared/FollowingButton/FollowingButton.tsx @@ -1,6 +1,6 @@ import { clsx } from 'clsx' import { Show, createMemo } from 'solid-js' -import { useLocalize } from '../../../context/localize' +import { useLocalize } from '~/context/localize' import { Button } from '../Button' import { CheckButton } from '../CheckButton' import { Icon } from '../Icon' diff --git a/src/components/_shared/FollowingCounters/FollowingCounters.tsx b/src/components/_shared/FollowingCounters/FollowingCounters.tsx index f7795e94..2808d2c3 100644 --- a/src/components/_shared/FollowingCounters/FollowingCounters.tsx +++ b/src/components/_shared/FollowingCounters/FollowingCounters.tsx @@ -1,8 +1,8 @@ import { For, Show, createMemo } from 'solid-js' -import { useLocalize } from '../../../context/localize' +import { useLocalize } from '~/context/localize' -import { Author, Topic } from '../../../graphql/schema/core.gen' +import { Author, Topic } from '~/graphql/schema/core.gen' import { Userpic } from '../../Author/Userpic' import styles from './FollowingCounters.module.scss' diff --git a/src/components/_shared/GroupAvatar/GroupAvatar.tsx b/src/components/_shared/GroupAvatar/GroupAvatar.tsx index 1f196ce9..a929cfad 100644 --- a/src/components/_shared/GroupAvatar/GroupAvatar.tsx +++ b/src/components/_shared/GroupAvatar/GroupAvatar.tsx @@ -1,7 +1,7 @@ import { clsx } from 'clsx' import { For } from 'solid-js' -import { Author } from '../../../graphql/schema/core.gen' +import { Author } from '~/graphql/schema/core.gen' import { Userpic } from '../../Author/Userpic' import styles from './GroupAvatar.module.scss' diff --git a/src/components/_shared/Image/Image.tsx b/src/components/_shared/Image/Image.tsx index 95d17601..0bbbb096 100644 --- a/src/components/_shared/Image/Image.tsx +++ b/src/components/_shared/Image/Image.tsx @@ -3,7 +3,7 @@ import type { JSX } from 'solid-js' import { Link } from '@solidjs/meta' import { splitProps } from 'solid-js' -import { getImageUrl } from '../../../utils/getImageUrl' +import { getImageUrl } from '~/utils/getImageUrl' type Props = JSX.ImgHTMLAttributes & { width: number diff --git a/src/components/_shared/ImageCropper/ImageCropper.tsx b/src/components/_shared/ImageCropper/ImageCropper.tsx index 50f53536..30a2863a 100644 --- a/src/components/_shared/ImageCropper/ImageCropper.tsx +++ b/src/components/_shared/ImageCropper/ImageCropper.tsx @@ -4,7 +4,7 @@ import { UploadFile } from '@solid-primitives/upload' import Cropper from 'cropperjs' import { Show, createSignal, onMount } from 'solid-js' -import { useLocalize } from '../../../context/localize' +import { useLocalize } from '~/context/localize' import { Button } from '../Button' import styles from './ImageCropper.module.scss' diff --git a/src/components/_shared/InviteMembers/InviteMembers.tsx b/src/components/_shared/InviteMembers/InviteMembers.tsx index 1a851bc3..dc25682c 100644 --- a/src/components/_shared/InviteMembers/InviteMembers.tsx +++ b/src/components/_shared/InviteMembers/InviteMembers.tsx @@ -2,11 +2,11 @@ import { createInfiniteScroll } from '@solid-primitives/pagination' import { clsx } from 'clsx' import { For, Show, createEffect, createSignal, on } from 'solid-js' +import { useAuthors } from '~/context/authors' +import { useInbox } from '~/context/inbox' +import { useLocalize } from '~/context/localize' import { useUI } from '~/context/ui' -import { useAuthors } from '../../../context/authors' -import { useInbox } from '../../../context/inbox' -import { useLocalize } from '../../../context/localize' -import { Author } from '../../../graphql/schema/core.gen' +import { Author } from '~/graphql/schema/core.gen' import { AuthorBadge } from '../../Author/AuthorBadge' import { InlineLoader } from '../../InlineLoader' import { Button } from '../Button' diff --git a/src/components/_shared/Lightbox/Lightbox.tsx b/src/components/_shared/Lightbox/Lightbox.tsx index e4daa313..7a8ccc3f 100644 --- a/src/components/_shared/Lightbox/Lightbox.tsx +++ b/src/components/_shared/Lightbox/Lightbox.tsx @@ -1,8 +1,8 @@ import { clsx } from 'clsx' import { Show, createEffect, createMemo, createSignal, on, onCleanup } from 'solid-js' -import { getImageUrl } from '../../../utils/getImageUrl' -import { useEscKeyDownHandler } from '../../../utils/useEscKeyDownHandler' +import { getImageUrl } from '~/utils/getImageUrl' +import { useEscKeyDownHandler } from '~/utils/useEscKeyDownHandler' import { Icon } from '../Icon' import styles from './Lightbox.module.scss' diff --git a/src/components/_shared/Newsletter/Newsletter.tsx b/src/components/_shared/Newsletter/Newsletter.tsx index d4ebcf36..a7cd56ac 100644 --- a/src/components/_shared/Newsletter/Newsletter.tsx +++ b/src/components/_shared/Newsletter/Newsletter.tsx @@ -1,8 +1,8 @@ import { JSX, Show, createSignal } from 'solid-js' +import { useLocalize } from '~/context/localize' import { useSnackbar } from '~/context/ui' -import { useLocalize } from '../../../context/localize' -import { validateEmail } from '../../../utils/validateEmail' +import { validateEmail } from '~/utils/validateEmail' import { Button } from '../Button' import { Icon } from '../Icon' diff --git a/src/components/_shared/Popup/Popup.tsx b/src/components/_shared/Popup/Popup.tsx index bffe8ca2..81537575 100644 --- a/src/components/_shared/Popup/Popup.tsx +++ b/src/components/_shared/Popup/Popup.tsx @@ -1,7 +1,7 @@ import { clsx } from 'clsx' import { JSX, Show, createEffect, createSignal } from 'solid-js' -import { useOutsideClickHandler } from '../../../utils/useOutsideClickHandler' +import { useOutsideClickHandler } from '~/utils/useOutsideClickHandler' import styles from './Popup.module.scss' diff --git a/src/components/_shared/SearchField/SearchField.tsx b/src/components/_shared/SearchField/SearchField.tsx index 78c6bb81..e2b8ead7 100644 --- a/src/components/_shared/SearchField/SearchField.tsx +++ b/src/components/_shared/SearchField/SearchField.tsx @@ -1,6 +1,6 @@ import { clsx } from 'clsx' -import { useLocalize } from '../../../context/localize' +import { useLocalize } from '~/context/localize' import { Icon } from '../Icon' import styles from './SearchField.module.scss' diff --git a/src/components/_shared/ShareLinks/ShareLinks.tsx b/src/components/_shared/ShareLinks/ShareLinks.tsx index 496cb7b1..2a545eb6 100644 --- a/src/components/_shared/ShareLinks/ShareLinks.tsx +++ b/src/components/_shared/ShareLinks/ShareLinks.tsx @@ -2,8 +2,8 @@ import { FACEBOOK, TELEGRAM, TWITTER, VK, createSocialShare } from '@solid-primi import { clsx } from 'clsx' import { Show, createSignal } from 'solid-js' +import { useLocalize } from '~/context/localize' import { useSnackbar } from '~/context/ui' -import { useLocalize } from '../../../context/localize' import { Icon } from '../Icon' import { Popover } from '../Popover' diff --git a/src/components/_shared/ShareModal/ShareModal.tsx b/src/components/_shared/ShareModal/ShareModal.tsx index 6a59b5cf..ec550c8d 100644 --- a/src/components/_shared/ShareModal/ShareModal.tsx +++ b/src/components/_shared/ShareModal/ShareModal.tsx @@ -1,5 +1,5 @@ +import { useLocalize } from '~/context/localize' import { useUI } from '~/context/ui' -import { useLocalize } from '../../../context/localize' import { Modal } from '../../Nav/Modal' import { ShareLinks } from '../ShareLinks' diff --git a/src/components/_shared/ShowIfAuthenticated.tsx b/src/components/_shared/ShowIfAuthenticated.tsx index 2bab9671..483d55c5 100644 --- a/src/components/_shared/ShowIfAuthenticated.tsx +++ b/src/components/_shared/ShowIfAuthenticated.tsx @@ -2,7 +2,7 @@ import type { JSX } from 'solid-js' import { Show } from 'solid-js' -import { useSession } from '../../context/session' +import { useSession } from '~/context/session' type ShowIfAuthenticatedProps = { children: JSX.Element diff --git a/src/components/_shared/SolidSwiper/ArticleCardSwiper.tsx b/src/components/_shared/SolidSwiper/ArticleCardSwiper.tsx index ebc29cd9..d35fc313 100644 --- a/src/components/_shared/SolidSwiper/ArticleCardSwiper.tsx +++ b/src/components/_shared/SolidSwiper/ArticleCardSwiper.tsx @@ -3,7 +3,7 @@ import { For, Show, onMount } from 'solid-js' import SwiperCore from 'swiper' import { Manipulation, Navigation, Pagination } from 'swiper/modules' -import { Shout } from '../../../graphql/schema/core.gen' +import { Shout } from '~/graphql/schema/core.gen' import { ArticleCard } from '../../Feed/ArticleCard' import { Icon } from '../Icon' import { ShowOnlyOnClient } from '../ShowOnlyOnClient' diff --git a/src/components/_shared/SolidSwiper/EditorSwiper.tsx b/src/components/_shared/SolidSwiper/EditorSwiper.tsx index 54f1edba..2013ac10 100644 --- a/src/components/_shared/SolidSwiper/EditorSwiper.tsx +++ b/src/components/_shared/SolidSwiper/EditorSwiper.tsx @@ -4,12 +4,12 @@ import { For, Show, createEffect, createSignal, lazy, on, onMount } from 'solid- import SwiperCore from 'swiper' import { Manipulation, Navigation, Pagination } from 'swiper/modules' +import { useLocalize } from '~/context/localize' import { useSnackbar } from '~/context/ui' -import { useLocalize } from '../../../context/localize' -import { composeMediaItems } from '../../../utils/composeMediaItems' -import { getImageUrl } from '../../../utils/getImageUrl' -import { handleImageUpload } from '../../../utils/handleImageUpload' -import { validateFiles } from '../../../utils/validateFile' +import { composeMediaItems } from '~/utils/composeMediaItems' +import { getImageUrl } from '~/utils/getImageUrl' +import { handleImageUpload } from '~/utils/handleImageUpload' +import { validateFiles } from '~/utils/validateFile' import { DropArea } from '../DropArea' import { Icon } from '../Icon' import { Image } from '../Image' @@ -18,9 +18,9 @@ import { Popover } from '../Popover' import { SwiperRef } from './swiper' +import { useSession } from '~/context/session' import { MediaItem } from '~/types/mediaitem' import { UploadedFile } from '~/types/upload' -import { useSession } from '../../../context/session' import styles from './Swiper.module.scss' const SimplifiedEditor = lazy(() => import('../../Editor/SimplifiedEditor')) diff --git a/src/components/_shared/SolidSwiper/ImageSwiper.tsx b/src/components/_shared/SolidSwiper/ImageSwiper.tsx index 06d98bc0..e96745bd 100644 --- a/src/components/_shared/SolidSwiper/ImageSwiper.tsx +++ b/src/components/_shared/SolidSwiper/ImageSwiper.tsx @@ -5,7 +5,7 @@ import { HashNavigation, Manipulation, Navigation, Pagination } from 'swiper/mod import { throttle } from 'throttle-debounce' import { MediaItem } from '~/types/mediaitem' -import { getImageUrl } from '../../../utils/getImageUrl' +import { getImageUrl } from '~/utils/getImageUrl' import { Icon } from '../Icon' import { Image } from '../Image' import { SwiperRef } from './swiper' diff --git a/src/components/_shared/SoonChip/SoonChip.tsx b/src/components/_shared/SoonChip/SoonChip.tsx index a0acc2f7..34d5a967 100644 --- a/src/components/_shared/SoonChip/SoonChip.tsx +++ b/src/components/_shared/SoonChip/SoonChip.tsx @@ -1,6 +1,6 @@ import { clsx } from 'clsx' -import { useLocalize } from '../../../context/localize' +import { useLocalize } from '~/context/localize' import { Icon } from '../Icon' import styles from './SoonChip.module.scss' diff --git a/src/components/_shared/TimeAgo/TimeAgo.tsx b/src/components/_shared/TimeAgo/TimeAgo.tsx index 055b8e39..4f2309b5 100644 --- a/src/components/_shared/TimeAgo/TimeAgo.tsx +++ b/src/components/_shared/TimeAgo/TimeAgo.tsx @@ -1,7 +1,7 @@ import { clsx } from 'clsx' import { createSignal, onCleanup, onMount } from 'solid-js' -import { useLocalize } from '../../../context/localize' +import { useLocalize } from '~/context/localize' import styles from './TimeAgo.module.scss' diff --git a/src/components/_shared/VideoPlayer/VideoPlayer.tsx b/src/components/_shared/VideoPlayer/VideoPlayer.tsx index a3d9b6c9..eb32837a 100644 --- a/src/components/_shared/VideoPlayer/VideoPlayer.tsx +++ b/src/components/_shared/VideoPlayer/VideoPlayer.tsx @@ -1,7 +1,7 @@ import { clsx } from 'clsx' import { Match, Show, Switch, createEffect, createSignal } from 'solid-js' -import { useLocalize } from '../../../context/localize' +import { useLocalize } from '~/context/localize' import { Button } from '../Button' import { Icon } from '../Icon' import { Popover } from '../Popover' diff --git a/src/components/_shared/VotersList/VotersList.tsx b/src/components/_shared/VotersList/VotersList.tsx index d409002b..6ccc753c 100644 --- a/src/components/_shared/VotersList/VotersList.tsx +++ b/src/components/_shared/VotersList/VotersList.tsx @@ -1,7 +1,7 @@ import { clsx } from 'clsx' import { For, Show } from 'solid-js' -import { Reaction, ReactionKind } from '../../../graphql/schema/core.gen' +import { Reaction, ReactionKind } from '~/graphql/schema/core.gen' import { Userpic } from '../../Author/Userpic' import styles from './VotersList.module.scss' diff --git a/src/lib/locales/en/keywords.json b/src/config/locales/en/keywords.json similarity index 100% rename from src/lib/locales/en/keywords.json rename to src/config/locales/en/keywords.json diff --git a/src/lib/locales/en/translation.json b/src/config/locales/en/translation.json similarity index 100% rename from src/lib/locales/en/translation.json rename to src/config/locales/en/translation.json diff --git a/src/lib/locales/ru/keywords.json b/src/config/locales/ru/keywords.json similarity index 100% rename from src/lib/locales/ru/keywords.json rename to src/config/locales/ru/keywords.json diff --git a/src/lib/locales/ru/translation.json b/src/config/locales/ru/translation.json similarity index 100% rename from src/lib/locales/ru/translation.json rename to src/config/locales/ru/translation.json diff --git a/src/config/routes.ts b/src/config/routes.ts deleted file mode 100644 index 8a44e06f..00000000 --- a/src/config/routes.ts +++ /dev/null @@ -1,38 +0,0 @@ -export const ROUTES = { - home: '/', - inbox: '/inbox', - connect: '/connect', - create: '/edit/new', - edit: '/edit/:shoutId', - editSettings: '/edit/:shoutId/settings', - drafts: '/edit', - topics: '/topics', - topic: '/topic/:slug', - authors: '/author', - author: '/author/:slug', - authorComments: '/author/:slug/comments', - authorAbout: '/author/:slug/about', - feed: '/feed', - feedMy: '/feed/my', - feedNotifications: '/feed/noticed', - feedDiscussions: '/feed/discussed', - feedBookmarks: '/feed/bookmarked', - feedCollaborations: '/feed/coauthored', - search: '/search/:q?', - dogma: '/guide/dogma', - discussionRules: '/about/discussion-rules', - guide: '/guide', - help: '/guide/support', - manifest: '/guide/manifest', - partners: '/guide/partners', - principles: '/guide/principles', - projects: '/guide/projects', - termsOfUse: '/about/terms-of-use', - thanks: '/guide/thanks', - expo: '/expo/:layout?', - profileSettings: '/profile', - profileSecurity: '/profile/security', - profileSubscriptions: '/profile/subs', - fourOuFour: '/404', - article: '/:slug' -} as const diff --git a/src/context/authors.tsx b/src/context/authors.tsx index 0a37c53c..a02fe3db 100644 --- a/src/context/authors.tsx +++ b/src/context/authors.tsx @@ -8,10 +8,10 @@ import { on, useContext } from 'solid-js' -import loadAuthorByQuery from '../graphql/query/core/author-by' -import loadAuthorsAllQuery from '../graphql/query/core/authors-all' -import loadAuthorsByQuery from '../graphql/query/core/authors-load-by' -import { Author, Maybe, QueryLoad_Authors_ByArgs, Shout, Topic } from '../graphql/schema/core.gen' +import loadAuthorByQuery from '~/graphql/query/core/author-by' +import loadAuthorsAllQuery from '~/graphql/query/core/authors-all' +import loadAuthorsByQuery from '~/graphql/query/core/authors-load-by' +import { Author, Maybe, QueryLoad_Authors_ByArgs, Shout, Topic } from '~/graphql/schema/core.gen' import { useFeed } from './feed' import { useGraphQL } from './graphql' diff --git a/src/context/connect.tsx b/src/context/connect.tsx index 3b254e1a..3910828f 100644 --- a/src/context/connect.tsx +++ b/src/context/connect.tsx @@ -1,11 +1,11 @@ import type { Accessor, JSX } from 'solid-js' -import type { Author, Reaction, Shout, Topic } from '../graphql/schema/core.gen' +import type { Author, Reaction, Shout, Topic } from '~/graphql/schema/core.gen' import { EventSource } from 'extended-eventsource' import { createContext, createEffect, createSignal, on, useContext } from 'solid-js' +import { Chat, Message } from '~/graphql/schema/chat.gen' import { sseUrl } from '../config/config' -import { Chat, Message } from '../graphql/schema/chat.gen' import { useSession } from './session' const RECONNECT_TIMES = 2 diff --git a/src/context/editor.tsx b/src/context/editor.tsx index 48b93fb2..e7542744 100644 --- a/src/context/editor.tsx +++ b/src/context/editor.tsx @@ -5,10 +5,10 @@ import { Editor } from '@tiptap/core' import { Accessor, createContext, createSignal, useContext } from 'solid-js' import { SetStoreFunction, createStore } from 'solid-js/store' import { useSnackbar } from '~/context/ui' +import deleteShoutQuery from '~/graphql/mutation/core/article-delete' +import updateShoutQuery from '~/graphql/mutation/core/article-update' +import { Topic, TopicInput } from '~/graphql/schema/core.gen' import { useFeed } from '../context/feed' -import deleteShoutQuery from '../graphql/mutation/core/article-delete' -import updateShoutQuery from '../graphql/mutation/core/article-update' -import { Topic, TopicInput } from '../graphql/schema/core.gen' import { slugify } from '../utils/slugify' import { useGraphQL } from './graphql' import { useLocalize } from './localize' diff --git a/src/context/following.tsx b/src/context/following.tsx index 273d97da..13a4810c 100644 --- a/src/context/following.tsx +++ b/src/context/following.tsx @@ -12,8 +12,8 @@ import { createStore } from 'solid-js/store' import followMutation from '~/graphql/mutation/core/follow' import unfollowMutation from '~/graphql/mutation/core/unfollow' -import loadAuthorFollowers from '../graphql/query/core/author-followers' -import { Author, Community, FollowingEntity, Topic } from '../graphql/schema/core.gen' +import loadAuthorFollowers from '~/graphql/query/core/author-followers' +import { Author, Community, FollowingEntity, Topic } from '~/graphql/schema/core.gen' import { useGraphQL } from './graphql' import { useSession } from './session' diff --git a/src/context/inbox.tsx b/src/context/inbox.tsx index 1122d272..c79f60da 100644 --- a/src/context/inbox.tsx +++ b/src/context/inbox.tsx @@ -6,9 +6,9 @@ import createChatMutation from '~/graphql/mutation/chat/chat-create' import createMessageMutation from '~/graphql/mutation/chat/chat-message-create' import loadChatMessagesQuery from '~/graphql/query/chat/chat-messages-load-by' import loadChatsQuery from '~/graphql/query/chat/chats-load' +import type { Chat, Message, MessagesBy, MutationCreate_MessageArgs } from '~/graphql/schema/chat.gen' +import { Author } from '~/graphql/schema/core.gen' import { useAuthors } from '../context/authors' -import type { Chat, Message, MessagesBy, MutationCreate_MessageArgs } from '../graphql/schema/chat.gen' -import { Author } from '../graphql/schema/core.gen' import { SSEMessage, useConnect } from './connect' type InboxContextType = { diff --git a/src/context/localize.tsx b/src/context/localize.tsx index d86499bb..5bc92718 100644 --- a/src/context/localize.tsx +++ b/src/context/localize.tsx @@ -10,7 +10,7 @@ import { onMount, useContext } from 'solid-js' -import { TimeAgo, type i18n, i18next, i18nextInit } from '~/lib/i18next' +import { TimeAgo, type i18n, i18next, i18nextInit } from '~/utils/i18next' i18nextInit() diff --git a/src/context/notifications.tsx b/src/context/notifications.tsx index f043296d..94e103b4 100644 --- a/src/context/notifications.tsx +++ b/src/context/notifications.tsx @@ -9,9 +9,9 @@ import markSeenMutation from '~/graphql/mutation/notifier/mark-seen' import markSeenAfterMutation from '~/graphql/mutation/notifier/mark-seen-after' import markSeenThreadMutation from '~/graphql/mutation/notifier/mark-seen-thread' import getNotifications from '~/graphql/query/notifier/notifications-load' +import { NotificationGroup, QueryLoad_NotificationsArgs } from '~/graphql/schema/core.gen' import { NotificationsPanel } from '../components/NotificationsPanel' import { ShowIfAuthenticated } from '../components/_shared/ShowIfAuthenticated' -import { NotificationGroup, QueryLoad_NotificationsArgs } from '../graphql/schema/core.gen' import { SSEMessage, useConnect } from './connect' import { useGraphQL } from './graphql' import { useSession } from './session' diff --git a/src/context/profile.tsx b/src/context/profile.tsx index 12ab5df9..821cf8d5 100644 --- a/src/context/profile.tsx +++ b/src/context/profile.tsx @@ -1,4 +1,4 @@ -import type { Author, ProfileInput } from '../graphql/schema/core.gen' +import type { Author, ProfileInput } from '~/graphql/schema/core.gen' import { AuthToken } from '@authorizerdev/authorizer-js' import { Accessor, JSX, createContext, createEffect, createSignal, on, useContext } from 'solid-js' diff --git a/src/context/reactions.tsx b/src/context/reactions.tsx index eeede0c2..8afb26d4 100644 --- a/src/context/reactions.tsx +++ b/src/context/reactions.tsx @@ -12,7 +12,7 @@ import { QueryLoad_Reactions_ByArgs, Reaction, ReactionKind -} from '../graphql/schema/core.gen' +} from '~/graphql/schema/core.gen' import { useGraphQL } from './graphql' import { useLocalize } from './localize' import { useSnackbar } from './ui' diff --git a/src/context/topics.tsx b/src/context/topics.tsx index 7e9b69b4..22fcff9e 100644 --- a/src/context/topics.tsx +++ b/src/context/topics.tsx @@ -10,9 +10,9 @@ import { on, useContext } from 'solid-js' -import { loadTopics } from '~/lib/api/public' +import { loadTopics } from '~/graphql/api/public' +import { Topic } from '~/graphql/schema/core.gen' import { getRandomTopicsFromArray } from '~/utils/getRandomTopicsFromArray' -import { Topic } from '../graphql/schema/core.gen' import { byTopicStatDesc } from '../utils/sortby' type TopicsContextType = { diff --git a/src/lib/api/private.ts b/src/graphql/api/private.ts similarity index 100% rename from src/lib/api/private.ts rename to src/graphql/api/private.ts diff --git a/src/lib/api/public.ts b/src/graphql/api/public.ts similarity index 100% rename from src/lib/api/public.ts rename to src/graphql/api/public.ts diff --git a/src/graphql/client/core.ts b/src/graphql/client/core.ts deleted file mode 100644 index e69de29b..00000000 diff --git a/src/routes/(home).tsx b/src/routes/(home).tsx index 9f61ef87..3b58922f 100644 --- a/src/routes/(home).tsx +++ b/src/routes/(home).tsx @@ -1,7 +1,7 @@ import { type RouteDefinition, type RouteSectionProps, createAsync } from '@solidjs/router' import { Show, Suspense, createSignal, onMount } from 'solid-js' +import { loadShouts } from '~/graphql/api/public' import { LoadShoutsOptions } from '~/graphql/schema/core.gen' -import { loadShouts } from '~/lib/api/public' import { restoreScrollPosition, saveScrollPosition } from '~/utils/scroll' import { byStat } from '~/utils/sortby' import { HomeView, HomeViewProps } from '../components/Views/Home' diff --git a/src/routes/[...slug].tsx b/src/routes/[...slug].tsx index 66670b97..cb89fc9a 100644 --- a/src/routes/[...slug].tsx +++ b/src/routes/[...slug].tsx @@ -4,12 +4,12 @@ import { FourOuFourView } from '~/components/Views/FourOuFour' import { Loading } from '~/components/_shared/Loading' import { gaIdentity } from '~/config/config' import { useLocalize } from '~/context/localize' -import { getShout } from '~/lib/api/public' +import { getShout } from '~/graphql/api/public' +import type { Shout } from '~/graphql/schema/core.gen' import { initGA, loadGAScript } from '~/utils/ga' import { FullArticle } from '../components/Article/FullArticle' import { PageLayout } from '../components/_shared/PageLayout' import { ReactionsProvider } from '../context/reactions' -import type { Shout } from '../graphql/schema/core.gen' const fetchShout = async (slug: string) => { const shoutLoader = getShout({ slug }) diff --git a/src/routes/author/(all).tsx b/src/routes/author/(all).tsx index 231a9a27..75ec7890 100644 --- a/src/routes/author/(all).tsx +++ b/src/routes/author/(all).tsx @@ -6,8 +6,8 @@ import { PageLayout } from '~/components/_shared/PageLayout' import { useAuthors } from '~/context/authors' import { useLocalize } from '~/context/localize' import { ReactionsProvider } from '~/context/reactions' +import { loadAuthors } from '~/graphql/api/public' import { Author, QueryLoad_Authors_ByArgs } from '~/graphql/schema/core.gen' -import { loadAuthors } from '~/lib/api/public' const fetchData = async () => { const opts: QueryLoad_Authors_ByArgs = { diff --git a/src/routes/author/[slug]/[...tab].tsx b/src/routes/author/[slug]/[...tab].tsx index 6be12a9c..3695a2c2 100644 --- a/src/routes/author/[slug]/[...tab].tsx +++ b/src/routes/author/[slug]/[...tab].tsx @@ -7,8 +7,8 @@ import { PageLayout } from '~/components/_shared/PageLayout' import { useAuthors } from '~/context/authors' import { useLocalize } from '~/context/localize' import { ReactionsProvider } from '~/context/reactions' +import { loadShouts } from '~/graphql/api/public' import { Author, LoadShoutsOptions, Shout } from '~/graphql/schema/core.gen' -import { loadShouts } from '~/lib/api/public' import { SHOUTS_PER_PAGE } from '../../(home)' const fetchAuthorShouts = async (slug: string, offset?: number) => { diff --git a/src/routes/edit/new.tsx b/src/routes/edit/new.tsx index ed16f490..7e2b0d46 100644 --- a/src/routes/edit/new.tsx +++ b/src/routes/edit/new.tsx @@ -6,11 +6,11 @@ import { AuthGuard } from '~/components/AuthGuard' import { Button } from '~/components/_shared/Button' import { Icon } from '~/components/_shared/Icon' import { PageLayout } from '~/components/_shared/PageLayout' +import enKeywords from '~/config/locales/en/keywords.json' +import ruKeywords from '~/config/locales/ru/keywords.json' import { useGraphQL } from '~/context/graphql' import { useLocalize } from '~/context/localize' import createShoutMutation from '~/graphql/mutation/core/article-create' -import enKeywords from '~/lib/locales/en/keywords.json' -import ruKeywords from '~/lib/locales/ru/keywords.json' import styles from '~/styles/Create.module.scss' import { LayoutType } from '~/types/common' import { getImageUrl } from '~/utils/getImageUrl' diff --git a/src/routes/expo/[...layout].tsx b/src/routes/expo/[...layout].tsx index 2320c1da..9e90c8a2 100644 --- a/src/routes/expo/[...layout].tsx +++ b/src/routes/expo/[...layout].tsx @@ -1,13 +1,13 @@ import { Params, RouteSectionProps, createAsync, useParams } from '@solidjs/router' import { createEffect, createMemo, on } from 'solid-js' +import { Topics } from '~/components/Nav/Topics' +import { Expo } from '~/components/Views/Expo' +import { PageLayout } from '~/components/_shared/PageLayout' +import { useLocalize } from '~/context/localize' +import { loadShouts } from '~/graphql/api/public' import { LoadShoutsOptions, Shout } from '~/graphql/schema/core.gen' -import { loadShouts } from '~/lib/api/public' import { LayoutType } from '~/types/common' import { SHOUTS_PER_PAGE } from '../(home)' -import { Topics } from '../../components/Nav/Topics' -import { Expo } from '../../components/Views/Expo' -import { PageLayout } from '../../components/_shared/PageLayout' -import { useLocalize } from '../../context/localize' const fetchExpoShouts = async (layouts: string[]) => { const result = await loadShouts({ diff --git a/src/routes/feed/[...feed].tsx b/src/routes/feed/[...feed].tsx index 5f2d90ce..9fc38011 100644 --- a/src/routes/feed/[...feed].tsx +++ b/src/routes/feed/[...feed].tsx @@ -7,15 +7,15 @@ import { useGraphQL } from '~/context/graphql' import { useLocalize } from '~/context/localize' import { ReactionsProvider } from '~/context/reactions' import { useSession } from '~/context/session' -import { LoadShoutsOptions, Shout } from '~/graphql/schema/core.gen' import { loadBookmarkedShouts, loadCoauthoredShouts, loadDiscussedShouts, loadFollowedShouts, loadUnratedShouts -} from '~/lib/api/private' -import { loadShouts } from '~/lib/api/public' +} from '~/graphql/api/private' +import { loadShouts } from '~/graphql/api/public' +import { LoadShoutsOptions, Shout } from '~/graphql/schema/core.gen' import { SHOUTS_PER_PAGE } from '../(home)' export type FeedPeriod = 'week' | 'month' | 'year' diff --git a/src/routes/guide/(guide).tsx b/src/routes/guide/(guide).tsx index 5e0fe2e8..faa351c9 100644 --- a/src/routes/guide/(guide).tsx +++ b/src/routes/guide/(guide).tsx @@ -1,10 +1,10 @@ import { Meta } from '@solidjs/meta' import { createMemo } from 'solid-js' -import ruKeywords from '~/lib/locales/ru/keywords.json' -import enKeywords from '~/lib/locales/ru/keywords.json' -import { StaticPage } from '../../components/Views/StaticPage' -import { useLocalize } from '../../context/localize' -import { getImageUrl } from '../../utils/getImageUrl' +import { StaticPage } from '~/components/Views/StaticPage' +import enKeywords from '~/config/locales/en/keywords.json' +import ruKeywords from '~/config/locales/ru/keywords.json' +import { useLocalize } from '~/context/localize' +import { getImageUrl } from '~/utils/getImageUrl' export default () => { const { t, lang } = useLocalize() diff --git a/src/routes/guide/debate.tsx b/src/routes/guide/debate.tsx index a1fca826..e553c859 100644 --- a/src/routes/guide/debate.tsx +++ b/src/routes/guide/debate.tsx @@ -1,7 +1,7 @@ import { Meta } from '@solidjs/meta' -import { StaticPage } from '../../components/Views/StaticPage' -import { useLocalize } from '../../context/localize' -import { getImageUrl } from '../../utils/getImageUrl' +import { StaticPage } from '~/components/Views/StaticPage' +import { useLocalize } from '~/context/localize' +import { getImageUrl } from '~/utils/getImageUrl' export const DiscussionRulesPage = () => { const { t } = useLocalize() diff --git a/src/routes/guide/manifest.tsx b/src/routes/guide/manifest.tsx index 3c84c053..8518450d 100644 --- a/src/routes/guide/manifest.tsx +++ b/src/routes/guide/manifest.tsx @@ -1,11 +1,11 @@ import { Meta } from '@solidjs/meta' -import { Feedback } from '../../components/Discours/Feedback' -import { Modal } from '../../components/Nav/Modal' -import Opener from '../../components/Nav/Modal/Opener' -import { StaticPage } from '../../components/Views/StaticPage' -import { Newsletter } from '../../components/_shared/Newsletter' -import { useLocalize } from '../../context/localize' -import { getImageUrl } from '../../utils/getImageUrl' +import { Feedback } from '~/components/Discours/Feedback' +import { Modal } from '~/components/Nav/Modal' +import Opener from '~/components/Nav/Modal/Opener' +import { StaticPage } from '~/components/Views/StaticPage' +import { Newsletter } from '~/components/_shared/Newsletter' +import { useLocalize } from '~/context/localize' +import { getImageUrl } from '~/utils/getImageUrl' export const ManifestPage = () => { const { t } = useLocalize() diff --git a/src/routes/guide/partners.tsx b/src/routes/guide/partners.tsx index 14db9050..5d7d6586 100644 --- a/src/routes/guide/partners.tsx +++ b/src/routes/guide/partners.tsx @@ -1,7 +1,7 @@ import { Meta } from '@solidjs/meta' -import { StaticPage } from '../../components/Views/StaticPage' -import { useLocalize } from '../../context/localize' -import { getImageUrl } from '../../utils/getImageUrl' +import { StaticPage } from '~/components/Views/StaticPage' +import { useLocalize } from '~/context/localize' +import { getImageUrl } from '~/utils/getImageUrl' export const PartnersPage = () => { const { t } = useLocalize() diff --git a/src/routes/guide/principles.tsx b/src/routes/guide/principles.tsx index 867b9c3e..1ed77893 100644 --- a/src/routes/guide/principles.tsx +++ b/src/routes/guide/principles.tsx @@ -1,10 +1,10 @@ import { Meta } from '@solidjs/meta' import { createMemo } from 'solid-js' -import ruKeywords from '~/lib/locales/ru/keywords.json' -import enKeywords from '~/lib/locales/ru/keywords.json' -import { StaticPage } from '../../components/Views/StaticPage' -import { useLocalize } from '../../context/localize' -import { getImageUrl } from '../../utils/getImageUrl' +import { StaticPage } from '~/components/Views/StaticPage' +import enKeywords from '~/config/locales/en/keywords.json' +import ruKeywords from '~/config/locales/ru/keywords.json' +import { useLocalize } from '~/context/localize' +import { getImageUrl } from '~/utils/getImageUrl' export const PrinciplesPage = () => { const { t, lang } = useLocalize() diff --git a/src/routes/guide/projects.tsx b/src/routes/guide/projects.tsx index 9d0b79f5..9e33580e 100644 --- a/src/routes/guide/projects.tsx +++ b/src/routes/guide/projects.tsx @@ -1,5 +1,5 @@ -import { PageLayout } from '../../components/_shared/PageLayout' -import { useLocalize } from '../../context/localize' +import { PageLayout } from '~/components/_shared/PageLayout' +import { useLocalize } from '~/context/localize' export const ProjectsPage = () => { const { t } = useLocalize() diff --git a/src/routes/guide/support.tsx b/src/routes/guide/support.tsx index 52e62cae..d5032866 100644 --- a/src/routes/guide/support.tsx +++ b/src/routes/guide/support.tsx @@ -1,8 +1,8 @@ import { Meta } from '@solidjs/meta' -import { Donate } from '../../components/Discours/Donate' -import { StaticPage } from '../../components/Views/StaticPage' -import { useLocalize } from '../../context/localize' -import { getImageUrl } from '../../utils/getImageUrl' +import { Donate } from '~/components/Discours/Donate' +import { StaticPage } from '~/components/Views/StaticPage' +import { useLocalize } from '~/context/localize' +import { getImageUrl } from '~/utils/getImageUrl' export const SupportPage = () => { const { t } = useLocalize() diff --git a/src/routes/guide/terms.tsx b/src/routes/guide/terms.tsx index fa668f0d..8f6c0759 100644 --- a/src/routes/guide/terms.tsx +++ b/src/routes/guide/terms.tsx @@ -1,7 +1,7 @@ import { Meta } from '@solidjs/meta' -import { StaticPage } from '../../components/Views/StaticPage' -import { useLocalize } from '../../context/localize' -import { getImageUrl } from '../../utils/getImageUrl' +import { StaticPage } from '~/components/Views/StaticPage' +import { useLocalize } from '~/context/localize' +import { getImageUrl } from '~/utils/getImageUrl' export const TermsOfUsePage = () => { const { t } = useLocalize() diff --git a/src/routes/guide/thanks.tsx b/src/routes/guide/thanks.tsx index e89c76f3..1b57fe9f 100644 --- a/src/routes/guide/thanks.tsx +++ b/src/routes/guide/thanks.tsx @@ -1,7 +1,7 @@ import { Meta } from '@solidjs/meta' -import { StaticPage } from '../../components/Views/StaticPage' -import { useLocalize } from '../../context/localize' -import { getImageUrl } from '../../utils/getImageUrl' +import { StaticPage } from '~/components/Views/StaticPage' +import { useLocalize } from '~/context/localize' +import { getImageUrl } from '~/utils/getImageUrl' export const ThanksPage = () => { const { t } = useLocalize() diff --git a/src/routes/profile/(settings).tsx b/src/routes/profile/(settings).tsx index 3ed3b555..019b31e6 100644 --- a/src/routes/profile/(settings).tsx +++ b/src/routes/profile/(settings).tsx @@ -1,8 +1,8 @@ +import { AuthGuard } from '~/components/AuthGuard' +import { ProfileSettings } from '~/components/ProfileSettings' +import { PageLayout } from '~/components/_shared/PageLayout' +import { useLocalize } from '~/context/localize' import { ProfileProvider } from '~/context/profile' -import { AuthGuard } from '../../components/AuthGuard' -import { ProfileSettings } from '../../components/ProfileSettings' -import { PageLayout } from '../../components/_shared/PageLayout' -import { useLocalize } from '../../context/localize' export const ProfileSettingsPage = () => { const { t } = useLocalize() diff --git a/src/routes/profile/security.tsx b/src/routes/profile/security.tsx index e332024a..b3ce6472 100644 --- a/src/routes/profile/security.tsx +++ b/src/routes/profile/security.tsx @@ -1,17 +1,17 @@ import { UpdateProfileInput } from '@authorizerdev/authorizer-js' import { clsx } from 'clsx' import { Show, createEffect, createSignal, on } from 'solid-js' -import { AuthGuard } from '../../components/AuthGuard' -import { PasswordField } from '../../components/Nav/AuthModal/PasswordField' -import { ProfileSettingsNavigation } from '../../components/Nav/ProfileSettingsNavigation' -import { Button } from '../../components/_shared/Button' -import { Icon } from '../../components/_shared/Icon' -import { Loading } from '../../components/_shared/Loading' -import { PageLayout } from '../../components/_shared/PageLayout' -import { useLocalize } from '../../context/localize' -import { useSession } from '../../context/session' -import { DEFAULT_HEADER_OFFSET, useSnackbar, useUI } from '../../context/ui' -import { validateEmail } from '../../utils/validateEmail' +import { AuthGuard } from '~/components/AuthGuard' +import { PasswordField } from '~/components/Nav/AuthModal/PasswordField' +import { ProfileSettingsNavigation } from '~/components/Nav/ProfileSettingsNavigation' +import { Button } from '~/components/_shared/Button' +import { Icon } from '~/components/_shared/Icon' +import { Loading } from '~/components/_shared/Loading' +import { PageLayout } from '~/components/_shared/PageLayout' +import { useLocalize } from '~/context/localize' +import { useSession } from '~/context/session' +import { DEFAULT_HEADER_OFFSET, useSnackbar, useUI } from '~/context/ui' +import { validateEmail } from '~/utils/validateEmail' import styles from './Settings.module.scss' type FormField = 'oldPassword' | 'newPassword' | 'newPasswordConfirm' | 'email' diff --git a/src/routes/profile/subs.tsx b/src/routes/profile/subs.tsx index 5862eded..075d49c9 100644 --- a/src/routes/profile/subs.tsx +++ b/src/routes/profile/subs.tsx @@ -1,7 +1,7 @@ -import { AuthGuard } from '../../components/AuthGuard' -import { ProfileSubscriptions } from '../../components/Views/ProfileSubscriptions' -import { PageLayout } from '../../components/_shared/PageLayout' -import { useLocalize } from '../../context/localize' +import { AuthGuard } from '~/components/AuthGuard' +import { ProfileSubscriptions } from '~/components/Views/ProfileSubscriptions' +import { PageLayout } from '~/components/_shared/PageLayout' +import { useLocalize } from '~/context/localize' export const ProfileSubscriptionsPage = () => { const { t } = useLocalize() diff --git a/src/routes/search/(search).tsx b/src/routes/search/(search).tsx index 3333dd2e..46e9b52d 100644 --- a/src/routes/search/(search).tsx +++ b/src/routes/search/(search).tsx @@ -1,13 +1,13 @@ import { action, useSearchParams } from '@solidjs/router' import { Show, Suspense, createEffect, createSignal, onCleanup } from 'solid-js' +import { SearchView } from '~/components/Views/Search' +import { Loading } from '~/components/_shared/Loading' +import { PageLayout } from '~/components/_shared/PageLayout' +import { useLocalize } from '~/context/localize' +import { ReactionsProvider } from '~/context/reactions' +import { loadShoutsSearch } from '~/graphql/api/public' import { QueryLoad_Shouts_SearchArgs, SearchResult } from '~/graphql/schema/core.gen' -import { loadShoutsSearch } from '~/lib/api/public' -import { SearchView } from '../../components/Views/Search' -import { Loading } from '../../components/_shared/Loading' -import { PageLayout } from '../../components/_shared/PageLayout' -import { useLocalize } from '../../context/localize' -import { ReactionsProvider } from '../../context/reactions' const fetchSearchResult = async ({ text, limit, offset }: QueryLoad_Shouts_SearchArgs) => { if (!text.trim()) return () => [] as SearchResult[] diff --git a/src/routes/topic/(all).tsx b/src/routes/topic/(all).tsx index 55e72fb1..63abb6f5 100644 --- a/src/routes/topic/(all).tsx +++ b/src/routes/topic/(all).tsx @@ -1,13 +1,13 @@ import { type RouteDefinition, type RouteSectionProps, createAsync } from '@solidjs/router' import { Suspense, createEffect } from 'solid-js' +import { AllTopics } from '~/components/Views/AllTopics' +import { Loading } from '~/components/_shared/Loading' +import { PageLayout } from '~/components/_shared/PageLayout' +import { useLocalize } from '~/context/localize' +import { ReactionsProvider } from '~/context/reactions' import { useTopics } from '~/context/topics' +import { loadTopics } from '~/graphql/api/public' import { Topic } from '~/graphql/schema/core.gen' -import { loadTopics } from '~/lib/api/public' -import { AllTopics } from '../../components/Views/AllTopics' -import { Loading } from '../../components/_shared/Loading' -import { PageLayout } from '../../components/_shared/PageLayout' -import { useLocalize } from '../../context/localize' -import { ReactionsProvider } from '../../context/reactions' const fetchData = async () => { const topicsFetcher = loadTopics() diff --git a/src/routes/topic/[...slug].tsx b/src/routes/topic/[...slug].tsx index fb5588d8..63e7914f 100644 --- a/src/routes/topic/[...slug].tsx +++ b/src/routes/topic/[...slug].tsx @@ -7,8 +7,8 @@ import { PageLayout } from '~/components/_shared/PageLayout' import { useLocalize } from '~/context/localize' import { ReactionsProvider } from '~/context/reactions' import { useTopics } from '~/context/topics' +import { loadShouts } from '~/graphql/api/public' import { LoadShoutsOptions, Shout, Topic } from '~/graphql/schema/core.gen' -import { loadShouts } from '~/lib/api/public' import { SHOUTS_PER_PAGE } from '../(home)' const fetchTopicShouts = async (slug: string, offset?: number) => { diff --git a/src/types/server.d.ts b/src/types/server.d.ts index 6eb17296..05c5b845 100644 --- a/src/types/server.d.ts +++ b/src/types/server.d.ts @@ -1,8 +1,8 @@ -// Типы из '../graphql/schema/chat.gen' -import type { Chat } from '../graphql/schema/chat.gen'; -// Типы из '../graphql/schema/core.gen' -import type { Author, SearchResult, Shout, Topic } from '../graphql/schema/core.gen'; +// Типы из '~/graphql/schema/chat.gen' +import type { Chat } from '~/graphql/schema/chat.gen'; +// Типы из '~/graphql/schema/core.gen' +import type { Author, SearchResult, Shout, Topic } from '~/graphql/schema/core.gen'; import { LayoutType } from './common'; // Все возможные свойства, которые могут быть переданы с сервера diff --git a/src/utils/dummyFilter.ts b/src/utils/dummyFilter.ts index f231c739..844a136e 100644 --- a/src/utils/dummyFilter.ts +++ b/src/utils/dummyFilter.ts @@ -1,4 +1,4 @@ -import type { Author, Topic } from '../graphql/schema/core.gen' +import type { Author, Topic } from '~/graphql/schema/core.gen' import { isAuthor } from './isAuthor' import { translit } from './ru2en' diff --git a/src/utils/getRandomTopicsFromArray.ts b/src/utils/getRandomTopicsFromArray.ts index 27389537..8911f253 100644 --- a/src/utils/getRandomTopicsFromArray.ts +++ b/src/utils/getRandomTopicsFromArray.ts @@ -1,5 +1,5 @@ +import { Topic } from '~/graphql/schema/core.gen' import { RANDOM_TOPICS_COUNT } from '../components/Views/Home' -import { Topic } from '../graphql/schema/core.gen' export const getRandomTopicsFromArray = (topics: Topic[], count: number = RANDOM_TOPICS_COUNT): Topic[] => { if (!Array.isArray(topics)) return [] as Topic[] diff --git a/src/utils/groupby.ts b/src/utils/groupby.ts index 3b23012c..b4dbbae1 100644 --- a/src/utils/groupby.ts +++ b/src/utils/groupby.ts @@ -1,4 +1,4 @@ -import type { Author, Shout, Topic } from '../graphql/schema/core.gen' +import type { Author, Shout, Topic } from '~/graphql/schema/core.gen' export const groupByName = (arr: Author[]) => { return arr.reduce( diff --git a/src/lib/i18next.ts b/src/utils/i18next.ts similarity index 90% rename from src/lib/i18next.ts rename to src/utils/i18next.ts index c4249c19..8f144195 100644 --- a/src/lib/i18next.ts +++ b/src/utils/i18next.ts @@ -4,8 +4,8 @@ import ICU from 'i18next-icu' import TimeAgo from 'javascript-time-ago' import enTime from 'javascript-time-ago/locale/en' import ruTime from 'javascript-time-ago/locale/ru' -import en from './locales/en/translation.json' -import ru from './locales/ru/translation.json' +import en from '~/config/locales/en/translation.json' +import ru from '~/config/locales/ru/translation.json' TimeAgo.addLocale(enTime) TimeAgo.addLocale(ruTime) diff --git a/src/utils/isAuthor.ts b/src/utils/isAuthor.ts index f5b6929d..301ec7a8 100644 --- a/src/utils/isAuthor.ts +++ b/src/utils/isAuthor.ts @@ -1,4 +1,4 @@ -import { Author, Topic } from '../graphql/schema/core.gen' +import { Author, Topic } from '~/graphql/schema/core.gen' export const isAuthor = (value: Author | Topic): value is Author => { return 'name' in value diff --git a/src/utils/meta.ts b/src/utils/meta.ts index 19bcff27..b444912d 100644 --- a/src/utils/meta.ts +++ b/src/utils/meta.ts @@ -1,4 +1,4 @@ -import { Shout } from '../graphql/schema/core.gen' +import { Shout } from '~/graphql/schema/core.gen' const MAX_DESCRIPTION_LENGTH = 150 diff --git a/src/utils/sortby.ts b/src/utils/sortby.ts index 61ef9676..9731a0d8 100644 --- a/src/utils/sortby.ts +++ b/src/utils/sortby.ts @@ -1,4 +1,4 @@ -import type { Author, Maybe, Reaction, Shout, Topic, TopicStat } from '../graphql/schema/core.gen' +import type { Author, Maybe, Reaction, Shout, Topic, TopicStat } from '~/graphql/schema/core.gen' // biome-ignore lint/suspicious/noExplicitAny: sort by first char export const byFirstChar = (a: { name?: any; title?: any }, b: { name?: any; title?: any }) => diff --git a/src/utils/translate.ts b/src/utils/translate.ts index aa347612..f2a60398 100644 --- a/src/utils/translate.ts +++ b/src/utils/translate.ts @@ -1,4 +1,4 @@ -import { Author } from '../graphql/schema/core.gen' +import { Author } from '~/graphql/schema/core.gen' import { capitalize } from './capitalize' import { translit } from './ru2en'