blob: ea4dcf4917a330cc9dbda1e3774b625d5319f161 [file] [log] [blame]
import React, { useEffect, useState } from "react";
import { useRouter } from "next/router";
import GithubIssueList from "../src/GithubIssueList";
import Layout from "../src/Layout";
import { GithubIssueListParams } from "../src/data/GithubIssueList";
const PARAM_QUERY_KEY = "q";
export default function Page() {
const router = useRouter();
const [params, setParams] = useState(undefined);
useEffect(() => {
const paramsString = router.query[PARAM_QUERY_KEY] as string | undefined;
if (paramsString) {
try {
setParams(JSON.parse(paramsString));
return;
} catch (e) {
console.error(e);
}
}
setParams(undefined);
}, [router]);
const changeParams = (params: GithubIssueListParams) => {
let newQuery = { ...router.query };
newQuery[PARAM_QUERY_KEY] = JSON.stringify(params);
router.push(
{
pathname: router.pathname,
query: newQuery,
},
undefined,
{ scroll: false }
);
};
return (
<Layout>
<div className="flex flex-col space-y-4 mx-auto max-w-[1440px] px-4 mt-6">
<GithubIssueList params={params} changeParams={changeParams} />
</div>
</Layout>
);
}