From 83f8b5daa254ee6ef96adb19745e37a8574ea702 Mon Sep 17 00:00:00 2001 From: duoctv Date: Sat, 21 Aug 2021 18:31:22 +0700 Subject: [PATCH 1/6] pagination - underconstruction --- src/components/templates/admin/news/list.tsx | 57 ++++++++++++++----- .../firestore}/news/deleteNewsById.ts | 2 +- .../firestore}/news/insertNews.ts | 0 src/firestore/news/newsPagination.ts | 36 ++++++++++++ .../firestore}/news/retrieveNews.ts | 7 ++- .../firestore}/news/retrieveNewsById.ts | 2 +- .../firestore}/news/updateNews.ts | 0 {models => src/models}/news.ts | 0 src/pages/admin/news/list.tsx | 5 +- src/pages/article/[id].tsx | 6 +- src/pages/index.tsx | 4 +- 11 files changed, 93 insertions(+), 26 deletions(-) rename {firestore => src/firestore}/news/deleteNewsById.ts (78%) rename {firestore => src/firestore}/news/insertNews.ts (100%) create mode 100644 src/firestore/news/newsPagination.ts rename {firestore => src/firestore}/news/retrieveNews.ts (71%) rename {firestore => src/firestore}/news/retrieveNewsById.ts (95%) rename {firestore => src/firestore}/news/updateNews.ts (100%) rename {models => src/models}/news.ts (100%) diff --git a/src/components/templates/admin/news/list.tsx b/src/components/templates/admin/news/list.tsx index 047cdea0..46d3e26b 100644 --- a/src/components/templates/admin/news/list.tsx +++ b/src/components/templates/admin/news/list.tsx @@ -4,24 +4,49 @@ import styled from "styled-components"; import Footer from "../../../../components/Footer"; import Image from "next/image"; import Link from "next/link"; -import {News} from "../../../../../models/news"; +import {News} from "../../../../models/news"; import "firebase/firestore"; import { useRouter } from 'next/router'; -import { DeleteNewsById } from '../../../../../firestore/news/deleteNewsById'; +import { DeleteNewsById } from '../../../../firestore/news/deleteNewsById'; +import {useState} from 'react'; +import { NewsPagination } from '../../../../firestore/news/newsPagination'; export default function NewsListTemplate({ newsList }: { newsList: News[] }) { const router = useRouter(); + var [newsL,setnewsList] = useState(newsList); + const [end,setEnd] = useState(false); + const [start,setStart] = useState(false); + const newNewsList:News[] =[]; + + const nextPage = async ()=>{ + const newNewsList = await NewsPagination('next', newsL); + newsL = []; + setnewsList(newsL.concat(newNewsList)); + console.log(newsL); + // router.push('/admin/news/list'); + + if(newsL.length < 2){ + setEnd(true) + } - // const handleDelete = (id:string) => () => { - // // e.preventDefault(); - // alert(11); - // DeleteNewsById(id); - // alert("Document successfully deleted!"+id); - // router.replace('/admin/news/list'); - - // } + } + + const prevPage = async ()=>{ + const newNewsList = await NewsPagination('prev', newsL); + newsL = []; + setnewsList(newsL.concat(newNewsList)); + console.log(newsL); + + // if(newsL.length < 2){ + // setEnd(true) + // } + + } + + // console.log(newsL); + async function handleDelete(id:string){ // e.preventDefault(); await DeleteNewsById(id); @@ -58,7 +83,7 @@ export default function NewsListTemplate({ newsList }: { newsList: News[] }) { - {newsList.map((item, index) => ( + {newsL.map((item, index) => ( - « - 1 + « Prev + {/* 1 2 3 - 4 - » + 4 */} + {/* {end==false? */} + Next » + {/* :''} */} < br/> diff --git a/firestore/news/deleteNewsById.ts b/src/firestore/news/deleteNewsById.ts similarity index 78% rename from firestore/news/deleteNewsById.ts rename to src/firestore/news/deleteNewsById.ts index 4dd03d7e..cdf9b7df 100644 --- a/firestore/news/deleteNewsById.ts +++ b/src/firestore/news/deleteNewsById.ts @@ -1,5 +1,5 @@ -import { firebase } from "../../firebase"; +import { firebase } from "../../../firebase"; import "firebase/firestore"; export const DeleteNewsById = async(id: string): Promise => { diff --git a/firestore/news/insertNews.ts b/src/firestore/news/insertNews.ts similarity index 100% rename from firestore/news/insertNews.ts rename to src/firestore/news/insertNews.ts diff --git a/src/firestore/news/newsPagination.ts b/src/firestore/news/newsPagination.ts new file mode 100644 index 00000000..8a94975f --- /dev/null +++ b/src/firestore/news/newsPagination.ts @@ -0,0 +1,36 @@ +import { firebase } from "../../../firebase"; +import "firebase/firestore"; +import {News} from "../../models/news"; + +export const NewsPagination = async (mode = '', currentNewsList:News[] =[]): Promise => { + + const newsList:News[] = []; + let query = firebase.firestore().collection('news'); + + if(mode == 'next') + { + const last = currentNewsList[currentNewsList.length-1]; + //@ts-ignore + query = query.orderBy("title", 'desc').startAfter(last.title).limit(2); + } + + if(mode == 'prev') + { + const last = currentNewsList[0]; + //@ts-ignore + query = query.orderBy("title", 'desc').startAfter(last.title).limit(2); + } + + const querySnapshot = await query.get(); + + // "then" part after the await + querySnapshot.forEach(function (doc) { + newsList.push({ + id: doc.id, + title: doc.data().title, + description : doc.data().description, + }); + }) + + return newsList; +} \ No newline at end of file diff --git a/firestore/news/retrieveNews.ts b/src/firestore/news/retrieveNews.ts similarity index 71% rename from firestore/news/retrieveNews.ts rename to src/firestore/news/retrieveNews.ts index 6c761fb9..bcd3ac60 100644 --- a/firestore/news/retrieveNews.ts +++ b/src/firestore/news/retrieveNews.ts @@ -1,4 +1,4 @@ -import { firebase } from "../../firebase"; +import { firebase } from "../../../firebase"; import "firebase/firestore"; import {News} from "../../models/news"; @@ -6,12 +6,15 @@ export const RetrieveNews = async (limit = 0): Promise => { const newsList:News[] = []; - let query = firebase.firestore().collection('news'); + let query = firebase.firestore().collection('news').orderBy("title", 'desc').startAt('news 6 title'); if(limit > 0) { //@ts-ignore query = query.limit(limit) + } else { + //@ts-ignore + query = query.limit(2) } const querySnapshot = await query.get(); diff --git a/firestore/news/retrieveNewsById.ts b/src/firestore/news/retrieveNewsById.ts similarity index 95% rename from firestore/news/retrieveNewsById.ts rename to src/firestore/news/retrieveNewsById.ts index 51d203bd..d2dcfd4c 100644 --- a/firestore/news/retrieveNewsById.ts +++ b/src/firestore/news/retrieveNewsById.ts @@ -1,5 +1,5 @@ -import { firebase } from "../../firebase"; +import { firebase } from "../../../firebase"; import "firebase/firestore"; import {News} from "../../models/news"; diff --git a/firestore/news/updateNews.ts b/src/firestore/news/updateNews.ts similarity index 100% rename from firestore/news/updateNews.ts rename to src/firestore/news/updateNews.ts diff --git a/models/news.ts b/src/models/news.ts similarity index 100% rename from models/news.ts rename to src/models/news.ts diff --git a/src/pages/admin/news/list.tsx b/src/pages/admin/news/list.tsx index d4e102d7..36dc4696 100644 --- a/src/pages/admin/news/list.tsx +++ b/src/pages/admin/news/list.tsx @@ -7,12 +7,13 @@ import { firebase } from "../../../../firebase"; import "firebase/firestore"; import { GetStaticProps, GetStaticPropsContext } from 'next'; import { InferGetStaticPropsType } from 'next'; -import {News} from "../../../../models/news"; -import { RetrieveNews } from '../../../../firestore/news/retrieveNews'; +import {News} from "../../../models/news"; +import { RetrieveNews } from '../../../firestore/news/retrieveNews'; import { GetServerSideProps } from 'next'; import { InferGetServerSidePropsType } from 'next'; + function List({ newsList }: InferGetServerSidePropsType) { return ; } diff --git a/src/pages/article/[id].tsx b/src/pages/article/[id].tsx index 5d73b76f..0ef879b2 100644 --- a/src/pages/article/[id].tsx +++ b/src/pages/article/[id].tsx @@ -4,9 +4,9 @@ import { useRouter } from "next/router"; import styled from "styled-components"; import ThumnailProduct from "../../components/ThumnailProduct"; import Footer from "../../components/Footer"; -import {News} from "../../../models/news"; -import { RetrieveNews } from '../../../firestore/news/retrieveNews'; -import { RetrieveNewsById } from '../../../firestore/news/retrieveNewsById'; +import {News} from "../../models/news"; +import { RetrieveNews } from '../../firestore/news/retrieveNews'; +import { RetrieveNewsById } from '../../firestore/news/retrieveNewsById'; import { GetStaticProps } from 'next'; import { GetStaticPaths } from 'next'; import { InferGetStaticPropsType } from 'next'; diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 8aa9e36a..11198145 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -1,8 +1,8 @@ import Head from "next/head"; import { InferGetStaticPropsType } from 'next'; import { GetStaticProps } from 'next'; -import {News} from "../../models/news"; -import { RetrieveNews } from '../../firestore/news/retrieveNews'; +import {News} from "../models/news"; +import { RetrieveNews } from '../firestore/news/retrieveNews'; import TopTemplate from "../components/templates/top"; function Home({ newsList }: InferGetStaticPropsType) { From cb36f2a01dd76c5603dbf8a630df305db9908ab4 Mon Sep 17 00:00:00 2001 From: duoctv Date: Mon, 23 Aug 2021 13:38:46 +0700 Subject: [PATCH 2/6] applied pagination --- src/components/templates/admin/news/form.tsx | 6 +- src/components/templates/admin/news/list.tsx | 59 +++++++++++++------- src/firestore/news/insertNews.ts | 2 +- src/firestore/news/newsPagination.ts | 4 +- src/firestore/news/retrieveNews.ts | 2 +- src/firestore/news/updateNews.ts | 2 +- src/pages/admin/news/form/[id].tsx | 4 +- 7 files changed, 49 insertions(+), 30 deletions(-) diff --git a/src/components/templates/admin/news/form.tsx b/src/components/templates/admin/news/form.tsx index d113ac39..50a2fa82 100644 --- a/src/components/templates/admin/news/form.tsx +++ b/src/components/templates/admin/news/form.tsx @@ -3,12 +3,12 @@ import Head from "next/head"; import styled from "styled-components"; import Footer from "../../../../components/Footer"; import Link from "next/link"; -import {News} from "../../../../../models/news"; +import {News} from "../../../../models/news"; import { useForm, SubmitHandler } from "react-hook-form"; import { firebase } from "../../../../../firebase"; import "firebase/firestore"; -import { InsertNews } from '../../../../../firestore/news/insertNews'; -import { UpdateNews } from '../../../../../firestore/news/updateNews'; +import { InsertNews } from '../../../../firestore/news/insertNews'; +import { UpdateNews } from '../../../../firestore/news/updateNews'; interface Props { news: News; diff --git a/src/components/templates/admin/news/list.tsx b/src/components/templates/admin/news/list.tsx index 46d3e26b..0ed39c8d 100644 --- a/src/components/templates/admin/news/list.tsx +++ b/src/components/templates/admin/news/list.tsx @@ -13,39 +13,56 @@ import { NewsPagination } from '../../../../firestore/news/newsPagination'; export default function NewsListTemplate({ newsList }: { newsList: News[] }) { const router = useRouter(); - var [newsL,setnewsList] = useState(newsList); + var [newsListResult,setNewsListResult] = useState(newsList); const [end,setEnd] = useState(false); - const [start,setStart] = useState(false); + const [start,setStart] = useState(true); const newNewsList:News[] =[]; const nextPage = async ()=>{ - const newNewsList = await NewsPagination('next', newsL); - newsL = []; - setnewsList(newsL.concat(newNewsList)); - console.log(newsL); - // router.push('/admin/news/list'); + setEnd(false); - if(newsL.length < 2){ + const newNewsList = await NewsPagination('next', newsListResult); + setNewsListResult(newsListResult = newNewsList); + if(newsListResult.length < 2){ setEnd(true) } + setStart(false); } const prevPage = async ()=>{ - const newNewsList = await NewsPagination('prev', newsL); - newsL = []; - setnewsList(newsL.concat(newNewsList)); - console.log(newsL); + setEnd(false); + setStart(false); + const newNewsList = await NewsPagination('prev', newsListResult); + // newsL = newNewsList; + setNewsListResult(newsListResult = newNewsList); + - // if(newsL.length < 2){ - // setEnd(true) - // } + if(newsListResult.length < 2){ + setEnd(true) + } + + if(arraysMatch(newsListResult, newsList)) + { + setStart(true); + } } - + var arraysMatch = function (arr1:News[] = [], arr2:News[] = []) { - // console.log(newsL); + // Check if the arrays are the same length + if (arr1.length !== arr2.length) return false; + + // Check if all items exist and are in the same order + for (var i = 0; i < arr1.length; i++) { + if (arr1[i] !== arr2[i]) return false; + } + + // Otherwise, return true + return true; + + }; async function handleDelete(id:string){ // e.preventDefault(); @@ -83,7 +100,7 @@ export default function NewsListTemplate({ newsList }: { newsList: News[] }) { - {newsL.map((item, index) => ( + {newsListResult.map((item, index) => ( + {start==false? « Prev + :''} {/* 1 2 3 4 */} - {/* {end==false? */} + {end==false? Next » - {/* :''} */} + :''} < br/> diff --git a/src/firestore/news/insertNews.ts b/src/firestore/news/insertNews.ts index 680a5381..b969c915 100644 --- a/src/firestore/news/insertNews.ts +++ b/src/firestore/news/insertNews.ts @@ -1,4 +1,4 @@ -import { firebase } from "../../firebase"; +import { firebase } from "../../../firebase"; import "firebase/firestore"; import {News} from "../../models/news"; diff --git a/src/firestore/news/newsPagination.ts b/src/firestore/news/newsPagination.ts index 8a94975f..d6e4615b 100644 --- a/src/firestore/news/newsPagination.ts +++ b/src/firestore/news/newsPagination.ts @@ -16,9 +16,9 @@ export const NewsPagination = async (mode = '', currentNewsList:News[] =[]): Pro if(mode == 'prev') { - const last = currentNewsList[0]; + const first = currentNewsList[0]; //@ts-ignore - query = query.orderBy("title", 'desc').startAfter(last.title).limit(2); + query = query.orderBy("title", 'desc').endBefore(first.title).limitToLast(2); } const querySnapshot = await query.get(); diff --git a/src/firestore/news/retrieveNews.ts b/src/firestore/news/retrieveNews.ts index bcd3ac60..ffef36d3 100644 --- a/src/firestore/news/retrieveNews.ts +++ b/src/firestore/news/retrieveNews.ts @@ -6,7 +6,7 @@ export const RetrieveNews = async (limit = 0): Promise => { const newsList:News[] = []; - let query = firebase.firestore().collection('news').orderBy("title", 'desc').startAt('news 6 title'); + let query = firebase.firestore().collection('news').orderBy("title", 'desc'); if(limit > 0) { diff --git a/src/firestore/news/updateNews.ts b/src/firestore/news/updateNews.ts index 53c12c2e..1d0bd4c5 100644 --- a/src/firestore/news/updateNews.ts +++ b/src/firestore/news/updateNews.ts @@ -1,4 +1,4 @@ -import { firebase } from "../../firebase"; +import { firebase } from "../../../firebase"; import "firebase/firestore"; import {News} from "../../models/news"; diff --git a/src/pages/admin/news/form/[id].tsx b/src/pages/admin/news/form/[id].tsx index c7fea7a5..f8f0be33 100644 --- a/src/pages/admin/news/form/[id].tsx +++ b/src/pages/admin/news/form/[id].tsx @@ -1,11 +1,11 @@ import React from "react"; import "firebase/auth"; import "firebase/firestore"; -import {News} from "../../../../../models/news"; +import {News} from "../../../../models/news"; import NewsFormTemplate from "../../../../components/templates/admin/news/form"; import { GetServerSideProps } from 'next'; import { InferGetServerSidePropsType } from 'next'; -import { RetrieveNewsById } from '../../../../../firestore/news/retrieveNewsById'; +import { RetrieveNewsById } from '../../../../firestore/news/retrieveNewsById'; function Form({ news }: InferGetServerSidePropsType) { return ; From ffe1f6c6bd0ca59c6ea325aad157867dc0d67aef Mon Sep 17 00:00:00 2001 From: duoctv Date: Mon, 23 Aug 2021 13:48:34 +0700 Subject: [PATCH 3/6] bug --- src/components/CaptionProduct.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/CaptionProduct.tsx b/src/components/CaptionProduct.tsx index b13ed030..b7af4192 100644 --- a/src/components/CaptionProduct.tsx +++ b/src/components/CaptionProduct.tsx @@ -1,5 +1,5 @@ import styled from "styled-components"; -import {News} from "../../models/news"; +import {News} from "../models/news"; export default function CaptionProduct({ news }: { news: News }) { From ea3752cefefe25efa0339bcaa8655d403ab8174b Mon Sep 17 00:00:00 2001 From: duoctv Date: Mon, 23 Aug 2021 13:50:44 +0700 Subject: [PATCH 4/6] bug --- src/components/Product.tsx | 2 +- src/components/ThumnailProduct.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/Product.tsx b/src/components/Product.tsx index e161eed4..badb6669 100644 --- a/src/components/Product.tsx +++ b/src/components/Product.tsx @@ -1,7 +1,7 @@ import styled from "styled-components"; import Image from "next/image"; import Link from "next/link"; -import {News} from "../../models/news"; +import {News} from "../models/news"; export default function Product({ news }: { news: News }) { return ( diff --git a/src/components/ThumnailProduct.tsx b/src/components/ThumnailProduct.tsx index 89b69667..2dade798 100644 --- a/src/components/ThumnailProduct.tsx +++ b/src/components/ThumnailProduct.tsx @@ -1,7 +1,7 @@ import styled from "styled-components"; import CaptionProduct from "./CaptionProduct"; import Image from "next/image"; -import {News} from "../../models/news"; +import {News} from "../models/news"; export default function ThumnailProduct({ news }: { news: News }) { return ( From 7ae154743e58c7246c4c307777edcf2613e6e4f4 Mon Sep 17 00:00:00 2001 From: duoctv Date: Mon, 23 Aug 2021 13:53:19 +0700 Subject: [PATCH 5/6] fid load file --- src/components/templates/top.tsx | 2 +- src/pages/admin/news/form/index.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/templates/top.tsx b/src/components/templates/top.tsx index e3d0d37b..1149058a 100644 --- a/src/components/templates/top.tsx +++ b/src/components/templates/top.tsx @@ -5,7 +5,7 @@ import Footer from "../../components/Footer"; import Link from "next/link"; import { firebase } from "../../../firebase"; import "firebase/auth"; -import {News} from "../../../models/news"; +import {News} from "../../models/news"; export default function TopTemplate({ newsList }: { newsList: News[] }) { diff --git a/src/pages/admin/news/form/index.tsx b/src/pages/admin/news/form/index.tsx index ed670927..5633a145 100644 --- a/src/pages/admin/news/form/index.tsx +++ b/src/pages/admin/news/form/index.tsx @@ -2,7 +2,7 @@ import React from "react"; import styled from "styled-components"; import "firebase/auth"; import "firebase/firestore"; -import {News} from "../../../../../models/news"; +import {News} from "../../../../models/news"; import NewsFormTemplate from "../../../../components/templates/admin/news/form"; export default function Form() { From 80d9c823548783d4631c853b2dfd01e882a80296 Mon Sep 17 00:00:00 2001 From: duoctv Date: Mon, 23 Aug 2021 14:06:28 +0700 Subject: [PATCH 6/6] yarn prettier --- .eslintrc.js | 2 +- package.json | 2 +- src/components/CaptionProduct.tsx | 3 +- src/components/Product.tsx | 6 +- src/components/ThumnailProduct.tsx | 7 +- src/components/templates/admin/news/form.tsx | 166 +++++++++---------- src/components/templates/admin/news/list.tsx | 155 +++++++++-------- src/components/templates/top.tsx | 87 +++++----- src/firestore/news/deleteNewsById.ts | 7 +- src/firestore/news/insertNews.ts | 12 +- src/firestore/news/newsPagination.ts | 59 +++---- src/firestore/news/retrieveNews.ts | 44 +++-- src/firestore/news/retrieveNewsById.ts | 59 +++---- src/firestore/news/updateNews.ts | 19 +-- src/models/news.ts | 14 +- src/pages/admin/news/form/[id].tsx | 30 ++-- src/pages/admin/news/form/index.tsx | 9 +- src/pages/admin/news/list.tsx | 31 ++-- src/pages/admin/top.tsx | 24 +-- src/pages/article/[id].tsx | 39 +++-- src/pages/index.tsx | 17 +- yarn.lock | 24 +-- 22 files changed, 390 insertions(+), 426 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index 43d63cc7..45a9eab5 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -56,4 +56,4 @@ module.exports = { version: "detect", }, }, -}; \ No newline at end of file +}; diff --git a/package.json b/package.json index 1c1810c6..f483abb9 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "start": "next start", "eslint": "eslint pages --ext .ts,.tsx,.js,.jsx --ignore-path ./.gitignore . --max-warnings=0", "eslint:fix": "yarn eslint --fix", - "prettier": "prettier --write \"{,pages/**/,components/**}*.{js,jsx,ts,tsx,json,yaml,md}\"" + "prettier": "prettier --write \"{,src/**/}*.{js,jsx,ts,tsx,json,yaml,md}\"" }, "dependencies": { "firebase": "^8.7.1", diff --git a/src/components/CaptionProduct.tsx b/src/components/CaptionProduct.tsx index b7af4192..0fc78e2e 100644 --- a/src/components/CaptionProduct.tsx +++ b/src/components/CaptionProduct.tsx @@ -1,6 +1,5 @@ import styled from "styled-components"; -import {News} from "../models/news"; - +import { News } from "../models/news"; export default function CaptionProduct({ news }: { news: News }) { return ( diff --git a/src/components/Product.tsx b/src/components/Product.tsx index badb6669..47076451 100644 --- a/src/components/Product.tsx +++ b/src/components/Product.tsx @@ -1,7 +1,7 @@ import styled from "styled-components"; import Image from "next/image"; import Link from "next/link"; -import {News} from "../models/news"; +import { News } from "../models/news"; export default function Product({ news }: { news: News }) { return ( @@ -14,9 +14,7 @@ export default function Product({ news }: { news: News }) { width={200} height={200} /> - - {news.description} - + {news.description} ); } diff --git a/src/components/ThumnailProduct.tsx b/src/components/ThumnailProduct.tsx index 2dade798..b99f210d 100644 --- a/src/components/ThumnailProduct.tsx +++ b/src/components/ThumnailProduct.tsx @@ -1,7 +1,7 @@ import styled from "styled-components"; import CaptionProduct from "./CaptionProduct"; import Image from "next/image"; -import {News} from "../models/news"; +import { News } from "../models/news"; export default function ThumnailProduct({ news }: { news: News }) { return ( @@ -12,14 +12,11 @@ export default function ThumnailProduct({ news }: { news: News }) { width={200} height={200} /> - + ); } - - - const Container = styled.div` display: block; padding: 4px; diff --git a/src/components/templates/admin/news/form.tsx b/src/components/templates/admin/news/form.tsx index 50a2fa82..135bf9c7 100644 --- a/src/components/templates/admin/news/form.tsx +++ b/src/components/templates/admin/news/form.tsx @@ -3,33 +3,32 @@ import Head from "next/head"; import styled from "styled-components"; import Footer from "../../../../components/Footer"; import Link from "next/link"; -import {News} from "../../../../models/news"; +import { News } from "../../../../models/news"; import { useForm, SubmitHandler } from "react-hook-form"; import { firebase } from "../../../../../firebase"; import "firebase/firestore"; -import { InsertNews } from '../../../../firestore/news/insertNews'; -import { UpdateNews } from '../../../../firestore/news/updateNews'; +import { InsertNews } from "../../../../firestore/news/insertNews"; +import { UpdateNews } from "../../../../firestore/news/updateNews"; interface Props { - news: News; -}; + news: News; +} export default function NewsFormTemplate({ news }: Props) { - const { - register, - handleSubmit, - formState: { errors }, - } = useForm(); - - const onSubmit: SubmitHandler = data => { + const { + register, + handleSubmit, + formState: { errors }, + } = useForm(); + + const onSubmit: SubmitHandler = (data) => { const db = firebase.firestore(); - if(!news.id) - { - const insertData:News = { + if (!news.id) { + const insertData: News = { title: data.title, description: data.description, openFlag: true, - delFlag: false + delFlag: false, }; const insertId = InsertNews(insertData); @@ -50,78 +49,77 @@ export default function NewsFormTemplate({ news }: Props) { // console.error("Error adding document: ", error); // }); } else { - // To update age and favorite color: + // To update age and favorite color: - const updateData:News = { - id: news.id, - title: data.title, - description: data.description, - }; + const updateData: News = { + id: news.id, + title: data.title, + description: data.description, + }; - UpdateNews(updateData); + UpdateNews(updateData); - alert("Document successfully updated!"); + alert("Document successfully updated!"); - // db.collection("news").doc(news.id).update() - // .then(() => { - // alert("Document successfully updated!"); - // }); + // db.collection("news").doc(news.id).update() + // .then(() => { + // alert("Document successfully updated!"); + // }); } - - }; - return ( - <> - - News Edit Form - - News Edit Form - - - - - - - {errors.title && {errors.title.message}} - - -