2021-11-21 00:12:24 +02:00
< script >
import OrangeButton from "./OrangeButton.svelte";
import CardBG from "./CardBG.svelte";
import InputField from "./InputField.svelte";
import { createEventDispatcher } from 'svelte';
2021-11-22 00:33:30 +02:00
import Icon from "@iconify/svelte";
import Overlay from "./Overlay.svelte";
import { fade , fly , slide } from 'svelte/transition';
import { flip } from 'svelte/animate';
2021-12-08 13:54:31 +02:00
import { createaccount } from "./api";
2021-11-21 00:12:24 +02:00
const dispatch = createEventDispatcher();
let type = "";
let currencies = ["RON", "EUR"];
let currency = currencies[0];
let termsAccepted = false;
function create(){
if(type == "" || type == null) {
alert("Account Name field can not be empty!");
2021-11-21 02:55:53 +02:00
console.debug(`account name: ${ type } `)
2021-11-21 00:12:24 +02:00
}else if(!currencies.includes(currency)){
alert("Currency is not supported!");
}else if (!termsAccepted){
alert("Terms of Service not accepted!");
}else{
2021-12-08 13:54:31 +02:00
createaccount(async function() {
const token = sessionStorage.getItem("token");
const result = await createaccount(token, type, currency);
if(result.status == "success") {
dispatch("createPopup",{ type : "create_acc_success" , account : { type : type , currency :currency , transactions : []}} );
}else{
dispatch("createPopup",{ type : "create_acc_failed" , reason : "Failed to create account. Error:" + result . status } );
}
})
2021-11-21 00:12:24 +02:00
}
}
function cancelCreate(){
dispatch("createPopup",{ type : "create_acc_cancelled" } );
}
function failCreate(){
dispatch("createPopup",{ type : "create_acc_failed" , reason : "Invalid arguments. [type: " + type + ", currency: " + currency } );
}
function termsOfService() {
termsAccepted = !termsAccepted;
}
< / script >
2021-11-22 00:33:30 +02:00
< div class = "h-full self-center" in:fade = {{ duration :300 }} out:fade= {{ duration :300 }} >
< div class = "h-full flex flex-col justify-center items-center md:items-start" >
< CardBG padding = { false } class="flex flex-col items-stretch " >
< div class = "m-3" >
< div class = "flex flex-row" >
< h1 class = 'font-sans text-4xl text-gray-50 mt-6 mx-6 mb-1' > Open a new account< / h1 >
< button class = "ml-auto mr-6" on:click = { cancelCreate } > <Icon icon = "akar-icons:cross" color = "rgba(249, 250, 251, 1)" width = "32" height = "32" /> </ button >
< / div >
< div class = "w-full max-w-md self-start border-solid border-gray-50 border mb-3" > < / div >
2021-11-21 00:12:24 +02:00
2021-11-22 00:33:30 +02:00
< div class = "mx-1 flex-shrink" >
< h2 class = 'font-sans text-2xl text-gray-50 mb-2 ' > Account name:< / h2 >
< InputField placeholder = "New Account" isPassword = { false } bind:value= { type } ></ InputField >
< / div >
< div class = "mx-1 flex-shrink" >
< h2 class = 'font-sans text-2xl text-gray-50 mb-2 ' > Currency:< / h2 >
< InputField placeholder = "RON" isPassword = { false } bind:value= { currency } ></ InputField >
< / div >
2021-11-21 00:12:24 +02:00
2021-11-22 00:33:30 +02:00
< div class = "mx-1 flex-shrink max-w-2xl" >
< h2 class = " font-sans text-2xl text-gray-50 mb-2 " > Terms of Service:< / h2 >
< button class = "mb-1" on:click = { termsOfService } > <Icon icon = { termsAccepted ? "akar-icons:check-box" : "akar-icons:box" } color="rgba(249, 250 , 251 , 1 )" width = "18" height = "18" /> </ button >
< h3 class = "inline m-0 mb-0 text-gray-300" > I have read and accepted the < a class = "font-sans text-gray-50" href = "https://c.tenor.com/TVRtbC8jKY0AAAAC/positive-fox-you-can-do-it.gif" target = "_blank" > terms and conditions< / a > for creating a new account at FOXBANK. < / h3 >
< / div >
< div class = "m-10" > < / div >
< / div >
< div class = "flex-shrink flex flex-row mb-4" style = "background: linear-gradient(89.1deg, rgba(236, 98, 68, 0.95) 0.77%, rgba(236, 98, 68, 0) 99.12%);" >
< div class = "flex-1" > < / div >
< OrangeButton class = "flex-1 m-4" on:click = { create } > Confirm</OrangeButton >
< / div >
< / CardBG >
< / div >
2021-11-21 00:12:24 +02:00
< / div >