feat: terminada funcionalidad
actualmente funciona en dev falta cocinar deploy
This commit is contained in:
@@ -1,7 +1,18 @@
|
||||
<script>
|
||||
import { url } from "./assets/hooks/getUrl";
|
||||
import AcortadorForm from "./assets/lib/AcortadorForm.svelte";
|
||||
import svelteLogo from "./assets/svelte.svg";
|
||||
import viteLogo from "./assets/vite.svg";
|
||||
$effect(
|
||||
(async () => {
|
||||
if (window.location.pathname.match(/^\/short\/url\/\d+$/)) {
|
||||
const numero = window.location.pathname.split("/").pop();
|
||||
// console.log(numero);
|
||||
const res = await fetch(`${$url}/url/${numero}`, {
|
||||
method: "GET",
|
||||
});
|
||||
console.log(res);
|
||||
}
|
||||
})(),
|
||||
);
|
||||
</script>
|
||||
|
||||
<section id="center">
|
||||
|
||||
@@ -2,6 +2,12 @@ import { readable } from "svelte/store";
|
||||
|
||||
export const url = readable(
|
||||
typeof window !== "undefined" && window.location.hostname === "localhost"
|
||||
? "http://localhost:8080"
|
||||
: "https://fedesrv.ddns.net/short",
|
||||
? "/short"
|
||||
: "https://fedesrv.ddns.net/s",
|
||||
);
|
||||
|
||||
export const redirect = readable(
|
||||
typeof window !== "undefined" && window.location.hostname === "localhost"
|
||||
? "http://localhost:5173/short"
|
||||
: "https://fedesrv.ddns.net/s",
|
||||
);
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
<script>
|
||||
import { url } from "../hooks/getUrl";
|
||||
import { fade } from "svelte/transition";
|
||||
import { redirect, url } from "../hooks/getUrl";
|
||||
|
||||
let input;
|
||||
let popup = $state("");
|
||||
$effect(() => {
|
||||
input = document.getElementById("acortadorinput");
|
||||
});
|
||||
@@ -20,11 +22,64 @@
|
||||
});
|
||||
if (res.ok) {
|
||||
const data = await res.json();
|
||||
console.log(data.shortUrl);
|
||||
// console.log(data.shortUrl);
|
||||
popup = data.shortUrl;
|
||||
}
|
||||
} catch {}
|
||||
} catch {
|
||||
popup = "Error";
|
||||
}
|
||||
}}
|
||||
>
|
||||
<input type="text" id="acortadorinput" />
|
||||
<button type="submit">↪</button>
|
||||
</form>
|
||||
|
||||
{#if popup}
|
||||
<div transition:fade class="popup-dialog">
|
||||
<p>Short URL creada</p>
|
||||
<button
|
||||
onclick={() => {
|
||||
navigator.clipboard.writeText(`${$redirect}/url/${popup}`);
|
||||
popup = "";
|
||||
}}
|
||||
>
|
||||
Copy</button
|
||||
>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<style>
|
||||
.popup-dialog {
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
background: var(--bg);
|
||||
border: var(--border) 1px solid;
|
||||
padding: 20px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
||||
z-index: 1000;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.popup-dialog p {
|
||||
margin: 0 0 15px 0;
|
||||
font-size: 16px;
|
||||
color: var(--text);
|
||||
}
|
||||
|
||||
.popup-dialog button {
|
||||
background-color: #007bff;
|
||||
color: white;
|
||||
border: none;
|
||||
padding: 8px 16px;
|
||||
border-radius: 4px;
|
||||
cursor: pointer;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.popup-dialog button:hover {
|
||||
background-color: #0056b3;
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -6,11 +6,11 @@ export default defineConfig({
|
||||
plugins: [svelte()],
|
||||
server: {
|
||||
proxy: {
|
||||
"/url": {
|
||||
target: "http://localhost:3000",
|
||||
"/short/": {
|
||||
target: "http://localhost:8080",
|
||||
changeOrigin: true,
|
||||
secure: false,
|
||||
rewrite: (path) => path.replace(/^\/url/, ""),
|
||||
rewrite: (path) => path.replace(/^\/short/, ""),
|
||||
},
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user