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 ( +
+ +
+

tmz-converter

+

Example:

+
+

Time: 2025-02-20T15:30:00

+

From TMZ: America/New_York

+

To TMZ: Europe/Berlin

+
+

+ Output: 2025-02-20T21:30:00.000+01:00 +

+
+ + + +
+
+
+
+ + {convertedTMZ} + +
+
+
+ ); +} diff --git a/frontend/src/constants/index.ts b/frontend/src/constants/index.ts index f1b1eba..13db40f 100644 --- a/frontend/src/constants/index.ts +++ b/frontend/src/constants/index.ts @@ -4,8 +4,8 @@ export const toolLinks = [ link: "/doc-converter", }, { - title: "img-converter", - link: "/img-converter", + title: "tmz-converter", + link: "/tmz-converter", }, { title: "rgb-to-hex", @@ -32,8 +32,8 @@ export const toolLinks = [ link: "/word-counter", }, { - title: "pomodoro-timer", - link: "/pomodoro-timer", + title: "video-to-audio", + link: "/video-to-audio", }, ];