From 05ac71d4b76dc10d56301ce58858fd90eeb1fe82 Mon Sep 17 00:00:00 2001 From: leo Date: Mon, 20 Oct 2025 03:56:20 -0300 Subject: moved from go to react, and added a better css --- web_page/webpage-shorlink/src/App.css | 42 +++++++++++++ web_page/webpage-shorlink/src/App.jsx | 35 +++++++++++ web_page/webpage-shorlink/src/assets/react.svg | 1 + .../webpage-shorlink/src/components/AddUrl.css | 61 +++++++++++++++++++ .../webpage-shorlink/src/components/AddUrl.jsx | 51 ++++++++++++++++ .../webpage-shorlink/src/components/ShowUrl.css | 9 +++ .../webpage-shorlink/src/components/ShowUrl.jsx | 22 +++++++ web_page/webpage-shorlink/src/index.css | 68 ++++++++++++++++++++++ web_page/webpage-shorlink/src/main.jsx | 12 ++++ 9 files changed, 301 insertions(+) create mode 100644 web_page/webpage-shorlink/src/App.css create mode 100644 web_page/webpage-shorlink/src/App.jsx create mode 100644 web_page/webpage-shorlink/src/assets/react.svg create mode 100644 web_page/webpage-shorlink/src/components/AddUrl.css create mode 100644 web_page/webpage-shorlink/src/components/AddUrl.jsx create mode 100644 web_page/webpage-shorlink/src/components/ShowUrl.css create mode 100644 web_page/webpage-shorlink/src/components/ShowUrl.jsx create mode 100644 web_page/webpage-shorlink/src/index.css create mode 100644 web_page/webpage-shorlink/src/main.jsx (limited to 'web_page/webpage-shorlink/src') diff --git a/web_page/webpage-shorlink/src/App.css b/web_page/webpage-shorlink/src/App.css new file mode 100644 index 0000000..b9d355d --- /dev/null +++ b/web_page/webpage-shorlink/src/App.css @@ -0,0 +1,42 @@ +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +.logo { + height: 6em; + padding: 1.5em; + will-change: filter; + transition: filter 300ms; +} +.logo:hover { + filter: drop-shadow(0 0 2em #646cffaa); +} +.logo.react:hover { + filter: drop-shadow(0 0 2em #61dafbaa); +} + +@keyframes logo-spin { + from { + transform: rotate(0deg); + } + to { + transform: rotate(360deg); + } +} + +@media (prefers-reduced-motion: no-preference) { + a:nth-of-type(2) .logo { + animation: logo-spin infinite 20s linear; + } +} + +.card { + padding: 2em; +} + +.read-the-docs { + color: #888; +} diff --git a/web_page/webpage-shorlink/src/App.jsx b/web_page/webpage-shorlink/src/App.jsx new file mode 100644 index 0000000..f67355a --- /dev/null +++ b/web_page/webpage-shorlink/src/App.jsx @@ -0,0 +1,35 @@ +import { useState } from 'react' +import reactLogo from './assets/react.svg' +import viteLogo from '/vite.svg' +import './App.css' + +function App() { + const [count, setCount] = useState(0) + + return ( + <> +
+ + Vite logo + + + React logo + +
+

Vite + React

+
+ +

+ Edit src/App.jsx and save to test HMR +

+
+

+ Click on the Vite and React logos to learn more +

+ + ) +} + +export default App diff --git a/web_page/webpage-shorlink/src/assets/react.svg b/web_page/webpage-shorlink/src/assets/react.svg new file mode 100644 index 0000000..6c87de9 --- /dev/null +++ b/web_page/webpage-shorlink/src/assets/react.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/web_page/webpage-shorlink/src/components/AddUrl.css b/web_page/webpage-shorlink/src/components/AddUrl.css new file mode 100644 index 0000000..e11e6eb --- /dev/null +++ b/web_page/webpage-shorlink/src/components/AddUrl.css @@ -0,0 +1,61 @@ +* { + background-color: #282828; +} +#root { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; + display: flex; + justify-content: center; +} + +#title { + color: #ebdbb2; + display: flex; + justify-content: center; + align-items: center; + border-style: solid; + text-align: center; + border-radius: 20px; + width: 640px; + height: 64px; +} + +#id-form { + color: #ebdbb2; + border-style: solid; + display: flex; + justify-content: space-between; + align-items: center; + flex-direction: column; + padding: 10px; + border-radius: 20px; +} + +#btn1 { + color: #ebdbb2; + background-color: #689d6a; + height: 48px; + width: 88px; + font-size: 24px; + border-radius: 20px; + border-color: #ebdbb2; +} + +#btn1:hover { + background-color: #83a598; + cursor: pointer; +} + +#id-label { + font-size: 24px; + height: 48px; +} + +#inp { + color: #ebdbb2; + border-color: #ebdbb2; + border-radius: 10px; + font-size: 24px; +} diff --git a/web_page/webpage-shorlink/src/components/AddUrl.jsx b/web_page/webpage-shorlink/src/components/AddUrl.jsx new file mode 100644 index 0000000..1112459 --- /dev/null +++ b/web_page/webpage-shorlink/src/components/AddUrl.jsx @@ -0,0 +1,51 @@ +import "./AddUrl.css"; + +function AddUrl({ setShort }) { + return ( +
+

ENCURTADOR DE URL

+
{ + e.preventDefault(); + + const form = e.target; + const formData = new FormData(form); + const formJson = Object.fromEntries(formData.entries()); + let data = formJson["url"]; + + fetch("https://sl.azuminha.com/add/" + encodeURIComponent(data)) + .then((response) => { + if (!response.ok) { + throw new Error("Network response was not ok"); + } + return response.text(); + }) + .then((result) => { + console.log(result); + setShort("sl.azuminha.com/" + result); + //const res = document.createElement("p"); + //res.textContent = data + " => " + "sl.azuminha.com/" + result; + //document.body.appendChild(res); + }); + }} + > + + +
+
+ ); +} + +export default AddUrl; diff --git a/web_page/webpage-shorlink/src/components/ShowUrl.css b/web_page/webpage-shorlink/src/components/ShowUrl.css new file mode 100644 index 0000000..a7a9d1c --- /dev/null +++ b/web_page/webpage-shorlink/src/components/ShowUrl.css @@ -0,0 +1,9 @@ +p { + color: #ebdbb2; + font-size: 24px; +} + +p:hover { + color: #83a598; + cursor: pointer; +} diff --git a/web_page/webpage-shorlink/src/components/ShowUrl.jsx b/web_page/webpage-shorlink/src/components/ShowUrl.jsx new file mode 100644 index 0000000..d063c5e --- /dev/null +++ b/web_page/webpage-shorlink/src/components/ShowUrl.jsx @@ -0,0 +1,22 @@ +import { useState } from "react"; +import AddUrl from "./AddUrl"; +import "./ShowUrl.css"; + +function ShowUrl() { + const [short, setShort] = useState(); + return ( +
+ +

{ + navigator.clipboard.writeText(short); + alert("Link copiado"); + }} + > + {short} +

+
+ ); +} + +export default ShowUrl; diff --git a/web_page/webpage-shorlink/src/index.css b/web_page/webpage-shorlink/src/index.css new file mode 100644 index 0000000..08a3ac9 --- /dev/null +++ b/web_page/webpage-shorlink/src/index.css @@ -0,0 +1,68 @@ +:root { + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/web_page/webpage-shorlink/src/main.jsx b/web_page/webpage-shorlink/src/main.jsx new file mode 100644 index 0000000..94c3c6c --- /dev/null +++ b/web_page/webpage-shorlink/src/main.jsx @@ -0,0 +1,12 @@ +import { StrictMode } from "react"; +import { createRoot } from "react-dom/client"; +//import "./index.css"; +//import App from "./App.jsx"; +import AddUrl from "./components/AddUrl.jsx"; +import ShowUrl from "./components/ShowUrl.jsx"; + +createRoot(document.getElementById("root")).render( + + + +); -- cgit v1.2.3