diff --git a/packages/web/src/pages/file/[fileId].tsx b/packages/web/src/pages/file/[fileId].tsx
index 4b85fd8..59f6686 100644
--- a/packages/web/src/pages/file/[fileId].tsx
+++ b/packages/web/src/pages/file/[fileId].tsx
@@ -1,3 +1,4 @@
+import { Container, Spinner, useAsync, useToasts } from '@ryanke/pandora';
import classNames from 'classnames';
import copyToClipboard from 'copy-to-clipboard';
import type { GetServerSidePropsContext } from 'next';
@@ -6,16 +7,12 @@ import type { FC, ReactNode } from 'react';
import { useState } from 'react';
import { Download, Share, Trash } from 'react-feather';
import { addStateToPageProps, initializeApollo } from '../../apollo';
-import { Container } from '../../components/container';
import { Embed } from '../../components/embed/embed';
import { PageLoader } from '../../components/page-loader';
-import { Spinner } from '../../components/spinner';
import { Title } from '../../components/title';
import { ConfigDocument, GetFileDocument, useDeleteFileMutation, useGetFileQuery } from '../../generated/graphql';
import { downloadUrl } from '../../helpers/download.helper';
-import { useAsync } from '../../hooks/useAsync';
import { useQueryState } from '../../hooks/useQueryState';
-import { useToasts } from '../../hooks/useToasts';
import ErrorPage from '../_error';
const FileOption: FC<{ children: ReactNode; className?: string; onClick: () => void }> = ({
diff --git a/packages/web/src/pages/index.tsx b/packages/web/src/pages/index.tsx
index 087ff36..7095fd6 100644
--- a/packages/web/src/pages/index.tsx
+++ b/packages/web/src/pages/index.tsx
@@ -1,5 +1,4 @@
-import { Container } from '../components/container';
-import { Spinner } from '../components/spinner';
+import { Spinner, Container } from '@ryanke/pandora';
import { useConfig } from '../hooks/useConfig';
export default function Home() {
@@ -14,7 +13,7 @@ export default function Home() {
An invite-only file sharing and paste service with vanity domains and a ShareX compatible endpoint. Sign in to
download a generated ShareX configuration. You can view the source code{' '}
-
+
here.
@@ -27,7 +26,7 @@ export default function Home() {
{config.data && (
To get an account or get a file taken down, email{' '}
-
+
{config.data.inquiriesEmail}
.
diff --git a/packages/web/src/pages/invite/[inviteToken].tsx b/packages/web/src/pages/invite/[inviteToken].tsx
index df57652..0800ed1 100644
--- a/packages/web/src/pages/invite/[inviteToken].tsx
+++ b/packages/web/src/pages/invite/[inviteToken].tsx
@@ -1,6 +1,6 @@
+import { Container, useAsync, useToasts } from '@ryanke/pandora';
import Router, { useRouter } from 'next/router';
import { useEffect } from 'react';
-import { Container } from '../../components/container';
import { PageLoader } from '../../components/page-loader';
import { Time } from '../../components/time';
import { Title } from '../../components/title';
@@ -8,9 +8,7 @@ import type { SignupData } from '../../containers/signup-form';
import { SignupForm } from '../../containers/signup-form';
import { useCreateUserMutation, useGetInviteQuery } from '../../generated/graphql';
import { getErrorMessage } from '../../helpers/get-error-message.helper';
-import { useAsync } from '../../hooks/useAsync';
import { useConfig } from '../../hooks/useConfig';
-import { useToasts } from '../../hooks/useToasts';
import ErrorPage from '../_error';
export default function Invite() {
diff --git a/packages/web/src/pages/login.tsx b/packages/web/src/pages/login.tsx
index 2b8137f..8e2be6a 100644
--- a/packages/web/src/pages/login.tsx
+++ b/packages/web/src/pages/login.tsx
@@ -1,8 +1,7 @@
+import { Container, useToasts } from '@ryanke/pandora';
import { useEffect } from 'react';
-import { Container } from '../components/container';
import { Title } from '../components/title';
import { LoginForm } from '../containers/login-form';
-import { useToasts } from '../hooks/useToasts';
export default function Login() {
const createToast = useToasts();
@@ -17,7 +16,7 @@ export default function Login() {
text: 'Your account has been verified.',
});
}
- }, []);
+ }, [createToast]);
return (
diff --git a/packages/web/src/pages/paste/[pasteId].tsx b/packages/web/src/pages/paste/[pasteId].tsx
index 53d3991..208e96b 100644
--- a/packages/web/src/pages/paste/[pasteId].tsx
+++ b/packages/web/src/pages/paste/[pasteId].tsx
@@ -1,10 +1,9 @@
+import { Button, Container } from '@ryanke/pandora';
import type { GetServerSidePropsContext } from 'next';
import { useRouter } from 'next/router';
import { useEffect, useState } from 'react';
import { BookOpen, Clock, Trash } from 'react-feather';
import { addStateToPageProps, initializeApollo } from '../../apollo';
-import { Button } from '../../components/button';
-import { Container } from '../../components/container';
import { Embed } from '../../components/embed/embed';
import { PageLoader } from '../../components/page-loader';
import { Time } from '../../components/time';
diff --git a/packages/web/src/pages/paste/index.tsx b/packages/web/src/pages/paste/index.tsx
index 4289e12..3a619f2 100644
--- a/packages/web/src/pages/paste/index.tsx
+++ b/packages/web/src/pages/paste/index.tsx
@@ -1,7 +1,6 @@
+import { Button, Container } from '@ryanke/pandora';
import { Form, Formik } from 'formik';
import * as Yup from 'yup';
-import { Button } from '../../components/button';
-import { Container } from '../../components/container';
import { Checkbox } from '../../components/input/checkbox';
import { Input } from '../../components/input/input';
import { Select } from '../../components/input/select';
diff --git a/packages/web/src/pages/shorten.tsx b/packages/web/src/pages/shorten.tsx
index daefabe..c5a43ce 100644
--- a/packages/web/src/pages/shorten.tsx
+++ b/packages/web/src/pages/shorten.tsx
@@ -1,8 +1,7 @@
+import { Button, Container } from '@ryanke/pandora';
import { Form, Formik } from 'formik';
import { useState } from 'react';
import * as Yup from 'yup';
-import { Button } from '../components/button';
-import { Container } from '../components/container';
import { Input } from '../components/input/input';
import { Select } from '../components/input/select';
import { useShortenMutation } from '../generated/graphql';
diff --git a/packages/web/src/pages/upload.tsx b/packages/web/src/pages/upload.tsx
index fee72d5..c551f46 100644
--- a/packages/web/src/pages/upload.tsx
+++ b/packages/web/src/pages/upload.tsx
@@ -1,19 +1,15 @@
+import { Button, Card, Container, Spinner, useToasts } from '@ryanke/pandora';
import { useRouter } from 'next/router';
import type { ChangeEventHandler, DragEventHandler } from 'react';
import { useRef, useState } from 'react';
import { Upload as UploadIcon } from 'react-feather';
-import { Button } from '../components/button';
-import { Card } from '../components/card';
-import { Container } from '../components/container';
import { Select } from '../components/input/select';
import { PageLoader } from '../components/page-loader';
-import { Spinner } from '../components/spinner';
import { Title } from '../components/title';
import { getErrorMessage } from '../helpers/get-error-message.helper';
import { http } from '../helpers/http.helper';
import { replaceUsername } from '../helpers/replace-username.helper';
import { useConfig } from '../hooks/useConfig';
-import { useToasts } from '../hooks/useToasts';
import { useUser } from '../hooks/useUser';
interface CreateFileResponse {
@@ -138,7 +134,7 @@ export default function Upload() {