import { createSignal, onMount, Show } from 'solid-js' import { useLocalize } from '../../context/localize' import { clsx } from 'clsx' import styles from './Edit.module.scss' import { Title } from '@solidjs/meta' import type { Shout, Topic } from '../../graphql/types.gen' import { apiClient } from '../../utils/apiClient' import { TopicSelect } from '../Editor/TopicSelect/TopicSelect' import { router, useRouter } from '../../stores/router' import { openPage } from '@nanostores/router' import { translit } from '../../utils/ru2en' import { Editor } from '../Editor/Editor' import { Panel } from '../Editor/Panel' import { useEditorContext } from '../../context/editor' type EditViewProps = { shout: Shout } export const EditView = (props: EditViewProps) => { const { t } = useLocalize() const [topics, setTopics] = createSignal(null) const { page } = useRouter() const { form, formErrors, actions: { setForm, setFormErrors } } = useEditorContext() const [isSlugChanged, setIsSlugChanged] = createSignal(false) setForm({ slug: props.shout.slug, title: props.shout.title, subtitle: props.shout.subtitle, selectedTopics: props.shout.topics || [], mainTopic: props.shout.mainTopic, body: props.shout.body, coverImageUrl: props.shout.cover }) onMount(async () => { const allTopics = await apiClient.getAllTopics() setTopics(allTopics) }) const handleTitleInputChange = (e) => { const title = e.currentTarget.value setForm('title', title) if (title) { setFormErrors('title', '') } // if (!isSlugChanged()) { // const slug = translit(title).replaceAll(' ', '-') // setForm('slug', slug) // } } const handleSlugInputChange = (e) => { const slug = e.currentTarget.value if (slug !== form.slug) { setIsSlugChanged(true) } setForm('slug', slug) } return ( <>
{t('Write an article')}
{formErrors.title} setForm('subtitle', e.currentTarget.value)} /> setForm('body', body)} />

Настройки публикации

Slug

{/*

Лид

*/} {/*
*/} {/* */} {/* */} {/*
*/} {/*

Выбор сообщества

*/} {/*

Сообщества можно перечислить через запятую

*/} {/*
*/} {/* */} {/*
*/}

Темы

{/*

*/} {/* Добавьте несколько тем, чтобы читатель знал, о чем ваш материал, и мог найти*/} {/* его на страницах интересных ему тем. Темы можно менять местами, первая тема*/} {/* становится заглавной*/} {/*

*/}
setForm('selectedTopics', newSelectedTopics)} selectedTopics={form.selectedTopics} /> {/**/}
{/*

Соавторы

*/} {/*

У каждого соавтора можно добавить роль

*/} {/*
*/} {/*
*/} {/* */} {/* */} {/*
*/} {/* */} {/*
*/} {/*
*/} {/*
Михаил Драбкин
*/} {/*
*/} {/* */} {/*
*/} {/*
*/}

Карточка материала на главной

Выберите заглавное изображение для статьи, тут сразу можно увидеть как карточка будет выглядеть на главной странице

) } export default EditView