struct
This commit is contained in:
parent
77d8ca352a
commit
cad695dc59
|
@ -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'
|
||||||
|
|
|
@ -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 = {
|
|
@ -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'
|
|
@ -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'
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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;
|
|
@ -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
|
|
@ -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
|
|
@ -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 = {
|
|
@ -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'
|
||||||
|
|
|
@ -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?: {
|
|
@ -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;
|
||||||
|
}
|
|
@ -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')
|
|
@ -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'
|
||||||
|
|
|
@ -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'
|
||||||
|
|
||||||
|
|
|
@ -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'))
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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'
|
||||||
|
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 = {
|
|
@ -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'
|
||||||
|
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
|
@ -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'
|
||||||
|
|
|
@ -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 () => (
|
||||||
|
|
|
@ -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'
|
||||||
|
|
Loading…
Reference in New Issue
Block a user