diff --git a/frontend/src/app/tmz-converter/layout.tsx b/frontend/src/app/tmz-converter/layout.tsx new file mode 100644 index 0000000..677474a --- /dev/null +++ b/frontend/src/app/tmz-converter/layout.tsx @@ -0,0 +1,20 @@ +import React from "react"; +import type { Metadata } from "next"; +import { toolLinks } from "@/constants"; + +export const metadata: Metadata = { + title: toolLinks[1].title, + description: "Converter for timezones!", +}; + +export default function RootLayout({ + children, +}: Readonly<{ + children: React.ReactNode; +}>) { + return ( + +
{children} + + ); +} diff --git a/frontend/src/app/tmz-converter/page.tsx b/frontend/src/app/tmz-converter/page.tsx new file mode 100644 index 0000000..b138d7c --- /dev/null +++ b/frontend/src/app/tmz-converter/page.tsx @@ -0,0 +1,103 @@ +"use client"; +import React, { useState } from "react"; +import Navbar from "../../components/Navbar"; +import Footer from "../../components/Footer"; +import Button from "../../components/Button"; + +export default function DocConverter() { + const [loading, setLoading] = useState(false); + const [convertedTMZ, setConvertedTMZ] = useState(""); + + const convertTMZ = async () => { + setLoading(true); + + const time = (document.getElementById("time") as HTMLInputElement).value; + const fromZone = (document.getElementById("fromZone") as HTMLInputElement) + .value; + const toZone = (document.getElementById("toZone") as HTMLInputElement) + .value; + + try { + const response = await fetch( + process.env.backend_url + "/api/tmz-convert", + { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + body: JSON.stringify({ + time: time, + fromZone: fromZone, + toZone: toZone, + }), + }, + ); + if (!response.ok) { + return new Error(`Error: ${response.statusText}`); + } + const output: string = await response.text(); + setConvertedTMZ(output); + } catch (error) { + console.error("Error while converting:", error); + alert("Error while converting"); + } finally { + setLoading(false); + } + }; + + return ( +Time: 2025-02-20T15:30:00
+From TMZ: America/New_York
+To TMZ: Europe/Berlin
++ Output: 2025-02-20T21:30:00.000+01:00 +
+