diff --git a/src/pages/dex/trading/find-pair/index.tsx b/src/pages/dex/trading/find-pair/index.tsx new file mode 100644 index 0000000..cd3249a --- /dev/null +++ b/src/pages/dex/trading/find-pair/index.tsx @@ -0,0 +1,53 @@ +import { GetServerSideProps } from 'next'; + +import { findPairID } from '@/utils/methods'; +import styles from '@/styles/404.module.scss'; + +export const getServerSideProps: GetServerSideProps = async (context) => { + const { first, second } = context.query; + + if (!first || !second) { + return { + notFound: true, // Show a 404 page if parameters are missing + }; + } + + try { + const idFound = await findPairID( + first as string, + second as string, + context.req.headers.host as string, + ); + + console.log('ID found:', idFound); + + if (typeof idFound === 'number') { + return { + redirect: { + destination: `/dex/trading/${idFound}`, + permanent: false, + }, + }; + } + + return { + notFound: true, + }; + } catch (error) { + console.error('Error fetching pair ID:', error); + return { + props: { + error: 'Failed to resolve the pair.', + }, + }; + } +}; + +const Page = ({ error }: { error?: string }) => { + return ( +
+

Error: {error}

+
+ ); +}; +export default Page; diff --git a/src/styles/FindPair.module.scss b/src/styles/FindPair.module.scss new file mode 100644 index 0000000..13e1f82 --- /dev/null +++ b/src/styles/FindPair.module.scss @@ -0,0 +1,6 @@ +.title { + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); +}