import { Show, Suspense, createMemo, createSignal, lazy, onMount } from 'solid-js' import { AuthGuard } from '../components/AuthGuard' import { Loading } from '../components/_shared/Loading' import { PageLayout } from '../components/_shared/PageLayout' import { useLocalize } from '../context/localize' import { apiClient } from '../graphql/client/core' import { Shout } from '../graphql/schema/core.gen' import { useRouter } from '../stores/router' import { router } from '../stores/router' import { LayoutType } from './types' import { redirectPage } from "@nanostores/router"; const EditView = lazy(() => import('../components/Views/EditView/EditView')) export const EditPage = () => { const { page } = useRouter() const { t } = useLocalize() const shoutId = createMemo(() => Number((page().params as Record<'shoutId', string>).shoutId)) const [shout, setShout] = createSignal(null) onMount(async () => { const loadedShout = await apiClient.getMyShout(shoutId()) console.log(loadedShout) if (loadedShout) { setShout(loadedShout) } else { redirectPage(router, 'drafts') } }) const title = createMemo(() => { if (!shout()) { return t('Create post') } switch (shout().layout as LayoutType) { case 'audio': { return t('Publish Album') } case 'image': { return t('Create gallery') } case 'video': { return t('Create video') } case 'literature': { return t('New literary work') } default: { return t('Write an article') } } }) return ( }> ) } export const Page = EditPage