diff options
| author | Adam Soltys <[email protected]> | 2024-01-09 23:09:48 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2024-01-09 23:09:48 -0800 |
| commit | 30a6c45f0302479f1b9b046e7c7a2e9544b915b4 (patch) | |
| tree | 427cc460db4e2444089fb7f7c3b600e73d43c498 /src | |
| parent | 2de78ad3fe44cceacec0e1f096fea38da8ac3e1d (diff) | |
| download | coinos-ui-30a6c45f0302479f1b9b046e7c7a2e9544b915b4.tar.gz coinos-ui-30a6c45f0302479f1b9b046e7c7a2e9544b915b4.zip | |
rm launch code
Diffstat (limited to 'src')
| -rw-r--r-- | src/routes/(app)/launch/+page.server.js | 6 | ||||
| -rw-r--r-- | src/routes/(app)/launch/+page.svelte | 118 | ||||
| -rw-r--r-- | src/routes/(app)/launch/purchase/+page.server.js | 49 | ||||
| -rw-r--r-- | src/routes/(app)/launch/purchase/+page.svelte | 74 | ||||
| -rw-r--r-- | src/routes/(app)/launch/purchase/card/+page.server.js | 51 | ||||
| -rw-r--r-- | src/routes/(app)/launch/purchase/card/+page.svelte | 80 | ||||
| -rw-r--r-- | src/routes/(app)/launch/register/+page.svelte | 1 | ||||
| -rw-r--r-- | src/routes/(app)/launch/thanks/[asset]/+page.svelte | 31 | ||||
| -rw-r--r-- | src/routes/(app)/launch/ticket/+page.server.js | 11 | ||||
| -rw-r--r-- | src/routes/(app)/launch/ticket/+page.svelte | 37 |
10 files changed, 0 insertions, 458 deletions
diff --git a/src/routes/(app)/launch/+page.server.js b/src/routes/(app)/launch/+page.server.js deleted file mode 100644 index d11af500..00000000 --- a/src/routes/(app)/launch/+page.server.js +++ /dev/null @@ -1,6 +0,0 @@ -import { auth, get } from "$lib/utils"; - -export const load = async ({ parent }) => { - let tickets = await get("/tickets"); - return { ...(await parent()), tickets }; -}; diff --git a/src/routes/(app)/launch/+page.svelte b/src/routes/(app)/launch/+page.svelte deleted file mode 100644 index ef02ae0f..00000000 --- a/src/routes/(app)/launch/+page.svelte +++ /dev/null @@ -1,118 +0,0 @@ -<script> - import LandingHeader from "$comp/LandingHeader.svelte"; - import { loginRedirect } from "$lib/store"; - import { beforeNavigate } from "$app/navigation"; - import { info } from "$lib/utils"; - import Icon from "$comp/Icon.svelte"; - import { t } from "$lib/translations"; - import { goto } from "$app/navigation"; - import { scroll } from "$lib/utils"; - - export let data; - let { user, tickets } = data; - $loginRedirect = "/launch/purchase"; - - let hasTicket = !!user?.accounts.find((a) => tickets.includes(a.asset)); - $: link = hasTicket ? "/launch/ticket" : user ? $loginRedirect : "/register"; - $: text = (hasTicket ? "View" : "Purchase") + " Ticket"; - - beforeNavigate(({ to }) => { - if (to?.routeId === "register") - info("Please sign in so we can get you a ticket"); - }); - - let showMobileMenu = false; - const mobileMenuButtonClick = (section) => { - showMobileMenu = false; - scroll(section); - }; -</script> - -<header - class="w-full lg:w-5/6 py-5 mx-auto fixed md:sticky z-10 top-0 bg-white/90" -> - <nav class="block xl:flex flex-wrap justify-between items-center"> - <div - class="flex justify-start md:justify-center items-center md:space-x-10" - > - <a href="/" class="hidden md:block"> - <Icon icon="logo" style="mb-5 xl:mb-0" /> - </a> - <Icon icon="logo" style="block md:hidden ml-5 w-48" /> - </div> - </nav> -</header> - -<div class="mx-auto flex items-center justify-center px-8 mt-20"> - <div - class="flex flex-col w-full bg-white rounded shadow-lg sm:w-3/4 lg:w-3/5" - > - <div class="flex flex-col w-full md:flex-row"> - <div - class="flex flex-row justify-around p-4 font-bold leading-none text-gray-800 uppercase bg-gray-400 rounded md:flex-col md:items-center md:justify-center md:w-1/4" - > - <div class="md:text-3xl">Oct</div> - <div class="md:text-6xl">26</div> - <div class="md:text-xl">6 pm</div> - </div> - <div class="p-4 font-normal text-gray-800 md:w-3/4 space-y-5"> - <h1 - class="mb-4 text-4xl font-bold leading-none tracking-tight text-gray-800" - > - Launch Party! - </h1> - - <p class="leading-normal mb-2"> - Come join us at our launch party celebrating our new design and 10 - years serving the Vancouver Bitcoin community! - </p> - - <div class="flex"> - <div class="space-y-5"> - <div class="ml-8"> - <p><b>When</b></p> - <p>6pm October 26</p> - </div> - <div class="ml-8"> - <p><b>Where</b></p> - <p>The Loft Lounge</p> - <p>1184 Denman Street, #203</p> - <p>Vancouver, BC</p> - </div> - </div> - - <img - src="/icons/party.svg" - alt="Partygoers" - class="w-[120px] mx-auto" - /> - </div> - - <p> - We'll introduce our new interface and then network and enjoy tasty - food and drinks from <a - href="https://loftondenman.com/" - class="underline">The Loft</a - >! - </p> - - <p> - The Loft will be accepting Lightning payments at the event and going - forward into the future as well! We're charging $6 for for an NFT - ticket that gets you entry, appies, and the chance to win some swag - and sats. - </p> - - <div class="flex w-full my-8"> - <a href={link} class="mx-auto"> - <button - class="bg-white text-black border rounded-full px-8 py-4 font-bold hover:opacity-80 text-2xl" - > - {text} - </button> - </a> - </div> - </div> - </div> - </div> -</div> diff --git a/src/routes/(app)/launch/purchase/+page.server.js b/src/routes/(app)/launch/purchase/+page.server.js deleted file mode 100644 index d34c1f41..00000000 --- a/src/routes/(app)/launch/purchase/+page.server.js +++ /dev/null @@ -1,49 +0,0 @@ -import { auth, get, post } from "$lib/utils"; -import tickets from "$lib/tickets"; -import { redirect } from "@sveltejs/kit"; -import { env } from "$env/dynamic/private"; -import { invalidateAll } from "$app/navigation"; -import { browser } from "$app/environment"; -import { createTicket } from "$lib/ticket"; - -export const load = async ({ parent }) => { - let tickets = await get("/tickets"); - let { user } = await parent(); - let hasTicket = !!user?.accounts.find((a) => tickets.includes(a.asset)); - if (hasTicket) redirect(307, "/launch/ticket"); - return { tickets }; -}; - -export const actions = { - internal: async ({ cookies, request }) => { - let form = await request.formData(); - let asset = await createTicket(cookies, form.get("username")); - await post( - "/payments", - { amount: 22000, username: "launch" }, - auth(cookies) - ); - - redirect(307, `/launch/thanks/${asset}`); - }, - - lightning: async ({ cookies, request }) => { - let form = await request.formData(); - - let rates = await get("/rates"); - - let invoice = { - amount: 22000, - memo: "launch", - type: "lightning", - prompt: false, - rate: rates[form.get("currency")], - }; - - let user = { username: form.get("username") }; - - let { id } = await post("/invoice", { invoice, user }, auth(cookies)); - - redirect(307, `/${user.username}/invoice/${id}`); - }, -}; diff --git a/src/routes/(app)/launch/purchase/+page.svelte b/src/routes/(app)/launch/purchase/+page.svelte deleted file mode 100644 index 49a51973..00000000 --- a/src/routes/(app)/launch/purchase/+page.svelte +++ /dev/null @@ -1,74 +0,0 @@ -<script> - import { onMount } from "svelte"; - import { enhance } from "$app/forms"; - import { post } from "$lib/utils"; - import { goto } from "$app/navigation"; - - export let data; - - let amount = 22000; - let { - currency, - account: { balance }, - username, - } = data.user; - - let { tickets } = data; - let ticket = tickets.length; -</script> - -<div class="mx-auto h-screen flex items-center justify-center px-4"> - <div class="font-normal text-gray-800 mx-auto mb-8 space-y-8"> - <h1 - class="mb-4 text-4xl font-bold leading-none tracking-tight text-gray-800 text-center" - > - Purchase Ticket - </h1> - - <img - src={`/tickets/${(ticket + 1).toString().padStart(2, "0")}.png`} - class="w-full max-w-[800px]" - alt="Ticket" - /> - - {#if balance >= amount} - <form action="?/internal" method="POST" use:enhance> - <input type="hidden" name="username" value={username} /> - - <div class="w-full flex"> - <button - class="bg-black text-white border rounded-full px-8 py-4 font-bold hover:opacity-80 mx-auto text-2xl" - > - Count me in - </button> - </div> - </form> - {:else} - <h1 - class="mb-4 text-xl font-bold leading-none tracking-tight text-gray-800 text-center" - > - Payment Options - </h1> - - <div class="flex justify-center gap-4"> - <form action="?/lightning" method="POST"> - <input type="hidden" name="currency" value={currency} /> - <input type="hidden" name="username" value={username} /> - <button - class="border rounded-full px-8 py-4 font-bold hover:opacity-80 mx-auto text-2xl" - > - Lightning - </button> - </form> - - <a href={`purchase/card`}> - <button - class="border rounded-full px-8 py-4 font-bold hover:opacity-80 mx-auto text-2xl" - > - Credit Card - </button> - </a> - </div> - {/if} - </div> -</div> diff --git a/src/routes/(app)/launch/purchase/card/+page.server.js b/src/routes/(app)/launch/purchase/card/+page.server.js deleted file mode 100644 index 9fb36b71..00000000 --- a/src/routes/(app)/launch/purchase/card/+page.server.js +++ /dev/null @@ -1,51 +0,0 @@ -import { env } from "$env/dynamic/private"; -import { error, redirect } from "@sveltejs/kit"; -import { post, auth } from "$lib/utils"; -import { createTicket } from "$lib/ticket"; - -let stripe = "https://api.stripe.com/v1"; - -export const actions = { - default: async ({ cookies, request }) => { - let form = await request.formData(); - - let headers = new Headers(); - headers.set( - "Authorization", - "Basic " + new Buffer(env.STRIPE + ":").toString("base64") - ); - - let body = new URLSearchParams({ - "card[number]": form.get("number").replace(/\s+/g, ""), - "card[exp_month]": form.get("expiry").slice(0, 2), - "card[exp_year]": form.get("expiry").slice(-2), - "card[cvc]": form.get("cvc"), - }); - - let method = "POST"; - - let { id: source } = await fetch(`${stripe}/tokens`, { - body, - headers, - method, - }).then((r) => r.json()); - - body = new URLSearchParams({ - amount: 600, - currency: "cad", - source, - description: "launch ticket", - }); - - let { status } = await fetch(`${stripe}/charges`, { - body, - headers, - method, - }).then((r) => r.json()); - - if (status !== "succeeded") error(500, { message: "Card payment failed" }); - let asset = await createTicket(cookies, form.get("username")); - - redirect(307, `/launch/thanks/${asset}`); - }, -}; diff --git a/src/routes/(app)/launch/purchase/card/+page.svelte b/src/routes/(app)/launch/purchase/card/+page.svelte deleted file mode 100644 index 6d33c87f..00000000 --- a/src/routes/(app)/launch/purchase/card/+page.svelte +++ /dev/null @@ -1,80 +0,0 @@ -<script> - import { enhance } from "$app/forms"; - import Lock from "$comp/Lock.svelte"; - import Card from "$comp/Card.svelte"; - import Calendar from "$comp/Calendar.svelte"; - import Spinner from "$comp/Spinner.svelte"; - - export let data; - - let { username } = data.user; - let loading; -</script> - -<div class="container max-w-lg px-4 mx-auto space-y-5"> - <form - method="POST" - class="flex flex-wrap gap-5 w-full p-5 mt-20" - use:enhance={() => { - loading = true; - return ({ update }) => update() && (loading = false); - }} - > - <input type="hidden" name="username" value={username} /> - <label class="relative w-full flex flex-col"> - <span class="font-bold mb-3">Card number</span> - <input - class="rounded-md peer pl-12 pr-2 py-2 border-2 border-gray-200 placeholder-gray-300" - type="text" - name="number" - placeholder="0000 0000 0000 0000" - /> - <Card /> - </label> - - <label class="relative flex-1 flex flex-col"> - <span class="font-bold mb-3">Expire date</span> - <input - class="rounded-md peer pl-12 pr-2 py-2 border-2 border-gray-200 placeholder-gray-300" - type="text" - name="expiry" - placeholder="MM/YY" - /> - <Calendar /> - </label> - - <label class="relative flex-1 flex flex-col"> - <span class="font-bold flex items-center gap-3 mb-3"> - CVC/CVV - <span class="relative group"> - <span - class="hidden group-hover:flex justify-center items-center px-2 py-1 text-xs absolute -right-2 transform translate-x-full -translate-y-1/2 w-max top-1/2 bg-black text-white" - > - 3-digit number on the back of your card</span - > - </span> - </span> - <input - class="rounded-md peer pl-12 pr-2 py-2 border-2 border-gray-200 placeholder-gray-300" - type="text" - name="cvc" - placeholder="•••" - /> - <Lock /> - </label> - - <div class="w-full flex mt-8"> - <button - class="bg-black text-white border rounded-full px-8 py-4 font-bold hover:opacity-80 mx-auto text-xl" - type="submit" - disabled={loading} - > - {#if loading} - <Spinner /> - {:else} - Submit - {/if} - </button> - </div> - </form> -</div> diff --git a/src/routes/(app)/launch/register/+page.svelte b/src/routes/(app)/launch/register/+page.svelte deleted file mode 100644 index 437a48f1..00000000 --- a/src/routes/(app)/launch/register/+page.svelte +++ /dev/null @@ -1 +0,0 @@ -We need to get you registered diff --git a/src/routes/(app)/launch/thanks/[asset]/+page.svelte b/src/routes/(app)/launch/thanks/[asset]/+page.svelte deleted file mode 100644 index 9b37002b..00000000 --- a/src/routes/(app)/launch/thanks/[asset]/+page.svelte +++ /dev/null @@ -1,31 +0,0 @@ -<script> - import { page } from "$app/stores"; - - export let data; - - let { user } = data; - - let { asset } = $page.params; -</script> - -<div class="container mx-auto max-w-lg px-4 mt-20"> - <div class="font-normal text-gray-800 mx-auto mb-8 space-y-8"> - <h1 - class="mb-4 text-4xl font-bold leading-none tracking-tight text-gray-800 text-center" - > - Thanks! - </h1> - - <p>We look forward to seeing you!</p> - </div> - - <div class="w-full flex"> - <a href="/launch/ticket" class="mx-auto"> - <button - class="bg-black text-white border rounded-full px-8 py-4 font-bold hover:opacity-80 text-2xl" - > - Done - </button> - </a> - </div> -</div> diff --git a/src/routes/(app)/launch/ticket/+page.server.js b/src/routes/(app)/launch/ticket/+page.server.js deleted file mode 100644 index 7b51e679..00000000 --- a/src/routes/(app)/launch/ticket/+page.server.js +++ /dev/null @@ -1,11 +0,0 @@ -import { get } from "$lib/utils"; - -export const load = async ({ cookies, parent }) => { - let { user } = await parent(); - let tickets = await get("/tickets"); - let ticket = tickets.findIndex((t) => - user.accounts.find((a) => a.asset === t) - ); - let asset = tickets[ticket]; - return { asset, ticket }; -}; diff --git a/src/routes/(app)/launch/ticket/+page.svelte b/src/routes/(app)/launch/ticket/+page.svelte deleted file mode 100644 index 6b16e804..00000000 --- a/src/routes/(app)/launch/ticket/+page.svelte +++ /dev/null @@ -1,37 +0,0 @@ -<script> - export let data; - let { asset, ticket } = data; -</script> - -<div class="mx-auto h-screen flex items-center justify-center px-4"> - <div class="font-normal text-gray-800 mx-auto mb-8 space-y-8"> - <h1 - class="mb-4 text-4xl font-bold leading-none tracking-tight text-gray-800 text-center" - > - Your Ticket - </h1> - - <p> - We've minted your ticket as an <a - href={`https://blockstream.info/liquid/asset/${asset}`} - class="underline">NFT on the Liquid Blockchain</a - > as a proof of purchase and commemorative token. - </p> - - <img - src={`/tickets/${(ticket + 1).toString().padStart(2, "0")}.png`} - class="w-full max-w-[800px]" - alt="Ticket" - /> - - <div class="w-full flex"> - <a href="/" class="mx-auto"> - <button - class="bg-black text-white border rounded-full px-8 py-4 font-bold hover:opacity-80 text-2xl" - > - Done - </button> - </a> - </div> - </div> -</div> |
