import { useNavigate } from '@solidjs/router' import { clsx } from 'clsx' import { For, createMemo } from 'solid-js' import { AuthGuard } from '~/components/AuthGuard' import { Button } from '~/components/_shared/Button' import { Icon } from '~/components/_shared/Icon' import { PageLayout } from '~/components/_shared/PageLayout' import { coreApiUrl } from '~/config' import { useLocalize } from '~/context/localize' import { useSession } from '~/context/session' import { useSnackbar } from '~/context/ui' import { graphqlClientCreate } from '~/graphql/client' import createShoutMutation from '~/graphql/mutation/core/article-create' import styles from '~/styles/Create.module.scss' import { LayoutType } from '~/types/common' export default () => { const { t } = useLocalize() const { session } = useSession() const client = createMemo(() => graphqlClientCreate(coreApiUrl, session()?.access_token)) const { showSnackbar } = useSnackbar() const navigate = useNavigate() const handleCreate = async (layout: LayoutType) => { console.debug('[routes : edit/new] handling create click...') const result = await client() ?.mutation(createShoutMutation, { shout: { layout: layout } }) .toPromise() if (result) { console.debug(result) const { shout, error } = result.data.create_shout if (error) showSnackbar({ body: `${t('Error')}: ${t(error)}`, type: 'error' }) if (shout?.id) navigate(`/edit/${shout.id}`) } } return (

{t('Choose a post type')}

    {(layout: string) => (
  • handleCreate(layout.toLowerCase() as LayoutType)}>
    {t(layout)}
  • )}
) }