diff --git a/website/package.json b/website/package.json
index 7b4fb2f3..bdbe2031 100644
--- a/website/package.json
+++ b/website/package.json
@@ -34,6 +34,7 @@
"react-dom": "^17.0.1",
"react-paginate": "^8.1.0",
"react-use-pagination": "^2.0.1",
+ "resize-observer-polyfill": "^1.5.1",
"url-loader": "^4.1.1"
},
"devDependencies": {
diff --git a/website/src/components/Modal/index.tsx b/website/src/components/Modal/index.tsx
new file mode 100644
index 00000000..06e4551b
--- /dev/null
+++ b/website/src/components/Modal/index.tsx
@@ -0,0 +1,39 @@
+import clsx from "clsx";
+import React from "react";
+
+export default function Modal({
+ active,
+ setActive,
+ children,
+}: {
+ active: boolean;
+ setActive: (active: boolean) => void;
+ children: React.ReactNode;
+}): JSX.Element {
+ return (
+ <>
+ {/* overlay */}
+
setActive(false)}
+ >
+
+
+ {/* modal */}
+
+ {children}
+
+ >
+ );
+}
diff --git a/website/src/components/Paginate/index.tsx b/website/src/components/Paginate/index.tsx
index 24681dc9..3e288faa 100644
--- a/website/src/components/Paginate/index.tsx
+++ b/website/src/components/Paginate/index.tsx
@@ -1,9 +1,10 @@
-import React, { useCallback } from "react";
+import React, { useCallback, useRef } from "react";
import ReactPaginate from "react-paginate";
import { usePagination } from "react-use-pagination";
import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
+import { useContentWidth } from "../../libs/width";
import styles from "./styles.module.css";
export default function Paginate({
@@ -11,6 +12,9 @@ export default function Paginate({
setPage,
currentPage,
}: ReturnType): JSX.Element {
+ const ref = useRef();
+ const maxWidth = useContentWidth(ref.current?.parentElement ?? undefined);
+
const onPageChange = useCallback(
(selectedItem: { selected: number }) => {
setPage(selectedItem.selected);
@@ -18,8 +22,9 @@ export default function Paginate({
[setPage]
);
+ // FIXME: responsive width
return (
-