webapp/src/pages/create.page.tsx

61 lines
1.9 KiB
TypeScript
Raw Normal View History

2023-02-17 09:21:02 +00:00
import { PageLayout } from '../components/_shared/PageLayout'
2023-05-31 12:23:18 +00:00
import { useLocalize } from '../context/localize'
import { Button } from '../components/_shared/Button'
import { Icon } from '../components/_shared/Icon'
import { clsx } from 'clsx'
import styles from '../styles/Create.module.scss'
2023-04-11 13:57:48 +00:00
import { apiClient } from '../utils/apiClient'
import { redirectPage } from '@nanostores/router'
2023-05-31 12:23:18 +00:00
import { router } from '../stores/router'
2023-02-17 09:21:02 +00:00
2023-05-31 12:23:18 +00:00
const handleCreateArticle = async () => {
const shout = await apiClient.createArticle({ article: {} })
redirectPage(router, 'edit', { shoutId: shout.id.toString() })
}
2023-03-29 08:51:27 +00:00
2023-05-31 12:23:18 +00:00
export const CreatePage = () => {
const { t } = useLocalize()
2023-02-17 09:21:02 +00:00
return (
<PageLayout>
2023-05-31 12:23:18 +00:00
<article class={clsx('wide-container', 'container--static-page', styles.Create)}>
<h1>{t('Choose a post type')}</h1>
<ul class={clsx('nodash', styles.list)}>
<li>
<div class={styles.link} onClick={handleCreateArticle}>
<Icon name="create-article" class={styles.icon} />
<div>{t('article')}</div>
</div>
</li>
<li>
<a href="#">
<Icon name="create-books" class={styles.icon} />
<div>{t('literature')}</div>
</a>
</li>
<li>
<a href="#">
<Icon name="create-images" class={styles.icon} />
<div>{t('images')}</div>
</a>
</li>
<li>
<a href="#">
<Icon name="create-music" class={styles.icon} />
<div>{t('music')}</div>
</a>
</li>
<li>
<a href="#">
<Icon name="create-video" class={styles.icon} />
<div>{t('music')}</div>
</a>
</li>
</ul>
<Button value={t('Back')} onClick={() => window.history.back()} />
</article>
2023-02-17 09:21:02 +00:00
</PageLayout>
)
}
export const Page = CreatePage