diff --git a/app/pages/articles/[slug]/edit.tsx b/app/pages/articles/[slug]/edit.tsx index 5ffc79bd..e3a8129b 100644 --- a/app/pages/articles/[slug]/edit.tsx +++ b/app/pages/articles/[slug]/edit.tsx @@ -1,7 +1,7 @@ -import { Timestamp, addDoc, query, updateDoc, where } from 'firebase/firestore'; +import { Timestamp, query, setDoc, updateDoc, where } from 'firebase/firestore'; import * as t from 'io-ts'; import Head from 'next/head'; -import NextJSRouter, { useRouter } from 'next/router'; +import { useRouter } from 'next/router'; import { useRef } from 'react'; import { useCollectionData } from 'react-firebase-hooks/firestore'; import { requiresAdmin } from '../../../components/AuthHelpers.js'; @@ -12,12 +12,11 @@ import { useSnackbar } from '../../../components/Snackbar.js'; import { DefaultTopBar } from '../../../components/TopBar.js'; import { ArticleT, ArticleV } from '../../../lib/article.js'; import { - getCollection, getDocRef, getValidatedCollection, } from '../../../lib/firebaseWrapper.js'; import { markdownToHast } from '../../../lib/markdown/markdown.js'; -import { logAsyncErrors, slugify } from '../../../lib/utils.js'; +import { logAsyncErrors } from '../../../lib/utils.js'; export default requiresAdmin(() => { const router = useRouter(); @@ -74,7 +73,7 @@ const ArticleLoader = ({ slug }: { slug: string }) => { c: 'article content', f: false, }; - await addDoc(getCollection('a'), { + await setDoc(getDocRef('a', slug), { ...newArticle, ua: Timestamp.now(), }).then(() => { @@ -108,23 +107,6 @@ const ArticleEditor = ({ Note: changes may take up to an hour to appear on the site - we cache pages to keep Crosshare fast!

-

Slug

- { - const slug = slugify(newSlug, 100, true); - await updateDoc(getDocRef('a', articleId), { - s: slug, - ua: Timestamp.now(), - }).then(async () => { - await NextJSRouter.push(`/articles/${slug}/edit`); - }); - }} - />

Title

{ if (!props) { @@ -29,7 +22,6 @@ const ArticleListItem = (props: ArticleT | null) => { export default requiresAdmin(() => { const articleQuery = useRef(getValidatedCollection('a', ArticleV)); const [articles] = useCollectionData(articleQuery.current); - const { showSnackbar } = useSnackbar(); return ( <> @@ -39,24 +31,6 @@ export default requiresAdmin(() => {
-
diff --git a/app/scripts/generateWeeklyEmail.ts b/app/scripts/generateWeeklyEmail.ts index 4f0fcd12..1c52e786 100755 --- a/app/scripts/generateWeeklyEmail.ts +++ b/app/scripts/generateWeeklyEmail.ts @@ -189,7 +189,8 @@ ${puzzles }; return db .collection('a') - .add({ + .doc(slug) + .set({ ...article, ua: Timestamp.now(), })