diff --git a/public/icons/expand.svg b/public/icons/expand.svg new file mode 100644 index 00000000..fcbcd21c --- /dev/null +++ b/public/icons/expand.svg @@ -0,0 +1,2 @@ + + diff --git a/src/components/Discours/Footer.module.scss b/src/components/Discours/Footer.module.scss index b65481f2..990b9ed6 100644 --- a/src/components/Discours/Footer.module.scss +++ b/src/components/Discours/Footer.module.scss @@ -61,7 +61,7 @@ padding-top: 1.6rem; a { - color: rgba(255, 255, 255, 0.7); + color: rgb(255 255 255 / 70%); &:hover { color: #fff; diff --git a/src/components/Discours/Subscribe.tsx b/src/components/Discours/Subscribe.tsx index 1ce9f59b..20cdaee4 100644 --- a/src/components/Discours/Subscribe.tsx +++ b/src/components/Discours/Subscribe.tsx @@ -1,4 +1,4 @@ -import { createSignal, onMount } from 'solid-js' +import { createSignal } from 'solid-js' import styles from './Subscribe.module.scss' import { t } from '../../utils/intl' import { clsx } from 'clsx' diff --git a/src/components/EditorExample/components/Sidebar.tsx b/src/components/EditorExample/components/Sidebar.tsx index 043f5660..97104ad5 100644 --- a/src/components/EditorExample/components/Sidebar.tsx +++ b/src/components/EditorExample/components/Sidebar.tsx @@ -9,7 +9,6 @@ import { clsx } from 'clsx' import styles from './Sidebar.module.scss' import { useOutsideClickHandler } from '../../../utils/useOutsideClickHandler' import { useEscKeyDownHandler } from '../../../utils/useEscKeyDownHandler' -import { hideModal } from '../../../stores/ui' const Off = (props) =>
{props.children}
diff --git a/src/components/EditorNew/Editor.tsx b/src/components/EditorNew/Editor.tsx index b9696fff..d8ea9ded 100644 --- a/src/components/EditorNew/Editor.tsx +++ b/src/components/EditorNew/Editor.tsx @@ -1,21 +1,15 @@ -import { createSignal, onMount } from 'solid-js' +import { onMount } from 'solid-js' import { EditorState, Transaction } from 'prosemirror-state' import { EditorView, MarkViewConstructor, NodeViewConstructor } from 'prosemirror-view' import './prosemirror/styles/ProseMirror.scss' import type { Nodes, Marks } from './prosemirror/schema' import { createImageView } from './prosemirror/views/image' -import { MarkdownSerializer } from 'prosemirror-markdown' import { schema } from './prosemirror/schema' import { createPlugins } from './prosemirror/plugins' - -import debounce from 'lodash/debounce' import { DOMSerializer } from 'prosemirror-model' import { clsx } from 'clsx' -import styles from '../Nav/AuthModal/AuthModal.module.scss' -import { t } from '../../utils/intl' -import { apiClient } from '../../utils/apiClient' import { createArticle } from '../../stores/zine/articles' -import type { InputMaybe, Scalars, ShoutInput } from '../../graphql/types.gen' +import type { ShoutInput } from '../../graphql/types.gen' import { Sidebar } from './Sidebar' const htmlContainer = typeof document === 'undefined' ? null : document.createElement('div') @@ -27,9 +21,6 @@ const getHtml = (state: EditorState) => { } export const Editor = () => { - const [markdown, setMarkdown] = createSignal('') - const [html, setHtml] = createSignal('') - const editorElRef: { current: HTMLDivElement } = { @@ -38,19 +29,9 @@ export const Editor = () => { const editorViewRef: { current: EditorView } = { current: null } - const update = (state: EditorState) => { - const newHtml = getHtml(state) - setHtml(newHtml) - // setMarkdown(state.toJSON()) - // const el = document.createElement('div') - } - - const debouncedUpdate = debounce(update, 500) - const dispatchTransaction = (tr: Transaction) => { const newState = editorViewRef.current.state.apply(tr) editorViewRef.current.updateState(newState) - debouncedUpdate(newState) } onMount(async () => { @@ -88,12 +69,8 @@ export const Editor = () => {
(editorElRef.current = el)} /> -
Markdown:
-
{markdown()}
-
HTML:
-
{html()}
diff --git a/src/components/EditorNew/Sidebar.tsx b/src/components/EditorNew/Sidebar.tsx index f45f2172..a014b5d6 100644 --- a/src/components/EditorNew/Sidebar.tsx +++ b/src/components/EditorNew/Sidebar.tsx @@ -1,4 +1,4 @@ -import { For, Show, createEffect, createSignal, onCleanup, onMount } from 'solid-js' +import { For, createEffect, createSignal, onCleanup, onMount } from 'solid-js' import type { JSX } from 'solid-js' import { undo, redo } from 'prosemirror-history' import { clsx } from 'clsx' diff --git a/src/components/EditorNew/prosemirror/plugins/index.ts b/src/components/EditorNew/prosemirror/plugins/index.ts index 7a4f6439..c9c412f9 100644 --- a/src/components/EditorNew/prosemirror/plugins/index.ts +++ b/src/components/EditorNew/prosemirror/plugins/index.ts @@ -1,5 +1,3 @@ -import { keymap } from 'prosemirror-keymap' -import { baseKeymap } from 'prosemirror-commands' import { history } from 'prosemirror-history' import { dropCursor } from 'prosemirror-dropcursor' import { placeholder } from './placeholder' diff --git a/src/components/Feed/Beside.module.scss b/src/components/Feed/Beside.module.scss index 1e5486ab..fb3d7b66 100644 --- a/src/components/Feed/Beside.module.scss +++ b/src/components/Feed/Beside.module.scss @@ -12,6 +12,8 @@ } li { + margin-bottom: 1em; + &.top { border-bottom: 1px solid #e1e1e1; display: flex; diff --git a/src/components/Nav/Modal.scss b/src/components/Nav/Modal.scss index 6be20367..8c7bc2f0 100644 --- a/src/components/Nav/Modal.scss +++ b/src/components/Nav/Modal.scss @@ -1,11 +1,12 @@ .modalwrap { - pointer-events: all; align-items: center; background: rgb(20 20 20 / 70%); display: flex; justify-content: center; height: 100%; left: 0; + overflow: auto; + pointer-events: all; position: fixed; top: 0; width: 100%; diff --git a/src/components/Nav/Modal.tsx b/src/components/Nav/Modal.tsx index 2f9e2872..2ebe709d 100644 --- a/src/components/Nav/Modal.tsx +++ b/src/components/Nav/Modal.tsx @@ -1,4 +1,4 @@ -import { createEffect, createSignal, onCleanup, onMount, Show } from 'solid-js' +import { createEffect, createSignal, Show } from 'solid-js' import type { JSX } from 'solid-js' import { getLogger } from '../../utils/logger' import './Modal.scss' diff --git a/src/components/Nav/Popup.tsx b/src/components/Nav/Popup.tsx index 5ee469b9..bfb4ef89 100644 --- a/src/components/Nav/Popup.tsx +++ b/src/components/Nav/Popup.tsx @@ -1,4 +1,4 @@ -import { createEffect, createSignal, JSX, onCleanup, onMount, Show } from 'solid-js' +import { createEffect, createSignal, JSX, Show } from 'solid-js' import styles from './Popup.module.scss' import { clsx } from 'clsx' import { useOutsideClickHandler } from '../../utils/useOutsideClickHandler' diff --git a/src/components/Nav/ProfileModal.tsx b/src/components/Nav/ProfileModal.tsx index ae32f97b..2beab06f 100644 --- a/src/components/Nav/ProfileModal.tsx +++ b/src/components/Nav/ProfileModal.tsx @@ -15,6 +15,7 @@ export default () => { const author = createMemo(() => { const a: Author = { + id: null, name: 'anonymous', userpic: '', slug: '' diff --git a/src/components/Topic/Card.module.scss b/src/components/Topic/Card.module.scss index bbfab772..0f499cdd 100644 --- a/src/components/Topic/Card.module.scss +++ b/src/components/Topic/Card.module.scss @@ -82,6 +82,7 @@ .topicDetailsItem { @include font-size(1.5rem); + margin-right: 1.6rem; white-space: nowrap; diff --git a/src/components/Topic/Full.scss b/src/components/Topic/Full.module.scss similarity index 66% rename from src/components/Topic/Full.scss rename to src/components/Topic/Full.module.scss index ef8c4baf..f0c39156 100644 --- a/src/components/Topic/Full.scss +++ b/src/components/Topic/Full.module.scss @@ -1,11 +1,19 @@ -.topic__header { +.topicHeader { @include font-size(1.7rem); padding-top: 5.8rem; text-align: center; + + h1 { + color: #2638d9; + font-weight: 500; + text-transform: uppercase; + + @include font-size(2rem); + } } -.topic__actions { +.topicActions { margin-top: 2.8rem; button, diff --git a/src/components/Topic/Full.tsx b/src/components/Topic/Full.tsx index 5923ead9..c6bb57fa 100644 --- a/src/components/Topic/Full.tsx +++ b/src/components/Topic/Full.tsx @@ -1,10 +1,11 @@ import { createMemo, Show } from 'solid-js' import type { Topic } from '../../graphql/types.gen' import { FollowingEntity } from '../../graphql/types.gen' -import './Full.scss' +import styles from './Full.module.scss' import { useAuthStore } from '../../stores/auth' import { follow, unfollow } from '../../stores/zine/common' import { t } from '../../utils/intl' +import { clsx } from 'clsx' type Props = { topic: Topic @@ -15,37 +16,35 @@ export const FullTopic = (props: Props) => { const subscribed = createMemo(() => session()?.news?.topics?.includes(props.topic?.slug)) return ( -
-
- -
-

#{props.topic.title}

-

{props.topic.body}

-
- - - - - - - {t('Write about the topic')} -
- - {props.topic.title} +
+ +
+

#{props.topic.title}

+

{props.topic.body}

+
+ + + + + + {t('Write about the topic')}
- -
+ + {props.topic.title} + +
+
) } diff --git a/src/components/Views/Author.tsx b/src/components/Views/Author.tsx index 52cd189f..59278d34 100644 --- a/src/components/Views/Author.tsx +++ b/src/components/Views/Author.tsx @@ -7,7 +7,6 @@ import { t } from '../../utils/intl' import { useAuthorsStore } from '../../stores/zine/authors' import { loadAuthorArticles, useArticlesStore } from '../../stores/zine/articles' -import '../../styles/Topic.scss' import { useTopicsStore } from '../../stores/zine/topics' import { useRouter } from '../../stores/router' import { Beside } from '../Feed/Beside' diff --git a/src/components/Views/Topic.tsx b/src/components/Views/Topic.tsx index 934e4ec9..a2760967 100644 --- a/src/components/Views/Topic.tsx +++ b/src/components/Views/Topic.tsx @@ -3,7 +3,6 @@ import type { Shout, Topic } from '../../graphql/types.gen' import { Row3 } from '../Feed/Row3' import { Row2 } from '../Feed/Row2' import { Beside } from '../Feed/Beside' -import { ArticleCard } from '../Feed/Card' import styles from '../../styles/Topic.module.scss' import { FullTopic } from '../Topic/Full' import { t } from '../../utils/intl' diff --git a/src/graphql/types.gen.ts b/src/graphql/types.gen.ts index cde59629..7be17aa5 100644 --- a/src/graphql/types.gen.ts +++ b/src/graphql/types.gen.ts @@ -24,6 +24,7 @@ export type AuthResult = { export type Author = { bio?: Maybe caption?: Maybe + id: Scalars['Int'] links?: Maybe>> name: Scalars['String'] slug: Scalars['String'] @@ -69,6 +70,7 @@ export type Collection = { createdAt: Scalars['DateTime'] createdBy: User desc?: Maybe + id: Scalars['Int'] publishedAt?: Maybe slug: Scalars['String'] title: Scalars['String'] @@ -84,6 +86,7 @@ export type Community = { createdAt: Scalars['DateTime'] createdBy: User desc?: Maybe + id: Scalars['Int'] name: Scalars['String'] pic: Scalars['String'] slug: Scalars['String'] @@ -329,10 +332,12 @@ export type ProfileInput = { export type Query = { authorsAll: Array> collectionsAll: Array> + getAuthor: User getCollabs: Array> getCommunities: Array> getCommunity: Community getShoutBySlug: Shout + getTopic: Topic getUserCollections: Array> getUserRoles: Array> getUsersBySlugs: Array> @@ -371,6 +376,10 @@ export type Query = { userReactedShouts: Array> } +export type QueryGetAuthorArgs = { + slug: Scalars['String'] +} + export type QueryGetCommunityArgs = { slug?: InputMaybe } @@ -379,6 +388,10 @@ export type QueryGetShoutBySlugArgs = { slug: Scalars['String'] } +export type QueryGetTopicArgs = { + slug: Scalars['String'] +} + export type QueryGetUserCollectionsArgs = { author: Scalars['String'] } diff --git a/src/styles/Topic.scss b/src/styles/Topic.module.scss similarity index 82% rename from src/styles/Topic.scss rename to src/styles/Topic.module.scss index 20b16c28..fa18beab 100644 --- a/src/styles/Topic.scss +++ b/src/styles/Topic.module.scss @@ -1,11 +1,11 @@ -.topic-page { - .group__controls { +.topicPage { + .groupControls { align-items: baseline; margin-bottom: 4rem; margin-top: 7rem; } - .floor--important { + .floorImportant { a:hover { background: #fff; color: #000 !important; diff --git a/src/styles/app.scss b/src/styles/app.scss index 2e23e357..0adff8f6 100644 --- a/src/styles/app.scss +++ b/src/styles/app.scss @@ -487,7 +487,7 @@ figcaption { a { border-bottom: 2px solid #fff; - color: rgba(0, 0, 0, 0.5); + color: rgb(0 0 0 / 50%); &:hover { color: #fff; @@ -746,7 +746,7 @@ details { cursor: pointer; margin-bottom: 0; - &:before { + &::before { content: ''; background: url(/icons/expand.svg) no-repeat; background-size: contain; @@ -762,7 +762,7 @@ details { } &[open] { - h3:before { + h3::before { transform: rotate(180deg); } } diff --git a/src/utils/useOutsideClickHandler.ts b/src/utils/useOutsideClickHandler.ts index cfeb71a1..e1102d4f 100644 --- a/src/utils/useOutsideClickHandler.ts +++ b/src/utils/useOutsideClickHandler.ts @@ -17,7 +17,7 @@ export const useOutsideClickHandler = (options: Options) => { return } - options.handler() + handler() } onMount(() => {