ft/adds documents endpoint

This commit is contained in:
itsscb 2024-05-24 23:47:00 +02:00
parent 4362e59a2d
commit adb391e0da
14 changed files with 273 additions and 33 deletions

View File

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="M440-200h80v-167l64 64 56-57-160-160-160 160 57 56 63-63v167ZM240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200 640-640Z"/></svg>

After

Width:  |  Height:  |  Size: 348 B

View File

@ -936,16 +936,16 @@ function __wbg_get_imports() {
const ret = wasm.memory; const ret = wasm.memory;
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper6534 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper6624 = function(arg0, arg1, arg2) {
const ret = makeClosure(arg0, arg1, 711, __wbg_adapter_40); const ret = makeClosure(arg0, arg1, 740, __wbg_adapter_40);
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper8417 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper8507 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 839, __wbg_adapter_43); const ret = makeMutClosure(arg0, arg1, 868, __wbg_adapter_43);
return addHeapObject(ret); return addHeapObject(ret);
}; };
imports.wbg.__wbindgen_closure_wrapper8614 = function(arg0, arg1, arg2) { imports.wbg.__wbindgen_closure_wrapper8704 = function(arg0, arg1, arg2) {
const ret = makeMutClosure(arg0, arg1, 852, __wbg_adapter_46); const ret = makeMutClosure(arg0, arg1, 881, __wbg_adapter_46);
return addHeapObject(ret); return addHeapObject(ret);
}; };
@ -988,7 +988,7 @@ async function __wbg_init(input) {
if (wasm !== undefined) return wasm; if (wasm !== undefined) return wasm;
if (typeof input === 'undefined') { if (typeof input === 'undefined') {
input = new URL('digitaler-frieden-0f443414bd108417282961b2a7ed017b22de829a3fb8f586fe6d512339ae7333c5c15674156a782cc70b2df0627f26c6_bg.wasm', import.meta.url); input = new URL('digitaler-frieden-23bb9eba3fb849f290b6e7e45997c57afdeccc3b773f7f82ee309a94e1387dda091e56509bc08920e251645096b7194c_bg.wasm', import.meta.url);
} }
const imports = __wbg_get_imports(); const imports = __wbg_get_imports();

10
dist/index.html vendored
View File

@ -2,20 +2,20 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>Digitaler Frieden</title> <title>Digitaler Frieden</title>
<link rel="stylesheet" href="/styles-1c1ffa0ed4dcf17b.css" integrity="sha384-Kc38bWxDbfvH9ik8vn0X2gI2Ly3klTYa8LCwMHYSjDO3MT1eBfZ2gOGZEo82Ma2A"> <link rel="stylesheet" href="/styles-25689c825de51fae.css" integrity="sha384-idDVKeYHrC3A1H5zUTTAuwnknbi8drZxZR0VadSO3YLJXXibjztmCcFlXMYb8nj2">
<link rel="icon" href="/favicon-928ba63f33046eed.ico" integrity="sha384-Neq57jnFrTfqAN1JvKAVVVcH1EW3__cZHmK2NRXRlNrxAZR6ErTvXzbOLSyHzkA4"> <link rel="icon" href="/favicon-928ba63f33046eed.ico" integrity="sha384-Neq57jnFrTfqAN1JvKAVVVcH1EW3__cZHmK2NRXRlNrxAZR6ErTvXzbOLSyHzkA4">
<link rel="manifest" href="public/manifest.json"> <link rel="manifest" href="public/manifest.json">
<link rel="preload" href="/digitaler-frieden-0f443414bd108417282961b2a7ed017b22de829a3fb8f586fe6d512339ae7333c5c15674156a782cc70b2df0627f26c6_bg.wasm" as="fetch" type="application/wasm" crossorigin="anonymous" integrity="sha384-D0Q0FL0QhBcoKWGyp-0BeyLegpo_uPWG_m1RIzmuczPFwVZ0FWp4LMcLLfBifybG"> <link rel="preload" href="/digitaler-frieden-23bb9eba3fb849f290b6e7e45997c57afdeccc3b773f7f82ee309a94e1387dda091e56509bc08920e251645096b7194c_bg.wasm" as="fetch" type="application/wasm" crossorigin="anonymous" integrity="sha384-I7ueuj-4SfKQtufkWZfFev3szDt3P3-C7jCalOE4fdoJHlZQm8CJIOJRZFCWtxlM">
<link rel="modulepreload" href="/digitaler-frieden-0f443414bd108417282961b2a7ed017b22de829a3fb8f586fe6d512339ae7333c5c15674156a782cc70b2df0627f26c6.js" crossorigin="anonymous" integrity="sha384-su_WWtcNIEGOQdPYbV_ukjxeupmnMjRqxqHtZ6aN5vHne0JwI8rckvMt2mutSx5T"></head> <link rel="modulepreload" href="/digitaler-frieden-23bb9eba3fb849f290b6e7e45997c57afdeccc3b773f7f82ee309a94e1387dda091e56509bc08920e251645096b7194c.js" crossorigin="anonymous" integrity="sha384-WA_9K_FUqzGPcLlhTBcSsHpY4reSZs6Ea87HOPH1hj0hTYxLP-xpwqE9AV2SsgMO"></head>
<body class="bg-black text-white"> <body class="bg-black text-white">
<script type="module"> <script type="module">
import init, * as bindings from '/digitaler-frieden-0f443414bd108417282961b2a7ed017b22de829a3fb8f586fe6d512339ae7333c5c15674156a782cc70b2df0627f26c6.js'; import init, * as bindings from '/digitaler-frieden-23bb9eba3fb849f290b6e7e45997c57afdeccc3b773f7f82ee309a94e1387dda091e56509bc08920e251645096b7194c.js';
init('/digitaler-frieden-0f443414bd108417282961b2a7ed017b22de829a3fb8f586fe6d512339ae7333c5c15674156a782cc70b2df0627f26c6_bg.wasm'); init('/digitaler-frieden-23bb9eba3fb849f290b6e7e45997c57afdeccc3b773f7f82ee309a94e1387dda091e56509bc08920e251645096b7194c_bg.wasm');
window.wasmBindings = bindings; window.wasmBindings = bindings;
</script><script>"use strict"; </script><script>"use strict";

View File

@ -778,6 +778,12 @@ video {
margin-bottom: calc(1rem * var(--tw-space-y-reverse)); margin-bottom: calc(1rem * var(--tw-space-y-reverse));
} }
.space-y-8 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}
.rounded-md { .rounded-md {
border-radius: 0.375rem; border-radius: 0.375rem;
} }
@ -1128,6 +1134,10 @@ video {
} }
@media (min-width: 768px) { @media (min-width: 768px) {
.md\:mb-10 {
margin-bottom: 2.5rem;
}
.md\:mb-12 { .md\:mb-12 {
margin-bottom: 3rem; margin-bottom: 3rem;
} }

View File

@ -1,5 +1,5 @@
/* /*
! tailwindcss v3.4.3 | MIT License | https://tailwindcss.com ! tailwindcss v3.4.1 | MIT License | https://tailwindcss.com
*/ */
/* /*
@ -211,8 +211,6 @@ textarea {
/* 1 */ /* 1 */
line-height: inherit; line-height: inherit;
/* 1 */ /* 1 */
letter-spacing: inherit;
/* 1 */
color: inherit; color: inherit;
/* 1 */ /* 1 */
margin: 0; margin: 0;
@ -236,9 +234,9 @@ select {
*/ */
button, button,
input:where([type='button']), [type='button'],
input:where([type='reset']), [type='reset'],
input:where([type='submit']) { [type='submit'] {
-webkit-appearance: button; -webkit-appearance: button;
/* 1 */ /* 1 */
background-color: transparent; background-color: transparent;
@ -494,10 +492,6 @@ video {
--tw-backdrop-opacity: ; --tw-backdrop-opacity: ;
--tw-backdrop-saturate: ; --tw-backdrop-saturate: ;
--tw-backdrop-sepia: ; --tw-backdrop-sepia: ;
--tw-contain-size: ;
--tw-contain-layout: ;
--tw-contain-paint: ;
--tw-contain-style: ;
} }
::backdrop { ::backdrop {
@ -548,10 +542,10 @@ video {
--tw-backdrop-opacity: ; --tw-backdrop-opacity: ;
--tw-backdrop-saturate: ; --tw-backdrop-saturate: ;
--tw-backdrop-sepia: ; --tw-backdrop-sepia: ;
--tw-contain-size: ; }
--tw-contain-layout: ;
--tw-contain-paint: ; .visible {
--tw-contain-style: ; visibility: visible;
} }
.absolute { .absolute {
@ -784,6 +778,12 @@ video {
margin-bottom: calc(1rem * var(--tw-space-y-reverse)); margin-bottom: calc(1rem * var(--tw-space-y-reverse));
} }
.space-y-8 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}
.rounded-md { .rounded-md {
border-radius: 0.375rem; border-radius: 0.375rem;
} }
@ -1134,6 +1134,10 @@ video {
} }
@media (min-width: 768px) { @media (min-width: 768px) {
.md\:mb-10 {
margin-bottom: 2.5rem;
}
.md\:mb-12 { .md\:mb-12 {
margin-bottom: 3rem; margin-bottom: 3rem;
} }

6
flake.lock generated
View File

@ -49,11 +49,11 @@
"nixpkgs": "nixpkgs" "nixpkgs": "nixpkgs"
}, },
"locked": { "locked": {
"lastModified": 1716085073, "lastModified": 1716517042,
"narHash": "sha256-3+9gI93XxszWA2+9S2xZfws1QArPX/MC6nahOGpcMB4=", "narHash": "sha256-PDPMpBVv+6XdV4FvBWk002IBGofDIWCpo9ewks0kStM=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "cfc8776011bd83508324115d353222475e1601c0", "rev": "66a43411079d0d1b1b776c0a6ced20a5df896edb",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@ -4,9 +4,9 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<title>Digitaler Frieden</title> <title>Digitaler Frieden</title>
<link data-trunk href="./assets/styles.css" rel="css"> <link data-trunk href="./public/styles.css" rel="css">
<link data-trunk href="./assets/favicon.ico" rel="icon" type="image/x-icon"> <link data-trunk href="./assets/favicon.ico" rel="icon" type="image/x-icon">
<link data-trunk rel="copy-dir" href="public"> <link data-trunk rel="copy-dir" href="public" >
<link rel="manifest" href="public/manifest.json" /> <link rel="manifest" href="public/manifest.json" />
</head> </head>
<body class="bg-black text-white"> <body class="bg-black text-white">

View File

@ -778,6 +778,12 @@ video {
margin-bottom: calc(1rem * var(--tw-space-y-reverse)); margin-bottom: calc(1rem * var(--tw-space-y-reverse));
} }
.space-y-8 > :not([hidden]) ~ :not([hidden]) {
--tw-space-y-reverse: 0;
margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}
.rounded-md { .rounded-md {
border-radius: 0.375rem; border-radius: 0.375rem;
} }
@ -1128,6 +1134,10 @@ video {
} }
@media (min-width: 768px) { @media (min-width: 768px) {
.md\:mb-10 {
margin-bottom: 2.5rem;
}
.md\:mb-12 { .md\:mb-12 {
margin-bottom: 3rem; margin-bottom: 3rem;
} }

View File

@ -16,5 +16,8 @@ pub use relationship::Relationship;
mod register; mod register;
pub use register::Register; pub use register::Register;
mod documents;
pub use documents::Documents;
mod home; mod home;
pub use home::Home; pub use home::Home;

View File

@ -272,7 +272,7 @@ pub fn Clues() -> Html {
</section> </section>
<section id="next" class="fade-in w-full flex justify-center max-w-lg mb-4"> <section id="next" class="fade-in w-full flex justify-center max-w-lg mb-4">
<Link<Route> <Link<Route>
to={Route::Relationship} to={Route::Documents}
classes={classes!( classes={classes!(
"bg-primary", "bg-primary",
"hover:bg-primary-dark", "hover:bg-primary-dark",

206
src/pages/documents.rs Normal file
View File

@ -0,0 +1,206 @@
use yew::{classes, function_component, html, Html};
use yew_router::components::Link;
use crate::router::Route;
#[function_component]
pub fn Documents() -> Html {
let show = true;
html! {
<div class="flex flex-col justify-center items-center h-full space-y-16 px-8 m-0">
<section id="navigation" class="mb-12">
<h3
class="text-primary
hover:bg-text-dark
hover:text-white
hover:-translate-y-1
hover:cursor-pointer
transition duration-150
font-bold text-xl
rounded-md
text-black
absolute
top-4
left-4
"
>
<Link<Route> to={Route::Clues}>
<div class="flex items-center">
<svg
class="w-8 "
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 24 24"
fill="currentColor"
>
<path d="M0 0h24v24H0z" fill="none" />
<path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z" />
</svg>
{ "Zurück" }
</div>
</Link<Route>>
</h3>
<svg
class="text-white w-0 md:w-56 top-4 right-4 absolute"
fill="currentColor"
version="1.1"
viewBox="0 0 3e3 2e3"
xmlns="http://www.w3.org/2000/svg"
>
<style type="text/css" />
<path
d="m1199.2 993.15 308.76-519.02-0.28-0.29-184.43-153.02h-393.98l282.78 474.48-43.11 72.38-370.14-621.09h551.29l254.22 211.26-35.97 60.53h471.2l-44.25 74.23h-471.2l-238.53 400.54zm444.65-746.56-62.38 104.92 57.67 47.96 46.96-78.8h471.2l44.11-74.08z"
/>
<path
d="m2072.1 1753.3h14.43v-107.56l84.7 107.56h11.82v-131.18h-14.45v105.13l-82.64-105.13h-13.86zm-200.57-117.69h80.02v-13.49h-94.82v131.18h95.75v-13.49h-80.95v-45.92h71.59v-13.49h-71.59zm-207.72-13.4h-45.54v131.18h45.54c41.11 0 69.66-28.83 69.66-65.81 0-37.11-28.55-65.37-69.66-65.37zm0 117.33h-30.83v-103.78h30.83c33.12 0 54.24 22.98 54.24 52.1 0 29.27-21.12 51.68-54.24 51.68zm-246.06-103.93h80.02v-13.49h-94.83v131.18h95.77v-13.49h-80.96v-45.92h71.58v-13.49h-71.58zm-160.07-13.49h14.81v131.18h-14.81zm-160 77.6c20.56-3.85 35.54-16.56 35.54-38.4 0-23.7-18.7-39.11-47.39-39.11h-56.39v131.18h14.7v-50.96h37.54l37.97 50.96h18.27zm-53.53-10.71v-53.24h40.54c21.13 0 33.55 9.85 33.55 25.98 0 17.13-14.13 27.26-33.69 27.26zm-141.13-6.36h-71.03v-46.85h79.45v-13.68h-94.26v131.18h14.81v-57.16h71.03zm1644.4-314.39h3c45.82 0 73.8-25.27 73.8-59.52 0-34.4-27.98-58.38-73.8-58.38h-108.63v220.83h28.26l0.29-102.92h44.11l75.51 102.63h36.54zm-77.08-24.69v-69.23h80.08c28.55 0 44.11 12.42 44.11 34.12 0 21.27-15.56 35.12-44.11 35.12h-80.08zm-277.07 103.06v-75.37h119.76v-23.98h-119.76v-72.94h139.18v-24.27h-167.73v220.83h170.72v-24.27zm-258.94 0v-196.56h-28.41v220.83h158.31v-24.27zm-230.1-196.56h-32.97l-101.21 220.83h31.83l25.98-55.53h120.76l25.27 55.53h31.55zm-65.09 141.46 48.82-112.91 49.82 112.91zm-309.62-141.46v24.27h83.65v196.56h28.55v-196.56h84.08v-24.27zm-128.33 0v220.83h28.41v-220.83zm-108.48 103.92h-125.05v23.84l94.64 0.43c-2.28 10.56-6 20.13-11.13 29.26-3 5.57-7.28 10.56-11.7 15.27l-0.57 0.57c-15.27 14.85-36.54 24.55-62.24 26.55-3 0.43-6.28 0.43-9.56 0.43h-3.71c-35.83-1.14-64.38-16.99-79.65-42.25h-0.43c-7.85-13.56-12.56-29.55-12.56-47.82 0-52.82 39.54-89.64 96.35-89.64 37.83 0 68.38 15.99 84.08 42.82l32.12-0.43c-18.56-41.11-62.09-67.09-116.19-67.09-72.37 0-125.9 46.96-125.9 114.34 0 66.8 51.82 113.63 122.91 114.62h9.56c3.71-0.28 7.71-0.71 11.42-0.71l6.28-1c11.85-2 23.55-5.28 33.55-9.56 13.27-5.71 25.12-13.28 34.83-22.55 0.29-0.43 0.71-0.71 0.71-1.14 4.85-4.71 9.56-9.85 13.27-15.56l0.86-1c11.42-16.56 17.7-36.11 18.7-58.1-0.02-6.57-0.45-8.57-0.59-11.28zm-391.55-103.92v220.83h28.55v-220.83zm-238.53 0h-89.07v220.83h89.07c72.8 0 126.61-42.97 126.61-110.63 0-67.38-53.81-110.2-126.61-110.2zm0 196.13h-60.38v-171.58h60.38c58.81 0 97.07 34.12 97.07 85.65 0 51.82-38.26 85.93-97.07 85.93z"
/>
</svg>
</section>
<section class="flex flex-col space-y-8 fade-in w-full max-w-lg " id="content">
// <div class="flex flex-col items-start">
<h3 class="text-3xl font-bold mb-2 md:mb-10">{ "Dokumente bereitstellen" }</h3>
// </div>
<div class="flex items-center space-x-4 justify-between">
<svg
class="text-primary w-16"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 -960 960 960"
fill="currentColor"
>
<path
d="M440-200h80v-167l64 64 56-57-160-160-160 160 57 56 63-63v167ZM240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200 640-640Z"
/>
</svg>
<button
class={classes!(
"bg-primary",
"hover:bg-primary-dark",
"hover:text-white",
"hover:-translate-y-1",
"hover:cursor-pointer",
"transition",
"duration-150",
"font-bold",
"text-xl",
"rounded-md",
"text-black",
"text-center",
"w-full",
"min-h-16",
"h-16",
"flex",
"justify-center",
"items-center",
)}
>
{ "Sterbeurkunde" }
</button>
</div>
<div class="flex items-center space-x-4 justify-between">
<svg
class="text-primary w-16"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 -960 960 960"
fill="currentColor"
>
<path
d="M440-200h80v-167l64 64 56-57-160-160-160 160 57 56 63-63v167ZM240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200 640-640Z"
/>
</svg>
<button
class={classes!(
"bg-primary",
"hover:bg-primary-dark",
"hover:text-white",
"hover:-translate-y-1",
"hover:cursor-pointer",
"transition",
"duration-150",
"font-bold",
"text-xl",
"rounded-md",
"text-black",
"text-center",
"w-full",
"min-h-16",
"h-16",
"flex",
"justify-center",
"items-center",
)}
>
{ "Personalausweis / Reisepass" }
</button>
</div>
if show {
<div>
<div class="flex items-center space-x-4 justify-between">
<svg
class="text-primary w-16"
xmlns="http://www.w3.org/2000/svg"
viewBox="0 -960 960 960"
fill="currentColor"
>
<path
d="M440-200h80v-167l64 64 56-57-160-160-160 160 57 56 63-63v167ZM240-80q-33 0-56.5-23.5T160-160v-640q0-33 23.5-56.5T240-880h320l240 240v480q0 33-23.5 56.5T720-80H240Zm280-520v-200H240v640h480v-440H520ZM240-800v200-200 640-640Z"
/>
</svg>
<button
class={classes!(
"bg-primary",
"hover:bg-primary-dark",
"hover:text-white",
"hover:-translate-y-1",
"hover:cursor-pointer",
"transition",
"duration-150",
"font-bold",
"text-xl",
"rounded-md",
"text-black",
"text-center",
"w-full",
"min-h-16",
"h-16",
"flex",
"justify-center",
"items-center",
)}
>
{ "Erbbescheinigung (Notar)" }
</button>
</div>
</div>
}
</section>
<section id="next" class="fade-in w-full flex justify-center max-w-lg mb-4">
<Link<Route>
to={Route::Documents}
classes={classes!(
"bg-primary",
"hover:bg-primary-dark",
"hover:text-white",
"hover:-translate-y-1",
"hover:cursor-pointer",
"transition",
"duration-150",
"font-bold",
"text-xl",
"max-w-xl",
"rounded-md",
"text-black",
"text-center",
"w-full",
"min-h-16",
"h-16",
"flex",
"justify-center",
"items-center",
"mb-12",
)}
>
{ "Weiter" }
</Link<Route>>
</section>
</div>
}
}

View File

@ -1,4 +1,4 @@
use crate::pages::{Clues, Deceased, Home, Register, Relationship, SignUp, Verify}; use crate::pages::{Clues, Deceased, Documents, Home, Register, Relationship, SignUp, Verify};
use yew::{function_component, html, Html}; use yew::{function_component, html, Html};
use yew_router::prelude::*; use yew_router::prelude::*;
@ -19,10 +19,15 @@ pub enum Route {
Clues, Clues,
#[at("/relationship")] #[at("/relationship")]
Relationship, Relationship,
#[at("/documents")]
Documents,
} }
fn route(routes: Route) -> Html { fn route(routes: Route) -> Html {
match routes { match routes {
Route::Documents => {
html! { <Documents /> }
}
Route::Home => { Route::Home => {
html! { <Home /> } html! { <Home /> }
} }

View File

@ -3,6 +3,7 @@ module.exports = {
mode: "all", mode: "all",
content: [ content: [
"./src/**/*.rs", "./src/**/*.rs",
"./src/pages/documents.rs",
"./index.html", "./index.html",
"./src/**/*.html", "./src/**/*.html",
"./src/**/*.css", "./src/**/*.css",