This commit is contained in:
Untone 2024-07-21 05:17:42 +03:00
parent 77d8ca352a
commit cad695dc59
70 changed files with 110 additions and 102 deletions

View File

@ -18,16 +18,16 @@ import { capitalize } from '~/utils/capitalize'
import { AuthorBadge } from '../Author/AuthorBadge' import { AuthorBadge } from '../Author/AuthorBadge'
import { CardTopic } from '../Feed/CardTopic' import { CardTopic } from '../Feed/CardTopic'
import { FeedArticlePopup } from '../Feed/FeedArticlePopup' import { FeedArticlePopup } from '../Feed/FeedArticlePopup'
import stylesHeader from '../Nav/Header/Header.module.scss' import stylesHeader from '../HeaderNav/Header.module.scss'
import { Modal } from '../Nav/Modal'
import { TableOfContents } from '../TableOfContents'
import { Icon } from '../_shared/Icon' import { Icon } from '../_shared/Icon'
import { Image } from '../_shared/Image' import { Image } from '../_shared/Image'
import { InviteMembers } from '../_shared/InviteMembers' import { InviteMembers } from '../_shared/InviteMembers'
import { Lightbox } from '../_shared/Lightbox' import { Lightbox } from '../_shared/Lightbox'
import { Modal } from '../_shared/Modal'
import { Popover } from '../_shared/Popover' import { Popover } from '../_shared/Popover'
import { ShareModal } from '../_shared/ShareModal' import { ShareModal } from '../_shared/ShareModal'
import { ImageSwiper } from '../_shared/SolidSwiper' import { ImageSwiper } from '../_shared/SolidSwiper'
import { TableOfContents } from '../_shared/TableOfContents'
import { VideoPlayer } from '../_shared/VideoPlayer' import { VideoPlayer } from '../_shared/VideoPlayer'
import styles from './Article.module.scss' import styles from './Article.module.scss'
import { AudioHeader } from './AudioHeader' import { AudioHeader } from './AudioHeader'

View File

@ -1,7 +1,7 @@
import { clsx } from 'clsx' import { clsx } from 'clsx'
import { Show, createEffect, createSignal, on } from 'solid-js' import { Show, createEffect, createSignal, on } from 'solid-js'
import { useLocalize } from '~/context/localize' import { useLocalize } from '~/context/localize'
import { Icon } from '../../../_shared/Icon' import { Icon } from '../../_shared/Icon'
import styles from './PasswordField.module.scss' import styles from './PasswordField.module.scss'
type Props = { type Props = {

View File

@ -1,7 +1,7 @@
import { For } from 'solid-js' import { For } from 'solid-js'
import { useLocalize } from '~/context/localize' import { useLocalize } from '~/context/localize'
import { useSession } from '~/context/session' import { useSession } from '~/context/session'
import { Icon } from '../../../_shared/Icon' import { Icon } from '../../_shared/Icon'
import styles from './SocialProviders.module.scss' import styles from './SocialProviders.module.scss'
export const PROVIDERS = ['facebook', 'google', 'github'] // 'vk' | 'telegram' export const PROVIDERS = ['facebook', 'google', 'github'] // 'vk' | 'telegram'

View File

@ -13,8 +13,8 @@ import { FollowingEntity, Topic } from '~/graphql/schema/core.gen'
import { isCyrillic } from '~/intl/translate' import { isCyrillic } from '~/intl/translate'
import { translit } from '~/intl/translit' import { translit } from '~/intl/translit'
import { SharePopup, getShareUrl } from '../../Article/SharePopup' import { SharePopup, getShareUrl } from '../../Article/SharePopup'
import { Modal } from '../../Nav/Modal'
import { TopicBadge } from '../../Topic/TopicBadge' import { TopicBadge } from '../../Topic/TopicBadge'
import { Modal } from '../../_shared/Modal'
import { AuthorBadge } from '../AuthorBadge' import { AuthorBadge } from '../AuthorBadge'
import { Userpic } from '../Userpic' import { Userpic } from '../Userpic'
import styles from './AuthorCard.module.scss' import styles from './AuthorCard.module.scss'

View File

@ -5,7 +5,7 @@ import { Icon } from '~/components/_shared/Icon'
import { Popover } from '~/components/_shared/Popover' import { Popover } from '~/components/_shared/Popover'
import { useLocalize } from '~/context/localize' import { useLocalize } from '~/context/localize'
import { UploadedFile } from '~/types/upload' import { UploadedFile } from '~/types/upload'
import { Modal } from '../../Nav/Modal' import { Modal } from '../../_shared/Modal'
import { UploadModalContent } from '../UploadModalContent' import { UploadModalContent } from '../UploadModalContent'
import { useUI } from '~/context/ui' import { useUI } from '~/context/ui'

View File

@ -7,7 +7,7 @@ import { useLocalize } from '~/context/localize'
import { useUI } from '~/context/ui' import { useUI } from '~/context/ui'
import { useOutsideClickHandler } from '~/lib/useOutsideClickHandler' import { useOutsideClickHandler } from '~/lib/useOutsideClickHandler'
import { UploadedFile } from '~/types/upload' import { UploadedFile } from '~/types/upload'
import { Modal } from '../../Nav/Modal' import { Modal } from '../../_shared/Modal'
import { InlineForm } from '../InlineForm' import { InlineForm } from '../InlineForm'
import { UploadModalContent } from '../UploadModalContent' import { UploadModalContent } from '../UploadModalContent'
import { Menu } from './Menu' import { Menu } from './Menu'

View File

@ -23,10 +23,10 @@ import {
import { useEditorContext } from '~/context/editor' import { useEditorContext } from '~/context/editor'
import { useLocalize } from '~/context/localize' import { useLocalize } from '~/context/localize'
import { UploadedFile } from '~/types/upload' import { UploadedFile } from '~/types/upload'
import { Modal } from '../Nav/Modal'
import { Button } from '../_shared/Button' import { Button } from '../_shared/Button'
import { Icon } from '../_shared/Icon' import { Icon } from '../_shared/Icon'
import { Loading } from '../_shared/Loading' import { Loading } from '../_shared/Loading'
import { Modal } from '../_shared/Modal'
import { Popover } from '../_shared/Popover' import { Popover } from '../_shared/Popover'
import { ShowOnlyOnClient } from '../_shared/ShowOnlyOnClient' import { ShowOnlyOnClient } from '../_shared/ShowOnlyOnClient'
import { LinkBubbleMenuModule } from './LinkBubbleMenu' import { LinkBubbleMenuModule } from './LinkBubbleMenu'

View File

@ -13,7 +13,7 @@ import { CoverImage } from '../../Article/CoverImage'
import { SharePopup, getShareUrl } from '../../Article/SharePopup' import { SharePopup, getShareUrl } from '../../Article/SharePopup'
import { ShoutRatingControl } from '../../Article/ShoutRatingControl' import { ShoutRatingControl } from '../../Article/ShoutRatingControl'
import { AuthorLink } from '../../Author/AuthorLink' import { AuthorLink } from '../../Author/AuthorLink'
import stylesHeader from '../../Nav/Header/Header.module.scss' import stylesHeader from '../../HeaderNav/Header.module.scss'
import { CardTopic } from '../CardTopic' import { CardTopic } from '../CardTopic'
import { FeedArticlePopup } from '../FeedArticlePopup' import { FeedArticlePopup } from '../FeedArticlePopup'
import styles from './ArticleCard.module.scss' import styles from './ArticleCard.module.scss'

View File

@ -753,12 +753,7 @@
white-space: nowrap; white-space: nowrap;
} }
.rightItem {
margin-right: 0;
position: absolute;
right: 0;
top: 0;
}
} }
a:link, a:link,
@ -801,13 +796,6 @@
} }
} }
.rightItemIcon {
display: inline-block;
margin-left: 0.3em;
position: relative;
top: 0.15em;
}
.editorPopup { .editorPopup {
border: 1px solid rgb(0 0 0 / 15%) !important; border: 1px solid rgb(0 0 0 / 15%) !important;
border-radius: 1.6rem; border-radius: 1.6rem;

View File

@ -1,24 +1,20 @@
import { A, redirect, useSearchParams } from '@solidjs/router' import { A, redirect, useSearchParams } from '@solidjs/router'
import { clsx } from 'clsx' import { clsx } from 'clsx'
import { For, Show, createEffect, createSignal, onCleanup, onMount } from 'solid-js' import { Show, createEffect, createSignal, onCleanup, onMount } from 'solid-js'
import type { Topic } from '~/graphql/schema/core.gen'
import { getRandomTopicsFromArray } from '~/lib/getRandomTopicsFromArray'
import { useLocalize } from '~/context/localize' import { useLocalize } from '~/context/localize'
import { useSession } from '~/context/session' import { useSession } from '~/context/session'
import { useTopics } from '~/context/topics'
import { useUI } from '~/context/ui' import { useUI } from '~/context/ui'
import { SharePopup, getShareUrl } from '../../Article/SharePopup' import { SharePopup, getShareUrl } from '../Article/SharePopup'
import { Icon } from '../../_shared/Icon'
import { Newsletter } from '../../_shared/Newsletter'
import { AuthModal } from '../AuthModal' import { AuthModal } from '../AuthModal'
import { ConfirmModal } from '../ConfirmModal'
import { HeaderAuth } from '../HeaderAuth'
import { Modal } from '../Modal'
import { SearchModal } from '../SearchModal/SearchModal' import { SearchModal } from '../SearchModal/SearchModal'
import { Snackbar } from '../Snackbar' import { Snackbar } from '../Snackbar/Snackbar'
import { RandomTopics } from '../TopicsNav/TopicsNav'
import { ConfirmModal } from '../_shared/ConfirmModal'
import { Icon } from '../_shared/Icon'
import { Modal } from '../_shared/Modal'
import { Newsletter } from '../_shared/Newsletter'
import styles from './Header.module.scss' import styles from './Header.module.scss'
import { HeaderAuth } from './HeaderAuth'
import { Link } from './HeaderLink' import { Link } from './HeaderLink'
type Props = { type Props = {
@ -43,8 +39,6 @@ export const Header = (props: Props) => {
const { modal } = useUI() const { modal } = useUI()
const { requireAuthentication } = useSession() const { requireAuthentication } = useSession()
const [searchParams] = useSearchParams<HeaderSearchParams>() const [searchParams] = useSearchParams<HeaderSearchParams>()
const { sortedTopics: topics } = useTopics()
const [randomTopics, setRandomTopics] = createSignal<Topic[]>([])
const [getIsScrollingBottom, setIsScrollingBottom] = createSignal(false) const [getIsScrollingBottom, setIsScrollingBottom] = createSignal(false)
const [getIsScrolled, setIsScrolled] = createSignal(false) const [getIsScrolled, setIsScrolled] = createSignal(false)
const [fixed, setFixed] = createSignal(false) const [fixed, setFixed] = createSignal(false)
@ -57,17 +51,8 @@ export const Header = (props: Props) => {
const { session } = useSession() const { session } = useSession()
const toggleFixed = () => setFixed(!fixed()) const toggleFixed = () => setFixed(!fixed())
const tag = (topic: Topic) =>
/[ЁА-яё]/.test(topic.title || '') && lang() !== 'ru' ? topic.slug : topic.title
let windowScrollTop = 0 let windowScrollTop = 0
createEffect(() => {
if (topics()?.length) {
setRandomTopics(getRandomTopicsFromArray(topics()))
}
})
createEffect(() => { createEffect(() => {
const mainContent = document.querySelector<HTMLDivElement>('.main-content') const mainContent = document.querySelector<HTMLDivElement>('.main-content')
@ -439,25 +424,7 @@ export const Header = (props: Props) => {
onMouseOver={clearTimer} onMouseOver={clearTimer}
onMouseOut={hideSubnavigation} onMouseOut={hideSubnavigation}
> >
<ul class="nodash"> <RandomTopics />
<Show when={randomTopics().length > 0}>
<For each={randomTopics()}>
{(topic: Topic) => (
<li class="item">
<A href={`/topic/${topic.slug}`}>
<span>#{tag(topic)}</span>
</A>
</li>
)}
</For>
<li class={styles.rightItem}>
<A href="/topic">
{t('All topics')}
<Icon name="arrow-right-black" class={clsx(styles.icon, styles.rightItemIcon)} />
</A>
</li>
</Show>
</ul>
</div> </div>
<div <div

View File

@ -1,3 +1,4 @@
import { A, useLocation } from '@solidjs/router'
import { clsx } from 'clsx' import { clsx } from 'clsx'
import { Show, createMemo, createSignal, onCleanup, onMount } from 'solid-js' import { Show, createMemo, createSignal, onCleanup, onMount } from 'solid-js'
import { useEditorContext } from '~/context/editor' import { useEditorContext } from '~/context/editor'
@ -7,15 +8,13 @@ import { useSession } from '~/context/session'
import { useUI } from '~/context/ui' import { useUI } from '~/context/ui'
import type { Author } from '~/graphql/schema/core.gen' import type { Author } from '~/graphql/schema/core.gen'
import { Userpic } from '../Author/Userpic' import { Userpic } from '../Author/Userpic'
import { ProfilePopup } from '../ProfileNav/ProfilePopup'
import { Button } from '../_shared/Button' import { Button } from '../_shared/Button'
import { Icon } from '../_shared/Icon' import { Icon } from '../_shared/Icon'
import { Popover } from '../_shared/Popover' import { Popover } from '../_shared/Popover'
import { ShowOnlyOnClient } from '../_shared/ShowOnlyOnClient'
import { A, useLocation } from '@solidjs/router'
import { Popup } from '../_shared/Popup' import { Popup } from '../_shared/Popup'
import styles from './Header/Header.module.scss' import { ShowOnlyOnClient } from '../_shared/ShowOnlyOnClient'
import { ProfilePopup } from './ProfilePopup' import styles from './Header.module.scss'
type Props = { type Props = {
setIsProfilePopupVisible: (value: boolean) => void setIsProfilePopupVisible: (value: boolean) => void

View File

@ -1,6 +1,6 @@
import { A, useLocation } from '@solidjs/router' import { A, useLocation } from '@solidjs/router'
import { clsx } from 'clsx' import { clsx } from 'clsx'
import { ConditionalWrapper } from '../../_shared/ConditionalWrapper' import { ConditionalWrapper } from '../_shared/ConditionalWrapper'
import styles from './Header.module.scss' import styles from './Header.module.scss'
type Props = { type Props = {

View File

@ -7,7 +7,7 @@ import { useLocalize } from '~/context/localize'
import type { Shout } from '~/graphql/schema/core.gen' import type { Shout } from '~/graphql/schema/core.gen'
import { byScore } from '~/lib/sort' import { byScore } from '~/lib/sort'
import { restoreScrollPosition, saveScrollPosition } from '~/utils/scroll' import { restoreScrollPosition, saveScrollPosition } from '~/utils/scroll'
import { FEED_PAGE_SIZE } from '../../Views/Feed/Feed' import { FEED_PAGE_SIZE } from '../Views/Feed/Feed'
import styles from './SearchModal.module.scss' import styles from './SearchModal.module.scss'
import { SearchResultItem } from './SearchResultItem' import { SearchResultItem } from './SearchResultItem'

View File

@ -1,6 +1,6 @@
import type { Shout } from '~/graphql/schema/core.gen' import type { Shout } from '~/graphql/schema/core.gen'
import { ArticleCard } from '../../Feed/ArticleCard' import { ArticleCard } from '../Feed/ArticleCard'
interface SearchCardProps { interface SearchCardProps {
settings?: { settings?: {

View File

@ -76,3 +76,17 @@
} }
} }
} }
.rightItem {
margin-right: 0;
position: absolute;
right: 0;
top: 0;
}
.rightItemIcon {
display: inline-block;
margin-left: 0.3em;
position: relative;
top: 0.15em;
}

View File

@ -1,10 +1,50 @@
import { A, useMatch } from '@solidjs/router'
import { clsx } from 'clsx' import { clsx } from 'clsx'
import { For, Show, createEffect, createSignal, on, onMount } from 'solid-js'
import { Icon } from '~/components/_shared/Icon' import { Icon } from '~/components/_shared/Icon'
import { useLocalize } from '~/context/localize' import { useLocalize } from '~/context/localize'
import { useTopics } from '~/context/topics'
import { A, useMatch } from '@solidjs/router' import type { Topic } from '~/graphql/schema/core.gen'
import { getRandomTopicsFromArray } from '~/lib/getRandomTopicsFromArray'
import styles from './TopicsNav.module.scss' import styles from './TopicsNav.module.scss'
export const RandomTopics = () => {
const { sortedTopics } = useTopics()
const { lang, t } = useLocalize()
const tag = (topic: Topic) =>
/[ЁА-яё]/.test(topic.title || '') && lang() !== 'ru' ? topic.slug : topic.title
const [randomTopics, setRandomTopics] = createSignal<Topic[]>([])
createEffect(
on(sortedTopics, (ttt: Topic[]) => {
if (ttt?.length) {
setRandomTopics(getRandomTopicsFromArray(ttt))
}
})
)
onMount(() => sortedTopics() && getRandomTopicsFromArray(sortedTopics()))
return (
<ul class="nodash">
<Show when={randomTopics().length > 0}>
<For each={randomTopics()}>
{(topic: Topic) => (
<li class="item">
<A href={`/topic/${topic.slug}`}>
<span>#{tag(topic)}</span>
</A>
</li>
)}
</For>
<li class={styles.rightItem}>
<A href="/topic">
{t('All topics')}
<Icon name="arrow-right-black" class={clsx(styles.icon, styles.rightItemIcon)} />
</A>
</li>
</Show>
</ul>
)
}
export const TopicsNav = () => { export const TopicsNav = () => {
const { t } = useLocalize() const { t } = useLocalize()
const matchExpo = useMatch(() => '/expo') const matchExpo = useMatch(() => '/expo')

View File

@ -2,8 +2,8 @@ import { useSearchParams } from '@solidjs/router'
import { clsx } from 'clsx' import { clsx } from 'clsx'
import { For, Show, createEffect, createMemo, createSignal } from 'solid-js' import { For, Show, createEffect, createMemo, createSignal } from 'solid-js'
import { AuthorBadge } from '~/components/Author/AuthorBadge' import { AuthorBadge } from '~/components/Author/AuthorBadge'
import { InlineLoader } from '~/components/InlineLoader'
import { Button } from '~/components/_shared/Button' import { Button } from '~/components/_shared/Button'
import { InlineLoader } from '~/components/_shared/InlineLoader'
import { Loading } from '~/components/_shared/Loading' import { Loading } from '~/components/_shared/Loading'
import { SearchField } from '~/components/_shared/SearchField' import { SearchField } from '~/components/_shared/SearchField'
import { useAuthors } from '~/context/authors' import { useAuthors } from '~/context/authors'

View File

@ -14,8 +14,8 @@ import { isDesktop } from '~/lib/mediaQuery'
import { clone } from '~/utils/clone' import { clone } from '~/utils/clone'
import { Panel } from '../../Editor' import { Panel } from '../../Editor'
import { AutoSaveNotice } from '../../Editor/AutoSaveNotice' import { AutoSaveNotice } from '../../Editor/AutoSaveNotice'
import { Modal } from '../../Nav/Modal' import { Modal } from '../../_shared/Modal'
import { TableOfContents } from '../../TableOfContents' import { TableOfContents } from '../../_shared/TableOfContents'
import { PublishSettings } from '../PublishSettings' import { PublishSettings } from '../PublishSettings'
import styles from './EditView.module.scss' import styles from './EditView.module.scss'

View File

@ -34,8 +34,8 @@ import { Editor, Panel } from '../../Editor'
import { AudioUploader } from '../../Editor/AudioUploader' import { AudioUploader } from '../../Editor/AudioUploader'
import { AutoSaveNotice } from '../../Editor/AutoSaveNotice' import { AutoSaveNotice } from '../../Editor/AutoSaveNotice'
import { VideoUploader } from '../../Editor/VideoUploader' import { VideoUploader } from '../../Editor/VideoUploader'
import { Modal } from '../../Nav/Modal' import { Modal } from '../../_shared/Modal'
import { TableOfContents } from '../../TableOfContents' import { TableOfContents } from '../../_shared/TableOfContents'
import styles from './EditView.module.scss' import styles from './EditView.module.scss'
const SimplifiedEditor = lazy(() => import('../../Editor/SimplifiedEditor')) const SimplifiedEditor = lazy(() => import('../../Editor/SimplifiedEditor'))

View File

@ -27,7 +27,7 @@ import stylesBeside from '../../Feed/Beside.module.scss'
import stylesTopic from '../../Feed/CardTopic.module.scss' import stylesTopic from '../../Feed/CardTopic.module.scss'
import { Placeholder } from '../../Feed/Placeholder' import { Placeholder } from '../../Feed/Placeholder'
import { Sidebar } from '../../Feed/Sidebar' import { Sidebar } from '../../Feed/Sidebar'
import { Modal } from '../../Nav/Modal' import { Modal } from '../../_shared/Modal'
import styles from './Feed.module.scss' import styles from './Feed.module.scss'
export const FEED_PAGE_SIZE = 20 export const FEED_PAGE_SIZE = 20

View File

@ -16,7 +16,7 @@ import { Row2 } from '../Feed/Row2'
import { Row3 } from '../Feed/Row3' import { Row3 } from '../Feed/Row3'
import { Row5 } from '../Feed/Row5' import { Row5 } from '../Feed/Row5'
import RowShort from '../Feed/RowShort' import RowShort from '../Feed/RowShort'
import { TopicsNav } from '../Nav/TopicsNav' import { TopicsNav } from '../TopicsNav'
import { Icon } from '../_shared/Icon' import { Icon } from '../_shared/Icon'
import { ArticleCardSwiper } from '../_shared/SolidSwiper/ArticleCardSwiper' import { ArticleCardSwiper } from '../_shared/SolidSwiper/ArticleCardSwiper'
import styles from './Home.module.scss' import styles from './Home.module.scss'

View File

@ -21,7 +21,7 @@ import DialogHeader from '../../Inbox/DialogHeader'
import { Message } from '../../Inbox/Message' import { Message } from '../../Inbox/Message'
import MessagesFallback from '../../Inbox/MessagesFallback' import MessagesFallback from '../../Inbox/MessagesFallback'
import Search from '../../Inbox/Search' import Search from '../../Inbox/Search'
import { Modal } from '../../Nav/Modal' import { Modal } from '../../_shared/Modal'
import { useSearchParams } from '@solidjs/router' import { useSearchParams } from '@solidjs/router'
import styles from './Inbox.module.scss' import styles from './Inbox.module.scss'

View File

@ -2,8 +2,8 @@ import { UpdateProfileInput } from '@authorizerdev/authorizer-js'
import { clsx } from 'clsx' import { clsx } from 'clsx'
import { Show, createEffect, createSignal, on } from 'solid-js' import { Show, createEffect, createSignal, on } from 'solid-js'
import { AuthGuard } from '~/components/AuthGuard' import { AuthGuard } from '~/components/AuthGuard'
import { PasswordField } from '~/components/Nav/AuthModal/PasswordField' import { PasswordField } from '~/components/AuthModal/PasswordField'
import { ProfileSettingsNavigation } from '~/components/Nav/ProfileSettingsNavigation' import { ProfileSettingsNavigation } from '~/components/ProfileNav'
import { Button } from '~/components/_shared/Button' import { Button } from '~/components/_shared/Button'
import { Icon } from '~/components/_shared/Icon' import { Icon } from '~/components/_shared/Icon'
import { Loading } from '~/components/_shared/Loading' import { Loading } from '~/components/_shared/Loading'
@ -183,7 +183,7 @@ export const ProfileSecurityView = (_props: any) => {
<PasswordField <PasswordField
onFocus={() => setOldPasswordError()} onFocus={() => setOldPasswordError()}
setError={oldPasswordError()} setError={oldPasswordError()}
onInput={(value) => handleInputChange('oldPassword', value)} onInput={(value: string) => handleInputChange('oldPassword', value)}
value={formData()['oldPassword'] || undefined} value={formData()['oldPassword'] || undefined}
disabled={isSubmitting()} disabled={isSubmitting()}
/> />
@ -191,7 +191,7 @@ export const ProfileSecurityView = (_props: any) => {
<h5>{t('New password')}</h5> <h5>{t('New password')}</h5>
<PasswordField <PasswordField
onInput={(value) => { onInput={(value: string) => {
handleInputChange('newPassword', value) handleInputChange('newPassword', value)
handleInputChange('newPasswordConfirm', '') handleInputChange('newPasswordConfirm', '')
}} }}
@ -207,7 +207,7 @@ export const ProfileSecurityView = (_props: any) => {
value={formData?.()['newPasswordConfirm']} value={formData?.()['newPasswordConfirm']}
onFocus={() => setNewPasswordError()} onFocus={() => setNewPasswordError()}
setError={newPasswordError()} setError={newPasswordError()}
onInput={(value) => handleCheckNewPassword(value)} onInput={handleCheckNewPassword}
disabled={isSubmitting()} disabled={isSubmitting()}
disableAutocomplete={true} disableAutocomplete={true}
/> />

View File

@ -24,12 +24,12 @@ import { handleImageUpload } from '~/lib/handleImageUpload'
import { profileSocialLinks } from '~/lib/profileSocialLinks' import { profileSocialLinks } from '~/lib/profileSocialLinks'
import { clone } from '~/utils/clone' import { clone } from '~/utils/clone'
import { validateUrl } from '~/utils/validate' import { validateUrl } from '~/utils/validate'
import { Modal } from '../../Nav/Modal' import { ProfileSettingsNavigation } from '../../ProfileNav'
import { ProfileSettingsNavigation } from '../../Nav/ProfileSettingsNavigation'
import { Button } from '../../_shared/Button' import { Button } from '../../_shared/Button'
import { Icon } from '../../_shared/Icon' import { Icon } from '../../_shared/Icon'
import { ImageCropper } from '../../_shared/ImageCropper' import { ImageCropper } from '../../_shared/ImageCropper'
import { Loading } from '../../_shared/Loading' import { Loading } from '../../_shared/Loading'
import { Modal } from '../../_shared/Modal'
import { Popover } from '../../_shared/Popover' import { Popover } from '../../_shared/Popover'
import { SocialNetworkInput } from '../../_shared/SocialNetworkInput' import { SocialNetworkInput } from '../../_shared/SocialNetworkInput'
import styles from './Settings.module.scss' import styles from './Settings.module.scss'

View File

@ -8,7 +8,7 @@ import { Author, Topic } from '~/graphql/schema/core.gen'
import { dummyFilter } from '~/lib/dummyFilter' import { dummyFilter } from '~/lib/dummyFilter'
import stylesSettings from '../../../styles/FeedSettings.module.scss' import stylesSettings from '../../../styles/FeedSettings.module.scss'
import { AuthorBadge } from '../../Author/AuthorBadge' import { AuthorBadge } from '../../Author/AuthorBadge'
import { ProfileSettingsNavigation } from '../../Nav/ProfileSettingsNavigation' import { ProfileSettingsNavigation } from '../../ProfileNav'
import { TopicBadge } from '../../Topic/TopicBadge' import { TopicBadge } from '../../Topic/TopicBadge'
import styles from '../Profile/Settings.module.scss' import styles from '../Profile/Settings.module.scss'

View File

@ -12,7 +12,7 @@ import { useTopics } from '~/context/topics'
import { useSnackbar, useUI } from '~/context/ui' import { useSnackbar, useUI } from '~/context/ui'
import { Topic } from '~/graphql/schema/core.gen' import { Topic } from '~/graphql/schema/core.gen'
import { TopicSelect, UploadModalContent } from '../../Editor' import { TopicSelect, UploadModalContent } from '../../Editor'
import { Modal } from '../../Nav/Modal' import { Modal } from '../../_shared/Modal'
import { useNavigate } from '@solidjs/router' import { useNavigate } from '@solidjs/router'
import { UploadedFile } from '~/types/upload' import { UploadedFile } from '~/types/upload'

View File

@ -1,7 +1,7 @@
import { JSX, onMount } from 'solid-js' import { JSX, onMount } from 'solid-js'
import { processPrepositions } from '~/intl/prepositions' import { processPrepositions } from '~/intl/prepositions'
import { TableOfContents } from '../TableOfContents'
import { PageLayout } from '../_shared/PageLayout' import { PageLayout } from '../_shared/PageLayout'
import { TableOfContents } from '../_shared/TableOfContents'
type Props = { type Props = {
title: string title: string

View File

@ -1,5 +1,5 @@
import { useLocalize } from '~/context/localize' import { useLocalize } from '~/context/localize'
import { Loading } from '../_shared/Loading' import { Loading } from '../Loading'
import styles from './InlineLoader.module.scss' import styles from './InlineLoader.module.scss'
type Props = { type Props = {

View File

@ -8,9 +8,9 @@ import { useLocalize } from '~/context/localize'
import { useUI } from '~/context/ui' import { useUI } from '~/context/ui'
import { Author } from '~/graphql/schema/core.gen' import { Author } from '~/graphql/schema/core.gen'
import { AuthorBadge } from '../../Author/AuthorBadge' import { AuthorBadge } from '../../Author/AuthorBadge'
import { InlineLoader } from '../../InlineLoader'
import { Button } from '../Button' import { Button } from '../Button'
import { DropdownSelect } from '../DropdownSelect' import { DropdownSelect } from '../DropdownSelect'
import { InlineLoader } from '../InlineLoader'
import styles from './InviteMembers.module.scss' import styles from './InviteMembers.module.scss'

View File

@ -10,7 +10,7 @@ import ruKeywords from '~/intl/locales/ru/keywords.json'
import { getImageUrl, getOpenGraphImageUrl } from '~/lib/getThumbUrl' import { getImageUrl, getOpenGraphImageUrl } from '~/lib/getThumbUrl'
import { descFromBody } from '~/utils/meta' import { descFromBody } from '~/utils/meta'
import { FooterView } from '../Discours/Footer' import { FooterView } from '../Discours/Footer'
import { Header } from '../Nav/Header' import { Header } from '../HeaderNav'
import styles from './PageLayout.module.scss' import styles from './PageLayout.module.scss'
type PageLayoutProps = { type PageLayoutProps = {

View File

@ -1,6 +1,6 @@
import { useLocalize } from '~/context/localize' import { useLocalize } from '~/context/localize'
import { useUI } from '~/context/ui' import { useUI } from '~/context/ui'
import { Modal } from '../../Nav/Modal' import { Modal } from '../Modal'
import { ShareLinks } from '../ShareLinks' import { ShareLinks } from '../ShareLinks'
type Props = { type Props = {

View File

@ -5,7 +5,7 @@ import { debounce, throttle } from 'throttle-debounce'
import { useLocalize } from '~/context/localize' import { useLocalize } from '~/context/localize'
import { DEFAULT_HEADER_OFFSET } from '~/context/ui' import { DEFAULT_HEADER_OFFSET } from '~/context/ui'
import { isDesktop } from '~/lib/mediaQuery' import { isDesktop } from '~/lib/mediaQuery'
import { Icon } from '../_shared/Icon' import { Icon } from '../Icon'
import styles from './TableOfContents.module.scss' import styles from './TableOfContents.module.scss'

View File

@ -1,7 +1,7 @@
import { Feedback } from '~/components/Discours/Feedback' 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 { StaticPage } from '~/components/Views/StaticPage'
import { Modal } from '~/components/_shared/Modal'
import { Opener } from '~/components/_shared/Modal/Opener'
import { Newsletter } from '~/components/_shared/Newsletter' import { Newsletter } from '~/components/_shared/Newsletter'
export default () => ( export default () => (

View File

@ -1,6 +1,6 @@
import { Params, RouteSectionProps, createAsync } from '@solidjs/router' import { Params, RouteSectionProps, createAsync } from '@solidjs/router'
import { createEffect, createMemo, on } from 'solid-js' import { createEffect, createMemo, on } from 'solid-js'
import { TopicsNav } from '~/components/Nav/TopicsNav' import { TopicsNav } from '~/components/TopicsNav'
import { Expo } from '~/components/Views/Expo' import { Expo } from '~/components/Views/Expo'
import { PageLayout } from '~/components/_shared/PageLayout' import { PageLayout } from '~/components/_shared/PageLayout'
import { useLocalize } from '~/context/localize' import { useLocalize } from '~/context/localize'