From 88898fb88d79d390643dcaf9b2cb10858447cb01 Mon Sep 17 00:00:00 2001 From: StarNumber12046 <64470722+StarNumber12046@users.noreply.github.com> Date: Thu, 3 Nov 2022 17:35:58 +0100 Subject: [PATCH 1/2] Fisrst working? version --- components/CreateLink.tsx | 27 ++++++++++++++++++++++++++ components/Icon.tsx | 5 +++-- components/NavbarLink.tsx | 2 +- pages/api/create.ts | 16 +++++++++++++++ pages/index.tsx | 30 +++++++++++++++++++++++++++- styles/globals.css | 41 ++++++++++++++++++++++++++++++++++----- styles/style.module.css | 39 +++++++++++++++++++++++++++++++------ 7 files changed, 145 insertions(+), 15 deletions(-) create mode 100644 components/CreateLink.tsx create mode 100644 pages/api/create.ts diff --git a/components/CreateLink.tsx b/components/CreateLink.tsx new file mode 100644 index 0000000..c0cc4b3 --- /dev/null +++ b/components/CreateLink.tsx @@ -0,0 +1,27 @@ +import React from "react"; +import styles from "../styles/style.module.css"; +import Icon from "./Icon" + +interface createUrlType { + createUrl: any +} + +export function CreateLink({ + createUrl +}:createUrlType) { + return <>

Shorten a link

+
+

+ + + URL + +

+ + +

+
; +} + \ No newline at end of file diff --git a/components/Icon.tsx b/components/Icon.tsx index de47a43..cdf884c 100644 --- a/components/Icon.tsx +++ b/components/Icon.tsx @@ -3,11 +3,12 @@ import styles from "../styles/style.module.css"; interface Props { icon_id:string, - extClassname?:Array + extClassname?:Array, } export default function Icon(props:Props): JSX.Element { return ( {props.icon_id} ) -} \ No newline at end of file +} + diff --git a/components/NavbarLink.tsx b/components/NavbarLink.tsx index 3c2b4b3..b041154 100644 --- a/components/NavbarLink.tsx +++ b/components/NavbarLink.tsx @@ -16,7 +16,7 @@ export function NavbarLink(props: Props) { diff --git a/pages/api/create.ts b/pages/api/create.ts new file mode 100644 index 0000000..6bc8c24 --- /dev/null +++ b/pages/api/create.ts @@ -0,0 +1,16 @@ +import type { NextApiRequest, NextApiResponse } from 'next' + +async function createUrl(req: NextApiRequest, res: NextApiResponse) { + if (!req.headers.authorization) { + return res.send({ error: 'No authorization header' }) + } + const requestHeaders: HeadersInit = new Headers(); + requestHeaders.set('Content-Type', 'application/json'); + requestHeaders.set('Authorization', req.headers.authorization) + console.log(requestHeaders) + const createResponse = await fetch("http://localhost:3000/v1/create", {method:"POST", body:req.body, headers:{authorization:req.headers.authorization}}) + console.log(await createResponse.text()) + res.send(await createResponse.json()) + } + +export default createUrl \ No newline at end of file diff --git a/pages/index.tsx b/pages/index.tsx index e29b10c..d147921 100644 --- a/pages/index.tsx +++ b/pages/index.tsx @@ -1,11 +1,37 @@ +import { CreateLink } from '../components/CreateLink'; import type { NextPage } from "next"; import Head from "next/head"; import Image from "next/image"; import styles from "../styles/style.module.css"; import React, { useEffect as useFootGun } from "react"; import Navbar from "../components/Navbar"; +import Icon from "../components/Icon"; +import { url } from "inspector"; + +interface urlReturn { + url:string +} const Home: NextPage = () => { + const createUrl = async (event:React.MouseEvent) => { + event.preventDefault(); + const urlBox:HTMLInputElement|null = document.querySelector("input#urlBox") + if (!urlBox) { return } + // value = urlBox.value. + const res = await fetch('/api/create', { + headers: { + 'Content-Type': 'application/json', + 'Authorization': '1be64fcdeb71c376cda8d9e4b106b570' + }, + method: 'POST', + body: JSON.stringify({ + url: urlBox.value, + nsfw:false + }) + }) + const result = await res.text(); + console.log(result) + }; return (